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.03
12              
13             =cut
14              
15             our $VERSION = '0.03'; # VERSION
16              
17 2     2   73623 use utf8;
  2         5  
  2         13  
18 2     2   51 use strict;
  2         3  
  2         30  
19 2     2   8 use warnings;
  2         4  
  2         334  
20              
21             =head1 SUBROUTINES/METHODS
22              
23             =head2 new
24              
25             Constructor
26              
27             =cut
28              
29             sub new {
30 2     2 1 143 my $class = shift;
31 2         6 my $self = {};
32 2         10 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 1723 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         459 require String::Any::Extensions;
48 2 50       462 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         845 require JSON::Parse;
53 2         1589 return JSON::Parse::json_file_to_perl( $_[1] );
54             }
55              
56             1;
57              
58             __END__