package ballet::Commit; use Mouse::Role; sub create_commits { my ( $self, $logs_lines ) = @_; my @commits; while (scalar @$logs_lines) { my $id = shift @$logs_lines; my $author = shift @$logs_lines; my $date = shift @$logs_lines; shift @$logs_lines; my $msg = shift @$logs_lines; my $messages = []; while ( length $msg > 0) { push @$messages, $msg; $msg = shift @$logs_lines; } push @commits, { id => $id, author => $author, date => $date, message => join( "\n", @$messages ) }; } \@commits; } 1;