Class: MultiGit::GitBackend::Object

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Object
Defined in:
lib/multi_git/git_backend/object.rb

Instance Attribute Summary

Attributes included from Object

#oid, #repository

Instance Method Summary collapse

Methods included from Object

#to_builder

Methods included from Utils::AbstractMethods

#abstract

Constructor Details

#initialize(repository, oid, content = nil) ⇒ Object

Returns a new instance of Object.



9
10
11
12
13
14
# File 'lib/multi_git/git_backend/object.rb', line 9

def initialize(repository, oid, content = nil)
  @repository = repository
  @git = repository.__backend__
  @oid = oid
  @content = content ? content.dup.freeze : nil
end

Instance Method Details

#bytesizeObject



16
17
18
19
20
21
22
23
24
# File 'lib/multi_git/git_backend/object.rb', line 16

def bytesize
  @size ||= begin
    if @content
      @content.bytesize
    else
      @git['cat-file',:s,@oid].to_i
    end
  end
end

#contentObject



26
27
28
# File 'lib/multi_git/git_backend/object.rb', line 26

def content
  @content ||= @git['cat-file',type.to_s,@oid].freeze
end

#to_ioObject



30
31
32
# File 'lib/multi_git/git_backend/object.rb', line 30

def to_io
  StringIO.new(content)
end