File Coverage

blib/lib/ARGV/JSON.pm
Criterion Covered Total %
statement 27 27 100.0
branch 2 2 100.0
condition n/a
subroutine 8 8 100.0
pod n/a
total 37 37 100.0


line stmt bran cond sub pod time code
1             package ARGV::JSON;
2 2     2   23689 use 5.008005;
  2         7  
  2         75  
3 2     2   13 use strict;
  2         11  
  2         69  
4 2     2   11 use warnings;
  2         11  
  2         62  
5 2     2   1003 use JSON;
  2         18629  
  2         11  
6              
7             our $VERSION = '0.01';
8              
9             our $JSON = JSON->new->utf8;
10             our @Data;
11              
12             sub import {
13 1     1   10 local $/;
14              
15 1         66 while (local $_ = <>) {
16 1         19 $JSON->incr_parse($_);
17              
18 1         21 while (my $datum = $JSON->incr_parse) {
19 3         37 push @Data, $datum;
20             }
21             }
22              
23 1         21 tie *ARGV, 'ARGV::JSON::Handle';
24             }
25              
26             package
27             ARGV::JSON::Handle;
28 2     2   2498 use Tie::Handle;
  2         4336  
  2         50  
29 2     2   1595 use parent -norequire => 'Tie::StdHandle';
  2         634  
  2         17  
30              
31             sub READLINE {
32 3 100   3   1638 if (wantarray) {
33 1         9 return splice @ARGV::JSON::Data;
34             } else {
35 2         16 return shift @ARGV::JSON::Data;
36             }
37             }
38              
39             1;
40              
41             __END__