Sha256: 4bdf3c536e410226bbf2b1de13b3d55d0d875c49b1c6014317f53467ffdf3c73

Contents?: true

Size: 783 Bytes

Versions: 2

Compression:

Stored size: 783 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]

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

          collection.push(entry)
        end

        collection
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
gitlab_git-2.1.0 lib/gitlab_git/log_parser.rb
gitlab_git-2.0.1 lib/gitlab_git/log_parser.rb