File Coverage

blib/lib/Locale/Maketext/Utils/Mock.pm
Criterion Covered Total %
statement 53 56 94.6
branch 11 14 78.5
condition 3 3 100.0
subroutine 14 14 100.0
pod 2 2 100.0
total 83 89 93.2


line stmt bran cond sub pod time code
1             package Locale::Maketext::Utils::Mock;
2              
3 6     6   21860 use strict;
  6         9  
  6         143  
4 6     6   17 use warnings;
  6         7  
  6         117  
5 6     6   2072 use Locale::Maketext::Utils (); # brings in Locales.pm
  6         50  
  6         119  
6 6     6   25 use base 'Locale::Maketext::Utils';
  6         6  
  6         559  
7              
8             $Locale::Maketext::Utils::Mock::VERSION = '0.1';
9              
10             package Locale::Maketext::Utils::Mock::en;
11 6     6   19 use base 'Locale::Maketext::Utils::Mock';
  6         8  
  6         1197  
12             our %Lexicon;
13              
14             package Locale::Maketext::Utils::Mock;
15              
16             our %Lexicon;
17              
18             sub init_mock_locales {
19 5     5 1 654 my $cnt = 0;
20 5         9 for my $loc_tag ( map { Locales::normalize_tag($_) } @_ ) {
  10         93  
21 10 50       1914 next if !$loc_tag;
22 10 100 100     42 next unless $loc_tag =~ m/^i_/ || Locales->new($loc_tag);
23              
24 5         20899 $cnt++;
25 5     1   367 eval "package Locale::Maketext::Utils::Mock::$loc_tag;use base 'Locale::Maketext::Utils::Mock';our \%Lexicon;package Locale::Maketext::Utils::Mock;";
  1     1   5  
  1     1   0  
  1     1   66  
  1     1   4  
  1         2  
  1         57  
  1         5  
  1         1  
  1         64  
  1         4  
  1         1  
  1         56  
  1         4  
  1         1  
  1         57  
26 5 50       13 if ($@) {
27 0         0 $cnt--;
28 0         0 require Carp;
29 0         0 Carp::carp($@);
30             }
31              
32             }
33              
34 5         381 return $cnt;
35             }
36              
37             sub create_method {
38 10     10 1 15 my ( $class, $def_hr ) = @_;
39 10 100       17 if ( @_ == 2 ) {
40 8 100       20 $class = ref($class) if ref($class);
41             }
42             else {
43 2         2 $def_hr = $class; # was a function call
44 2         2 $class = 'Locale::Maketext::Utils::Mock';
45             }
46 10 50       22 return if ref($def_hr) ne 'HASH';
47 6     6   22 no strict 'refs';
  6         26  
  6         537  
48 10         9 for my $m ( sort keys %{$def_hr} ) {
  10         34  
49 16 100   5   45 *{ $class . "::$m" } = ref( $def_hr->{$m} ) eq 'CODE' ? $def_hr->{$m} : sub { return "I am $m()." };
  16         92  
  5         21  
50             }
51             }
52              
53             1;
54              
55             __END__