Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / MooseX / Declare / StackItem.pm
CommitLineData
3fea05b9 1package MooseX::Declare::StackItem;
2
3use Moose;
4
5use namespace::clean -except => 'meta';
6use overload '""' => 'as_string', fallback => 1;
7
8has identifier => (
9 is => 'rw',
10 isa => 'Str',
11 required => 1,
12);
13
14has handler => (
15 is => 'ro',
16 required => 1,
17 default => '',
18);
19
20has is_dirty => (
21 is => 'ro',
22 isa => 'Bool',
23);
24
25has is_parameterized => (
26 is => 'ro',
27 isa => 'Bool',
28);
29
30has namespace => (
31 is => 'ro',
32 isa => 'Str|Undef',
33
34);
35
36sub as_string {
37 my ($self) = @_;
38 return $self->identifier;
39}
40
41sub serialize {
42 my ($self) = @_;
43 return sprintf '%s->new(%s)',
44 ref($self),
45 join ', ', map { defined($_) ? "q($_)" : 'undef' }
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
561;