Class: Grit::GitRuby::GitObject

Inherits:
Object
  • Object
show all
Defined in:
lib/grit/git-ruby/git_object.rb

Overview

base class for all git objects (blob, tree, commit, tag)

Direct Known Subclasses

Blob, Commit, Tag, Tree

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeGitObject

Returns a new instance of GitObject

Raises:

  • (NotImplemented)


69
70
71
# File 'lib/grit/git-ruby/git_object.rb', line 69

def initialize
  raise NotImplemented, "abstract class"
end

Instance Attribute Details

#repositoryObject

Returns the value of attribute repository



51
52
53
# File 'lib/grit/git-ruby/git_object.rb', line 51

def repository
  @repository
end

#shaObject

Returns the value of attribute sha



52
53
54
# File 'lib/grit/git-ruby/git_object.rb', line 52

def sha
  @sha
end

Class Method Details

.from_raw(rawobject, repository = nil) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/grit/git-ruby/git_object.rb', line 54

def GitObject.from_raw(rawobject, repository = nil)
  case rawobject.type
  when :blob
    return Blob.from_raw(rawobject, repository)
  when :tree
    return Tree.from_raw(rawobject, repository)
  when :commit
    return Commit.from_raw(rawobject, repository)
  when :tag
    return Tag.from_raw(rawobject, repository)
  else
    raise RuntimeError, "got invalid object-type"
  end
end

Instance Method Details

#raw_contentObject

Raises:

  • (NotImplemented)


77
78
79
# File 'lib/grit/git-ruby/git_object.rb', line 77

def raw_content
  raise NotImplemented, "abstract class"
end

#sha1Object



81
82
83
84
85
# File 'lib/grit/git-ruby/git_object.rb', line 81

def sha1
  Digest::SHA1.hexdigest("%s %d\0" % \
                         [self.type, self.raw_content.length] + \
                         self.raw_content)
end

#typeObject

Raises:

  • (NotImplemented)


73
74
75
# File 'lib/grit/git-ruby/git_object.rb', line 73

def type
  raise NotImplemented, "abstract class"
end