diff options
Diffstat (limited to '')
-rw-r--r-- | lib/ballet/Commit.pm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/ballet/Commit.pm b/lib/ballet/Commit.pm new file mode 100644 index 0000000..2836714 --- /dev/null +++ b/lib/ballet/Commit.pm @@ -0,0 +1,36 @@ +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; |