File Coverage

blib/lib/String/Normal/Config.pm
Criterion Covered Total %
statement 59 59 100.0
branch 8 8 100.0
condition n/a
subroutine 15 15 100.0
pod n/a
total 82 82 100.0


line stmt bran cond sub pod time code
1             package String::Normal::Config;
2 9     9   30 use strict;
  9         10  
  9         196  
3 9     9   60 use warnings;
  9         9  
  9         228  
4              
5 9     9   3516 use String::Normal::Config::BusinessStem;
  9         14  
  9         173  
6 9     9   3008 use String::Normal::Config::BusinessStop;
  9         15  
  9         187  
7 9     9   3120 use String::Normal::Config::BusinessCompress;
  9         14  
  9         176  
8 9     9   3008 use String::Normal::Config::AddressStem;
  9         14  
  9         176  
9 9     9   2913 use String::Normal::Config::AddressStop;
  9         11  
  9         185  
10 9     9   3089 use String::Normal::Config::States;
  9         13  
  9         240  
11 9     9   3009 use String::Normal::Config::AreaCodes;
  9         13  
  9         164  
12 9     9   3076 use String::Normal::Config::TitleStem;
  9         12  
  9         189  
13 9     9   2974 use String::Normal::Config::TitleStop;
  9         12  
  9         2600  
14              
15             sub _slurp {
16 14     14   20 my $fh = shift;
17 14         23 my @data = ();
18 14 100       1104 chomp( @data = map { $_ || () } map { split /\s+/, $_, 2 } <$fh> );
  7516         10824  
  3758         4578  
19 14         596 close $fh;
20 14         1908 return @data;
21             }
22              
23             sub _expand_ranges {
24 3     3   5 my @expanded = ();
25              
26 3         9 for my $line (@_) {
27 625         603 my @ranges = map { /(\w)-?(\w)/;[$1..$2] } $line =~ /\[(\w-?\w)+\]/g;
  32         39  
  32         214  
28 625         467 $line =~ s/\[.*//;
29 625         616 _expand( \my @results, $line, @ranges );
30 625         824 push @expanded, @results;
31             }
32              
33 3         130 return @expanded;
34             }
35              
36             sub _expand {
37 1133     1133   882 my ($results,$str,$car,@cdr) = @_;
38              
39 1133 100       1357 if (ref $car ne 'ARRAY') {
40 1101         862 push @$results, $str;
41 1101         974 return;
42             }
43              
44 32         40 for (@$car) {
45 508         586 _expand( $results, $str . $_, @cdr );
46             };
47             }
48              
49             sub _attach {
50 3338     3338   2750 my ($t, $car, @cdr) = @_;
51 3338 100       5217 return unless defined $car;
52 2237 100       3448 $t->{$car} = {} unless ref $t->{$car};
53 2237         2194 _attach( $t->{$car}, @cdr );
54             }
55              
56             1;
57              
58             __END__