Class: Git::Object

Inherits:
Object
  • Object
show all
Defined in:
lib/git/object.rb

Overview

represents a git object

Defined Under Namespace

Classes: AbstractObject, Blob, Commit, Tag, Tree

Class Method Summary collapse

Class Method Details

.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



262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
# File 'lib/git/object.rb', line 262

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