File Coverage

blib/lib/POE/Component/SmokeBox/Smoker.pm
Criterion Covered Total %
statement 35 37 94.5
branch 5 12 41.6
condition 2 6 33.3
subroutine 12 14 85.7
pod 2 2 100.0
total 56 71 78.8


line stmt bran cond sub pod time code
1             package POE::Component::SmokeBox::Smoker;
2             $POE::Component::SmokeBox::Smoker::VERSION = '0.58';
3             #ABSTRACT: encapsulates a smoker object.
4              
5 21     21   1828500 use strict;
  21         106  
  21         625  
6 21     21   120 use warnings;
  21         50  
  21         705  
7 21     21   6038 use Params::Check qw(check);
  21         45125  
  21         1158  
8 21     21   150 use base qw(Object::Accessor);
  21         52  
  21         7221  
9 21     21   87341 use vars qw($VERBOSE);
  21         81  
  21         9162  
10              
11             sub new {
12 54     54 1 10873 my $package = shift;
13              
14             my $tmpl = {
15             perl => { defined => 1, required => 1 },
16 0 0   0   0 env => { defined => 1, allow => [ sub { return 1 if ref $_[0] eq 'HASH'; } ], },
17 4 50 33 4   546 do_callback => { allow => sub { return 1 if ! defined $_[0] or $_[0]->isa( 'CODE' ); }, },
18 2     2   200 name => { allow => sub { return 1; }, },
19 54         651 };
20              
21 54 50       282 my $args = check( $tmpl, { @_ }, 1 ) or return;
22 54         5046 my $self = bless { }, $package;
23             my $accessor_map = {
24 54     54   2255 perl => sub { defined $_[0]; },
25 0 0   0   0 env => sub { return 1 if ref $_[0] eq 'HASH'; },
26 4 50 33 4   590 do_callback => sub { return 1 if ! defined $_[0] or $_[0]->isa( 'CODE' ) },
27 2     2   215 name => sub { return 1; },
28 54         718 };
29 54         349 $self->mk_accessors( $accessor_map );
30 54         2558 $self->$_( $args->{$_} ) for keys %{ $args };
  54         465  
31 54         5344 return $self;
32             }
33              
34             sub dump_data {
35 85     85 1 8953 my $self = shift;
36 85         749 my @returns = qw(perl);
37 85         513 foreach my $data ( qw( env do_callback ) ) {
38 170 100       11426 push @returns, $data if defined $self->$data;
39             }
40 85         8583 return map { ( $_ => $self->$_ ) } @returns;
  89         831  
41             }
42              
43             1;
44              
45             __END__