File Coverage

blib/lib/Config/Files/Simple/JSON.pm
Criterion Covered Total %
statement 17 22 77.2
branch 3 6 50.0
condition n/a
subroutine 5 5 100.0
pod 2 2 100.0
total 27 35 77.1


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.02
12              
13             =cut
14              
15             our $VERSION = '0.02'; # VERSION
16              
17 2     2   60119 use utf8;
  2         2  
  2         10  
18 2     2   45 use strict;
  2         3  
  2         26  
19 2     2   5 use warnings;
  2         2  
  2         350  
20              
21             =head1 SUBROUTINES/METHODS
22              
23             =head2 new
24              
25             Constructor
26              
27             =cut
28              
29             sub new {
30 2     2 1 135 my $class = shift;
31 2         3 my $self = {};
32 2         21 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 629 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         461 require String::Any::Extensions;
48 2 50       385 if ( !String::Any::Extensions::include( $_[1], defined $_[2] ? $_[2] : ['.json'] ) ) {
    50          
49 0         0 require Carp;
50 0         0 Carp::cluck("$_[1] seems not to be a JSON file.");
51             }
52 2         926 require JSON::Parse;
53 2         1424 return JSON::Parse::json_file_to_perl( $_[1] );
54             }
55              
56             1;
57              
58             __END__