File Coverage

blib/lib/CPAN/Testers/WWW/Reports/Parser/JSON.pm
Criterion Covered Total %
statement 33 33 100.0
branch 5 6 83.3
condition n/a
subroutine 9 9 100.0
pod 3 3 100.0
total 50 51 98.0


line stmt bran cond sub pod time code
1             package CPAN::Testers::WWW::Reports::Parser::JSON;
2              
3 2     2   11085 use strict;
  2         5  
  2         82  
4 2     2   12 use warnings;
  2         4  
  2         161  
5              
6 2     2   13 use vars qw($VERSION);
  2         3  
  2         126  
7             $VERSION = '0.05';
8              
9             #----------------------------------------------------------------------------
10             # Library Modules
11              
12 2     2   10 use JSON::XS;
  2         4  
  2         782  
13              
14             #----------------------------------------------------------------------------
15             # The Application Programming Interface
16              
17             sub new {
18 4     4 1 9 my $class = shift;
19 4         11 my $self = {};
20 4         15 bless $self, $class;
21 4         41 return $self;
22             }
23              
24             sub DESTROY {
25 4     4   8481 my $self = shift;
26             }
27              
28             # full data set methods
29              
30             sub register {
31 4     4 1 22 my $self = shift;
32 4         17 my %hash = @_;
33 4         13 $self->{file} = $hash{file};
34 4         18 $self->{data} = $hash{data};
35             }
36              
37             sub raw_data {
38 17     17 1 32 my $self = shift;
39 17 100       98 $self->{data} = $self->_load_file($self->{file}) if($self->{file});
40 17         92524 return decode_json($self->{data});
41             }
42              
43             sub _load_file {
44 13     13   28 my ($self,$file) = @_;
45 13         15 my $fh;
46              
47 13 100       44 if (ref $file eq 'GLOB') {
48 4         9 $fh = $file;
49 4         40 seek($fh,0,0);
50             } else {
51 9 50       3451 open $fh, '<', $file or die "Cannot open file [$file]: $!\n";
52             }
53 13         27 return do { local $/; <$fh> };
  13         73  
  13         8293  
54             }
55              
56             q{ Is all that we or seem, but a dream within a dream ? };
57              
58             __END__