X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FTypes%2FStructured%2FMessageStack.pm;h=a5dbeef173739a9ed66b81ec3b51e9d1274712f6;hb=fc5995b6cb005b8d8a792cb5581688ffc2379ade;hp=38a8a345ed45c4b07ae2681119887562ab5e25d2;hpb=fbe3dfe7ee2a5138dc79f590949b7b5a55dc3418;p=gitmo%2FMooseX-Types-Structured.git diff --git a/lib/MooseX/Types/Structured/MessageStack.pm b/lib/MooseX/Types/Structured/MessageStack.pm index 38a8a34..a5dbeef 100644 --- a/lib/MooseX/Types/Structured/MessageStack.pm +++ b/lib/MooseX/Types/Structured/MessageStack.pm @@ -1,6 +1,10 @@ package MooseX::Types::Structured::MessageStack; use Moose; +=attr level + +=cut + has 'level' => ( traits => ['Counter'], is => 'ro', @@ -13,7 +17,10 @@ has 'level' => ( }, ); -# :level, :message, :tc +=attr messages + +=cut + has 'messages' => ( traits => ['Array'], is => 'ro', @@ -27,12 +34,18 @@ has 'messages' => ( }, ); +=method as_string + +=cut + sub as_string { my @messages = (shift)->all_messages; - my $message = join("", map { "\n". (" " x $_->{level}) ."[+] " . $_->{message} } reverse @messages); - return $message; -} + my @flattened_msgs = map { + "\n". (" " x $_->{level}) ."[+] " . $_->{message}; + } reverse @messages; + return join("", @flattened_msgs); +} no Moose; __PACKAGE__->meta->make_immutable;