File Coverage

lib/Badger/Data/Facet/Class.pm
Criterion Covered Total %
statement 16 20 80.0
branch 1 4 25.0
condition 1 3 33.3
subroutine 5 6 83.3
pod 3 3 100.0
total 26 36 72.2


line stmt bran cond sub pod time code
1             package Badger::Data::Facet::Class;
2              
3 3     3   17 use Carp;
  3         4  
  3         158  
4 3     3   15 use Badger::Data::Facets;
  3         3  
  3         30  
5             use Badger::Class
6 3         31 version => 0.01,
7             debug => 0,
8             uber => 'Badger::Class',
9             utils => 'camel_case',
10             constants => 'DELIMITER ARRAY',
11             constant => {
12             FACETS => 'Badger::Data::Facets',
13             FACET => 'Badger::Data::Facet',
14             },
15             hooks => {
16             type => \&type,
17             args => \&args,
18             opts => \&opts,
19 3     3   18 };
  3         9  
20              
21              
22             sub type {
23 10     10 1 17 my ($self, $type) = @_;
24 10   33     39 my $facet = $self->FACETS->prototype->find($type)
25             || croak "Invalid facet type: $type\n";
26 10         35 $self->base($facet);
27             }
28              
29              
30             sub args {
31 10     10 1 18 my ($self, $args) = @_;
32            
33 10 50       52 $args = [ split(DELIMITER, $args) ]
34             unless ref $args eq ARRAY;
35            
36 10         37 $self->var( ARGS => $args );
37 10         29 $self->mutators($args);
38             }
39              
40              
41             sub opts {
42 0     0 1   my ($self, $opts) = @_;
43              
44 0 0         $opts = [ split(DELIMITER, $opts) ]
45             unless ref $opts eq ARRAY;
46              
47 0           $self->var( OPTS => $opts );
48 0           $self->mutators($opts);
49             }
50              
51              
52             1;
53             __END__