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.54';
3             #ABSTRACT: encapsulates a smoker object.
4              
5 21     21   1562681 use strict;
  21         105  
  21         585  
6 21     21   111 use warnings;
  21         44  
  21         617  
7 21     21   5464 use Params::Check qw(check);
  21         43369  
  21         1078  
8 21     21   134 use base qw(Object::Accessor);
  21         44  
  21         6678  
9 21     21   83153 use vars qw($VERBOSE);
  21         43  
  21         8011  
10              
11             sub new {
12 54     54 1 8302 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   434 do_callback => { allow => sub { return 1 if ! defined $_[0] or $_[0]->isa( 'CODE' ); }, },
18 2     2   163 name => { allow => sub { return 1; }, },
19 54         623 };
20              
21 54 50       263 my $args = check( $tmpl, { @_ }, 1 ) or return;
22 54         4792 my $self = bless { }, $package;
23             my $accessor_map = {
24 54     54   2270 perl => sub { defined $_[0]; },
25 0 0   0   0 env => sub { return 1 if ref $_[0] eq 'HASH'; },
26 4 50 33 4   252 do_callback => sub { return 1 if ! defined $_[0] or $_[0]->isa( 'CODE' ) },
27 2     2   112 name => sub { return 1; },
28 54         605 };
29 54         381 $self->mk_accessors( $accessor_map );
30 54         2345 $self->$_( $args->{$_} ) for keys %{ $args };
  54         412  
31 54         4786 return $self;
32             }
33              
34             sub dump_data {
35 85     85 1 8653 my $self = shift;
36 85         598 my @returns = qw(perl);
37 85         453 foreach my $data ( qw( env do_callback ) ) {
38 170 100       9591 push @returns, $data if defined $self->$data;
39             }
40 85         7033 return map { ( $_ => $self->$_ ) } @returns;
  89         705  
41             }
42              
43             1;
44              
45             __END__