changes to the changes for the repo
[gitmo/MooseX-Types-Structured.git] / lib / MooseX / Types / Structured / MessageStack.pm
CommitLineData
14375407 1package MooseX::Types::Structured::MessageStack;
2use Moose;
3
4has 'level' => (
5 traits => ['Counter'],
6 is => 'ro',
7 isa => 'Num',
8 required => 0,
9 default => 0,
10 handles => {
11 inc_level => 'inc',
12 dec_level => 'dec',
13 },
14);
15
14375407 16has 'messages' => (
17 traits => ['Array'],
18 is => 'ro',
19 isa => 'ArrayRef[HashRef]',
20 required => 1,
21 default => sub { [] },
22 handles => {
23 has_messages => 'count',
24 add_message => 'push',
25 all_messages => 'elements',
26 },
27);
28
29sub as_string {
30 my @messages = (shift)->all_messages;
ad36c8f5 31 my @flattened_msgs = map {
32 "\n". (" " x $_->{level}) ."[+] " . $_->{message};
33 } reverse @messages;
14375407 34
ad36c8f5 35 return join("", @flattened_msgs);
36}
14375407 37
38no Moose;
39__PACKAGE__->meta->make_immutable;
40
411;