File Coverage

blib/lib/Business/UDC.pm
Criterion Covered Total %
statement 33 37 89.1
branch 2 2 100.0
condition n/a
subroutine 9 11 81.8
pod 6 6 100.0
total 50 56 89.2


line stmt bran cond sub pod time code
1             package Business::UDC;
2              
3 6     6   116628 use strict;
  6         9  
  6         192  
4 6     6   55 use warnings;
  6         9  
  6         316  
5              
6 6     6   2316 use Business::UDC::Parser qw(parse);
  6         16  
  6         123  
7 6     6   353 use English;
  6         8  
  6         29  
8 6     6   2500 use Error::Pure::Utils qw(clean);
  6         10  
  6         118  
9              
10             our $VERSION = 0.04;
11              
12             # Constructor.
13             sub new {
14 61     61 1 937186 my ($class, $source) = @_;
15              
16             # Create object.
17 61         545 my $self = bless {
18             'source' => $source,
19             '_ast' => undef,
20             '_error' => undef,
21             '_tokens' => [],
22             '_valid' => 0,
23             }, $class;
24              
25 61         150 my $res_hr = eval {
26 61         180 parse($self->{'source'});
27             };
28 61 100       22506 if ($EVAL_ERROR) {
29 24         51 chomp $EVAL_ERROR;
30 24         47 $self->{'_error'} = $EVAL_ERROR;
31 24         70 clean();
32             } else {
33 37         53 $self->{'_ast'} = $res_hr->{'ast'};
34 37         53 $self->{'_tokens'} = $res_hr->{'tokens'};
35 37         52 $self->{'_valid'} = 1;
36             }
37              
38 61         506 return $self;
39             }
40              
41             sub ast {
42 0     0 1 0 my $self = shift;
43              
44 0         0 return $self->{'_ast'};
45             }
46              
47             sub error {
48 4     4 1 15 my $self = shift;
49              
50 4         16 return $self->{'_error'};
51             }
52              
53             sub is_valid {
54 53     53 1 167 my $self = shift;
55              
56 53         210 return $self->{'_valid'};
57             }
58              
59             sub source {
60 1     1 1 4 my $self = shift;
61              
62 1         5 return $self->{'source'};
63             }
64              
65             sub tokens {
66 0     0 1   my $self = shift;
67              
68 0           return $self->{'_tokens'};
69             }
70              
71             1;
72              
73             __END__