Sha256: 761745e7441b894200fc0e32cb163ae3dc7b90116791e699deab91e3f445a43b
Contents?: true
Size: 1.56 KB
Versions: 3
Compression:
Stored size: 1.56 KB
Contents
module Gitrb class Commit < Gitrb::Object attr_accessor :tree, :parent, :author, :committer, :message def initialize(options = {}) super(options) @parent = [options[:parent]].flatten.compact @tree = options[:tree] @author = options[:author] @committer = options[:committer] @message = options[:message] parse(options[:data]) if options[:data] end def type 'commit' end def date (committer && committer.date) || (author && author.date) end def ==(other) Commit === other and id == other.id end def save repository.put(self) id end def dump [ "tree #{tree.id}", @parent.map { |p| "parent #{p.id}" }, "author #{author.dump}", "committer #{committer.dump}", '', message ].flatten.join("\n") end def to_s id end private def parse(data) headers, @message = data.split("\n\n", 2) repository.set_encoding(@message) headers.split("\n").each do |header| key, value = header.split(' ', 2) case key when 'parent' @parent << Reference.new(:repository => repository, :id => repository.set_encoding(value)) when 'author' @author = User.parse(repository.set_encoding(value)) when 'committer' @committer = User.parse(repository.set_encoding(value)) when 'tree' @tree = Reference.new(:repository => repository, :id => repository.set_encoding(value)) end end self end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
gitrb-0.0.8 | lib/gitrb/commit.rb |
gitrb-0.0.7 | lib/gitrb/commit.rb |
gitrb-0.0.6 | lib/gitrb/commit.rb |