Method: Git::Object.new

Defined in:
lib/git/object.rb

.new(base, objectish, type = nil, is_tag = false) ⇒ Object

if we’re calling this, we don’t know what type it is yet so this is our little factory method



292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
# File 'lib/git/object.rb', line 292

def self.new(base, objectish, type = nil, is_tag = false)
  if is_tag
    sha = base.lib.tag_sha(objectish)
    if sha == ''
      raise Git::GitTagNameDoesNotExist.new(objectish)
    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