hide more from PAUSE indexer
[gitmo/MooseX-Types-Structured.git] / lib / MooseX / Types / Structured / MessageStack.pm
CommitLineData
3c0a590c 1package ## Hide from PAUSE
2 MooseX::Types::Structured::MessageStack;
3
14375407 4use Moose;
5
fc5995b6 6=attr level
7
8=cut
9
14375407 10has 'level' => (
11 traits => ['Counter'],
12 is => 'ro',
13 isa => 'Num',
14 required => 0,
15 default => 0,
16 handles => {
17 inc_level => 'inc',
18 dec_level => 'dec',
19 },
20);
21
fc5995b6 22=attr messages
23
24=cut
25
14375407 26has 'messages' => (
27 traits => ['Array'],
28 is => 'ro',
29 isa => 'ArrayRef[HashRef]',
30 required => 1,
31 default => sub { [] },
32 handles => {
33 has_messages => 'count',
34 add_message => 'push',
35 all_messages => 'elements',
36 },
37);
38
fc5995b6 39=method as_string
40
41=cut
42
14375407 43sub as_string {
44 my @messages = (shift)->all_messages;
ad36c8f5 45 my @flattened_msgs = map {
46 "\n". (" " x $_->{level}) ."[+] " . $_->{message};
47 } reverse @messages;
14375407 48
ad36c8f5 49 return join("", @flattened_msgs);
50}
14375407 51
52no Moose;
53__PACKAGE__->meta->make_immutable;
54
551;