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 MooseX::Declare::StackItem;
2             $MooseX::Declare::StackItem::VERSION = '0.39';
3 24     24   18594 use Moose;
  24         65  
  24         219  
4              
5 24     24   172784 use namespace::clean -except => 'meta';
  24         69  
  24         286  
6 24     24   7356 use overload '""' => 'as_string', fallback => 1;
  24         64  
  24         263  
7              
8             has identifier => (
9             is => 'rw',
10             isa => 'Str',
11             required => 1,
12             );
13              
14             has handler => (
15             is => 'ro',
16             required => 1,
17             default => '',
18             );
19              
20             has is_dirty => (
21             is => 'ro',
22             isa => 'Bool',
23             );
24              
25             has is_parameterized => (
26             is => 'ro',
27             isa => 'Bool',
28             );
29              
30             has namespace => (
31             is => 'ro',
32             isa => 'Str|Undef',
33              
34             );
35              
36             sub as_string {
37 136     136 0 1922 my ($self) = @_;
38 136         5794 return $self->identifier;
39             }
40              
41             sub serialize {
42 65     65 0 150 my ($self) = @_;
43 650 100       6952 return sprintf '%s->new(%s)',
44             ref($self),
45 65 100       2879 join ', ', map { defined($_) ? "q($_)" : 'undef' }
    100          
46             'identifier', $self->identifier,
47             'handler', $self->handler,
48             'is_dirty', ( $self->is_dirty ? 1 : 0 ),
49             'is_parameterized', ( $self->is_parameterized ? 1 : 0 ),
50             'namespace', $self->namespace,
51             ;
52             }
53              
54             __PACKAGE__->meta->make_immutable;
55              
56             1;