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   38749 use strict;
  6         12  
  6         246  
4 6     6   35 use warnings;
  6         11  
  6         210  
5 6     6   3858 use Locale::Maketext::Utils (); # brings in Locales.pm
  6         100  
  6         174  
6 6     6   62 use base 'Locale::Maketext::Utils';
  6         12  
  6         908  
7              
8             $Locale::Maketext::Utils::Mock::VERSION = '0.1';
9              
10             package Locale::Maketext::Utils::Mock::en;
11 6     6   33 use base 'Locale::Maketext::Utils::Mock';
  6         11  
  6         1892  
12             our %Lexicon;
13              
14             package Locale::Maketext::Utils::Mock;
15              
16             our %Lexicon;
17              
18             sub init_mock_locales {
19 5     5 1 1037 my $cnt = 0;
20 5         16 for my $loc_tag ( map { Locales::normalize_tag($_) } @_ ) {
  10         148  
21 10 50       14903 next if !$loc_tag;
22 10 100 100     79 next unless $loc_tag =~ m/^i_/ || Locales->new($loc_tag);
23              
24 5         39265 $cnt++;
25 5     1   494 eval "package Locale::Maketext::Utils::Mock::$loc_tag;use base 'Locale::Maketext::Utils::Mock';our \%Lexicon;package Locale::Maketext::Utils::Mock;";
  1     1   7  
  1     1   4  
  1     1   102  
  1     1   8  
  1         2  
  1         100  
  1         8  
  1         2  
  1         98  
  1         9  
  1         2  
  1         111  
  1         11  
  1         2  
  1         154  
26 5 50       25 if ($@) {
27 0         0 $cnt--;
28 0         0 require Carp;
29 0         0 Carp::carp($@);
30             }
31              
32             }
33              
34 5         796 return $cnt;
35             }
36              
37             sub create_method {
38 10     10 1 21 my ( $class, $def_hr ) = @_;
39 10 100       34 if ( @_ == 2 ) {
40 8 100       30 $class = ref($class) if ref($class);
41             }
42             else {
43 2         8596 $def_hr = $class; # was a function call
44 2         10 $class = 'Locale::Maketext::Utils::Mock';
45             }
46 10 50       42 return if ref($def_hr) ne 'HASH';
47 6     6   39 no strict 'refs';
  6         49  
  6         808  
48 10         15 for my $m ( sort keys %{$def_hr} ) {
  10         47  
49 16 100   5   75 *{ $class . "::$m" } = ref( $def_hr->{$m} ) eq 'CODE' ? $def_hr->{$m} : sub { return "I am $m()." };
  16         183  
  5         1303  
50             }
51             }
52              
53             1;
54              
55             __END__