Sha256: 012c82197b9f5bc8ff029f1c09d5a98aca35dd2290c4ed1114fd5dea0b721adc

Contents?: true

Size: 741 Bytes

Versions: 3

Compression:

Stored size: 741 Bytes

Contents

module Gitlab
  module Git
    class LogParser
      # Parses the log file into a collection of commits
      # Data model:
      #   {author_name, author_email, date, additions, deletions}
      def self.parse_log(log_from_git)
        log = log_from_git.split("\n")
        collection = []

        log.each_slice(5) do |slice|
          entry = {}
          entry[:author_name] = slice[0]
          entry[:author_email] = slice[1]
          entry[:date] = slice[2]

          changes = slice[4].split(",")
          entry[:additions] = changes[1].to_i unless changes[1].nil?
          entry[:deletions] = changes[2].to_i unless changes[2].nil?

          collection.push(entry)
        end

        collection
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gitlab_git-2.0.0 lib/gitlab_git/log_parser.rb
gitlab_git-2.0.0.pre2 lib/gitlab_git/log_parser.rb
gitlab_git-2.0.0.beta lib/gitlab_git/log_parser.rb