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 97
def initialize(base, sha, mode = nil)
  super(base, sha)
  @mode = mode
  @trees = nil
  @blobs = nil
end

Public Instance Methods

blobs() click to toggle source
# File lib/git/object.rb, line 108
def blobs
  @blobs ||= check_tree[:blobs]
end
Also aliased as: files
children() click to toggle source
# File lib/git/object.rb, line 104
def children
  blobs.merge(subtrees)
end
depth() click to toggle source
# File lib/git/object.rb, line 123
def depth
  @base.lib.tree_depth(@objectish)
end
files()
Alias for: blobs
full_tree() click to toggle source
# File lib/git/object.rb, line 119
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 127
def tree?
  true
end
trees() click to toggle source
# File lib/git/object.rb, line 113
def trees
  @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 134
def check_tree
  @trees = {}
  @blobs = {}
  
  data = @base.lib.ls_tree(@objectish)

  data['tree'].each do |key, tree| 
    @trees[key] = Git::Object::Tree.new(@base, tree[:sha], tree[:mode]) 
  end
  
  data['blob'].each do |key, blob| 
    @blobs[key] = Git::Object::Blob.new(@base, blob[:sha], blob[:mode]) 
  end

  {
    :trees => @trees,
    :blobs => @blobs
  }
end