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 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