class Git::Object::AbstractObject::Commit

A Git commit object

Public Class Methods

new(base, sha, init = nil) click to toggle source
Calls superclass method Git::Object::AbstractObject::new
# File lib/git/object.rb, line 154
def initialize(base, sha, init = nil)
  super(base, sha)
  @tree = nil
  @parents = nil
  @author = nil
  @committer = nil
  @message = nil
  return unless init

  from_data(init)
end

Public Instance Methods

author() click to toggle source

git author

# File lib/git/object.rb, line 191
def author
  check_commit
  @author
end
author_date() click to toggle source
# File lib/git/object.rb, line 196
def author_date
  author.date
end
commit?() click to toggle source
# File lib/git/object.rb, line 229
def commit?
  true
end
committer() click to toggle source

git author

# File lib/git/object.rb, line 201
def committer
  check_commit
  @committer
end
committer_date() click to toggle source
# File lib/git/object.rb, line 206
def committer_date
  committer.date
end
Also aliased as: date
date()
Alias for: committer_date
diff_parent() click to toggle source
# File lib/git/object.rb, line 211
def diff_parent
  diff(parent)
end
from_data(data) click to toggle source
# File lib/git/object.rb, line 220
def from_data(data)
  @sha ||= data['sha']
  @committer = Git::Author.new(data['committer'])
  @author = Git::Author.new(data['author'])
  @tree = Git::Object::Tree.new(@base, data['tree'])
  @parents = data['parent'].map { |sha| Git::Object::Commit.new(@base, sha) }
  @message = data['message'].chomp
end
gtree() click to toggle source
# File lib/git/object.rb, line 175
def gtree
  check_commit
  Tree.new(@base, @tree)
end
message() click to toggle source
# File lib/git/object.rb, line 166
def message
  check_commit
  @message
end
name() click to toggle source
# File lib/git/object.rb, line 171
def name
  @base.lib.name_rev(sha)
end
parent() click to toggle source
# File lib/git/object.rb, line 180
def parent
  parents.first
end
parents() click to toggle source

array of all parent commits

# File lib/git/object.rb, line 185
def parents
  check_commit
  @parents
end
set_commit(data) click to toggle source
# File lib/git/object.rb, line 215
def set_commit(data) # rubocop:disable Naming/AccessorMethodName
  Git.deprecation('Git::Object::Commit#set_commit is deprecated. Use #from_data instead.')
  from_data(data)
end

Private Instance Methods

check_commit() click to toggle source

see if this object has been initialized and do so if not

# File lib/git/object.rb, line 236
def check_commit
  return if @tree

  data = @base.lib.cat_file_commit(@objectish)
  from_data(data)
end