File Coverage

blib/lib/OpenFeature/ProviderRegistry.pm
Criterion Covered Total %
statement 28 38 73.6
branch n/a
condition n/a
subroutine 6 8 75.0
pod 0 7 0.0
total 34 53 64.1


line stmt bran cond sub pod time code
1 1     1   7 use v5.36;
  1         7  
2              
3             package OpenFeature::ProviderRegistry;
4              
5             =head1 NAME
6              
7             OpenFeature::ProviderRegistry - Provider registry for OpenFeature
8              
9             =cut
10              
11             my $providers = {};
12              
13 2     2 0 3 sub new($class) {
  2         4  
  2         2  
14 2         3 my $self = {};
15 2         3 $self->{'providers'} = {};
16 2         4 bless $self, $class
17             }
18              
19 2     2 0 6 sub get_provider($self, $domain) {
  2         2  
  2         3  
  2         2  
20 2         7 $self->{'providers'}{$domain}
21             }
22              
23 1     1 0 2 sub get_default_provider($self) {
  1         2  
  1         1  
24 1         4 $self->{'providers'}{'default'}
25             }
26              
27 1     1 0 2 sub set_default_provider($self, $provider) {
  1         1  
  1         2  
  1         1  
28 1         3 $self->{'providers'}{'default'} = $provider
29             }
30              
31 2     2 0 2 sub set_provider($self, $domain, $provider) {
  2         2  
  2         2  
  2         2  
  2         2  
32 2         6 $self->{'providers'}{$domain} = $provider
33             }
34              
35 0     0 0   sub clear_providers($self) {
  0            
  0            
36 0           $self->{'providers'} = {}
37             }
38              
39 0     0 0   sub shutdown_all_providers($self) {
  0            
  0            
40 0           foreach my $domain ( keys %{ $self->{'providers'} }) {
  0            
41 0           $self->{'providers'}{$domain}->shutdown();
42             }
43             }
44              
45             1;
46             __END__