File Coverage

blib/lib/TMDB/Config.pm
Criterion Covered Total %
statement 31 31 100.0
branch n/a
condition 8 16 50.0
subroutine 7 7 100.0
pod 0 1 0.0
total 46 55 83.6


line stmt bran cond sub pod time code
1             package TMDB::Config;
2              
3             #######################
4             # LOAD CORE MODULES
5             #######################
6 3     3   17 use strict;
  3         5  
  3         130  
7 3     3   13 use warnings FATAL => 'all';
  3         6  
  3         179  
8 3     3   15 use Carp qw(croak carp);
  3         5  
  3         232  
9              
10             #######################
11             # LOAD CPAN MODULES
12             #######################
13 3     3   16 use Params::Validate qw(validate_with :types);
  3         25  
  3         489  
14 3         20 use Object::Tiny qw(
15             session
16             config
17             change_keys
18             img_backdrop_sizes
19             img_base_url
20             img_secure_base_url
21             img_poster_sizes
22             img_profile_sizes
23             img_logo_sizes
24             img_default_size
25 3     3   16 );
  3         5  
26              
27             #######################
28             # LOAD DIST MODULES
29             #######################
30 3     3   1120 use TMDB::Session;
  3         4  
  3         13  
31              
32             #######################
33             # VERSION
34             #######################
35             our $VERSION = '1.3.0';
36              
37             #######################
38             # PUBLIC METHODS
39             #######################
40              
41             ## ====================
42             ## Constructor
43             ## ====================
44             sub new {
45 1     1 0 12 my $class = shift;
46 1         26 my %opts = validate_with(
47             params => \@_,
48             spec => {
49             session => {
50             type => OBJECT,
51             isa => 'TMDB::Session',
52             },
53             img_default_size => {
54             type => SCALAR,
55             optional => 1,
56             default => 'original',
57             },
58             },
59             );
60              
61 1         10 my $self = $class->SUPER::new(%opts);
62              
63 1   50     20 my $config = $self->session->talk( { method => 'configuration' } ) || {};
64 1         30 $self->{config} = $config;
65 1   50     7 $self->{img_backdrop_sizes} = $config->{images}->{backdrop_sizes} || [];
66 1   50     6 $self->{img_poster_sizes} = $config->{images}->{poster_sizes} || [];
67 1   50     6 $self->{img_profile_sizes} = $config->{images}->{profile_sizes} || [];
68 1   50     5 $self->{img_logo_sizes} = $config->{images}->{logo_sizes} || [];
69 1   50     6 $self->{img_base_url} = $config->{images}->{base_url} || q();
70             $self->{img_secure_base_url}
71 1   50     4 = $config->{images}->{secure_base_url} || q();
72 1   50     5 $self->{change_keys} = $config->{change_keys} || [];
73              
74 1         4 return $self;
75             } ## end sub new
76              
77             #######################
78             1;