class Git::Object::Tree

Public Class Methods

new(base, sha, mode = nil) click to toggle source
Calls superclass method Git::Object::AbstractObject.new
# File lib/git/object.rb, line 100
def initialize(base, sha, mode = nil)
  super(base, sha)
  @mode = mode
end

Public Instance Methods

blobs() click to toggle source
# File lib/git/object.rb, line 109
def blobs
  check_tree
  @blobs
end
Also aliased as: files
children() click to toggle source
# File lib/git/object.rb, line 105
def children
  blobs.merge(subtrees)
end
depth() click to toggle source
# File lib/git/object.rb, line 126
def depth
  @base.lib.tree_depth(@objectish)
end
files()
Alias for: blobs
full_tree() click to toggle source
# File lib/git/object.rb, line 122
def full_tree
  @base.lib.full_tree(@objectish)
end
subdirectories()
Alias for: trees
subtrees()
Alias for: trees
tree?() click to toggle source
# File lib/git/object.rb, line 130
def tree?
  true
end
trees() click to toggle source
# File lib/git/object.rb, line 115
def trees
  check_tree
  @trees
end
Also aliased as: subtrees, subdirectories

Private Instance Methods

check_tree() click to toggle source

actually run the git command

# File lib/git/object.rb, line 137
def check_tree
  unless @trees
    @trees = {}
    @blobs = {}
    data = @base.lib.ls_tree(@objectish)
    data['tree'].each { |k, d| @trees[k] = Git::Object::Tree.new(@base, d[:sha], d[:mode]) }
    data['blob'].each { |k, d| @blobs[k] = Git::Object::Blob.new(@base, d[:sha], d[:mode]) }
  end
end