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)

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

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

Class Method Details

.from_raw(rawobject, repository = nil) ⇒ Object


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

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)

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

def raw_content
  raise NotImplemented, "abstract class"
end

#sha1Object


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

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

#typeObject

Raises:

  • (NotImplemented)

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

def type
  raise NotImplemented, "abstract class"
end