File Coverage

blib/lib/Config/Files/Simple/JSON.pm
Criterion Covered Total %
statement 19 22 86.3
branch 3 6 50.0
condition n/a
subroutine 5 5 100.0
pod 2 2 100.0
total 29 35 82.8


line stmt bran cond sub pod time code
1             package Config::Files::Simple::JSON;
2              
3             =encoding UTF-8
4            
5             =head1 NAME
6            
7             Config::Files::Simple::JSON - Yet another config file reader.
8              
9             =head1 VERSION
10              
11             version 0.01
12              
13             =cut
14              
15             our $VERSION = '0.01'; # VERSION
16              
17 2     2   79692 use utf8;
  2         3  
  2         11  
18 2     2   51 use strict;
  2         3  
  2         40  
19 2     2   8 use warnings;
  2         3  
  2         429  
20              
21             =head1 SUBROUTINES/METHODS
22              
23             =head2 new
24              
25             Constructor
26              
27             =cut
28              
29             sub new {
30 2     2 1 136 my $class = shift;
31 2         5 my $self = {};
32 2         6 bless $self, $class;
33             }
34              
35             =head2 config_file
36              
37             Read configuration file from given path.
38              
39             =cut
40              
41             sub config_file {
42 2 50   2 1 997 if ( !-f $_[1] ) {
43 0         0 require Carp;
44 0         0 Carp::cluck "could not find $_[1] file";
45 0         0 return undef;
46             }
47 2         510 require String::Any::Extensions;
48 2 50       385 if ( !String::Any::Extensions::include( $_[1], defined $_[2] ? $_[2] : ['.json'] ) ) {
    50          
49 2         52 require Carp;
50 2         6 Carp::cluck("$_[1] seems not to be a JSON file.");
51             }
52 2         1330 require JSON::Parse;
53 2         1331 return JSON::Parse::json_file_to_perl( $_[1] );
54             }
55              
56             1;
57              
58             __END__