Class: Git::Object::AbstractObject

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

Direct Known Subclasses

Blob, Commit, Tag, Tree

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base, objectish) ⇒ AbstractObject

Returns a new instance of AbstractObject.



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

def initialize(base, objectish)
  @base = base
  @objectish = objectish.to_s
  @contents = nil
  @trees = nil
  @size = nil
  @sha = nil
end

Instance Attribute Details

#mode

Returns the value of attribute mode.



12
13
14
# File 'lib/git/object.rb', line 12

def mode
  @mode
end

#objectish

Returns the value of attribute objectish.



12
13
14
# File 'lib/git/object.rb', line 12

def objectish
  @objectish
end

#size



29
30
31
# File 'lib/git/object.rb', line 29

def size
  @size ||= @base.lib.cat_file_size(@objectish)
end

#type

Returns the value of attribute type.



12
13
14
# File 'lib/git/object.rb', line 12

def type
  @type
end

Instance Method Details

#archive(file = nil, opts = {})

creates an archive of this object (tree)



69
70
71
# File 'lib/git/object.rb', line 69

def archive(file = nil, opts = {})
  @base.lib.archive(@objectish, file, opts)
end

#blob?Boolean

Returns:

  • (Boolean)


75
# File 'lib/git/object.rb', line 75

def blob?; false; end

#commit?Boolean

Returns:

  • (Boolean)


77
# File 'lib/git/object.rb', line 77

def commit?; false; end

#contents(&block)

Get the object's contents. If no block is given, the contents are cached in memory and returned as a string. If a block is given, it yields an IO object (via IO::popen) which could be used to read a large file in chunks.

Use this for large files so that they are not held in memory.



39
40
41
42
43
44
45
# File 'lib/git/object.rb', line 39

def contents(&block)
  if block_given?
    @base.lib.cat_file_contents(@objectish, &block)
  else
    @contents ||= @base.lib.cat_file_contents(@objectish)
  end
end

#contents_array



47
48
49
# File 'lib/git/object.rb', line 47

def contents_array
  self.contents.split("\n")
end

#diff(objectish)



60
61
62
# File 'lib/git/object.rb', line 60

def diff(objectish)
  Git::Diff.new(@base, @objectish, objectish)
end

#grep(string, path_limiter = nil, opts = {})



55
56
57
58
# File 'lib/git/object.rb', line 55

def grep(string, path_limiter = nil, opts = {})
  opts = {:object => sha, :path_limiter => path_limiter}.merge(opts)
  @base.lib.grep(string, opts)
end

#log(count = 30)



64
65
66
# File 'lib/git/object.rb', line 64

def log(count = 30)
  Git::Log.new(@base, count).object(@objectish)
end

#sha



25
26
27
# File 'lib/git/object.rb', line 25

def sha
  @sha ||= @base.lib.rev_parse(@objectish)
end

#tag?Boolean

Returns:

  • (Boolean)


79
# File 'lib/git/object.rb', line 79

def tag?; false; end

#to_s



51
52
53
# File 'lib/git/object.rb', line 51

def to_s
  @objectish
end

#tree?Boolean

Returns:

  • (Boolean)


73
# File 'lib/git/object.rb', line 73

def tree?; false; end