File Coverage

blib/lib/MooseX/Declare/StackItem.pm
Criterion Covered Total %
statement 14 14 100.0
branch 6 6 100.0
condition n/a
subroutine 5 5 100.0
pod 0 2 0.0
total 25 27 92.5


line stmt bran cond sub pod time code
1             package # hide from PAUSE
2             MooseX::Declare::StackItem;
3              
4             our $VERSION = '0.43';
5              
6 24     24   10818 use Moose;
  24         39  
  24         141  
7              
8 24     24   104059 use namespace::autoclean;
  24         38  
  24         156  
9 24     24   1473 use overload '""' => 'as_string', fallback => 1;
  24         58  
  24         184  
10              
11             has identifier => (
12             is => 'rw',
13             isa => 'Str',
14             required => 1,
15             );
16              
17             has handler => (
18             is => 'ro',
19             required => 1,
20             default => '',
21             );
22              
23             has is_dirty => (
24             is => 'ro',
25             isa => 'Bool',
26             );
27              
28             has is_parameterized => (
29             is => 'ro',
30             isa => 'Bool',
31             );
32              
33             has namespace => (
34             is => 'ro',
35             isa => 'Str|Undef',
36              
37             );
38              
39             sub as_string {
40 136     136 0 1129 my ($self) = @_;
41 136         3571 return $self->identifier;
42             }
43              
44             sub serialize {
45 65     65 0 112 my ($self) = @_;
46             return sprintf '%s->new(%s)',
47             ref($self),
48 65 100       2013 join ', ', map { defined($_) ? "q($_)" : 'undef' }
  650 100       4262  
    100          
49             'identifier', $self->identifier,
50             'handler', $self->handler,
51             'is_dirty', ( $self->is_dirty ? 1 : 0 ),
52             'is_parameterized', ( $self->is_parameterized ? 1 : 0 ),
53             'namespace', $self->namespace,
54             ;
55             }
56              
57             __PACKAGE__->meta->make_immutable;
58              
59             1;