Class: Grit::GitRuby::Object

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

Overview

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeObject

Returns a new instance of Object.

Raises:

  • (NotImplemented)

58
59
60
# File 'lib/grit/git-ruby/object.rb', line 58

def initialize
  raise NotImplemented, "abstract class"
end

Instance Attribute Details

#repositoryObject

Returns the value of attribute repository


41
42
43
# File 'lib/grit/git-ruby/object.rb', line 41

def repository
  @repository
end

Class Method Details

.from_raw(rawobject, repository = nil) ⇒ Object


43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/grit/git-ruby/object.rb', line 43

def Object.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)

66
67
68
# File 'lib/grit/git-ruby/object.rb', line 66

def raw_content
  raise NotImplemented, "abstract class"
end

#sha1Object


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

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

#typeObject

Raises:

  • (NotImplemented)

62
63
64
# File 'lib/grit/git-ruby/object.rb', line 62

def type
  raise NotImplemented, "abstract class"
end