class Git::Object
represents a git object
Public Class Methods
new(base, objectish, type = nil, is_tag = false)
click to toggle source
if we're calling this, we don't know what type it is yet so this is our little factory method
# File lib/git/object.rb, line 294 def self.new(base, objectish, type = nil, is_tag = false) if is_tag sha = base.lib.tag_sha(objectish) if sha == '' raise Git::UnexpectedResultError.new("Tag '#{objectish}' does not exist.") end return Git::Object::Tag.new(base, sha, objectish) end type ||= base.lib.object_type(objectish) klass = case type when /blob/ then Blob when /commit/ then Commit when /tree/ then Tree end klass.new(base, objectish) end