File Coverage

blib/lib/Datahub/Factory/Config.pm
Criterion Covered Total %
statement 15 25 60.0
branch 0 4 0.0
condition n/a
subroutine 5 7 71.4
pod 0 1 0.0
total 20 37 54.0


line stmt bran cond sub pod time code
1             package Datahub::Factory::Config;
2              
3 1     1   7 use Datahub::Factory::Sane;
  1         1  
  1         5  
4              
5             our $VERSION = '1.76';
6              
7 1     1   6 use Config::Simple;
  1         2  
  1         6  
8 1     1   40 use Moo;
  1         3  
  1         4  
9 1     1   767 use Catmandu;
  1         148898  
  1         5  
10 1     1   175 use namespace::clean;
  1         2  
  1         4  
11              
12             with 'Datahub::Factory::Logger';
13              
14             has config_file => (is => 'ro');
15             has config => (is => 'lazy');
16              
17             sub _build_config {
18 0     0     my $self = shift;
19 0           return new Config::Simple($self->get_config_file());
20             };
21              
22             # Loop over a list of predefined locations
23             # where a config file _might_ be. Take the
24             # first one that exists and return it.
25             # Throw exceptions on failure.
26             sub get_config_file {
27 0     0 0   my $self = shift;
28 0           my @config_locations = ('/etc/datahub-factory/settings.ini', 'conf/settings.ini');
29 0 0         if (defined ($self->config_file)) {
30 0           unshift @config_locations, $self->config_file;
31             }
32 0           foreach my $config_file (@config_locations) {
33 0 0         if (-f $config_file) {
34 0           return $config_file;
35             }
36             }
37             Catmandu::Error->throw({
38 0           message => 'No configuration file found.'
39             });
40             }
41              
42             1;
43              
44             __END__
45              
46             =head1 NAME
47              
48             Datahub::Factory::Config - A Datahub::Factory configuration file loader
49              
50             =head1 SYNOPSIS
51              
52             =head1 DESCRIPTION
53              
54             =cut
55