class Git::Object::Tree

def blobs

def blobs
  check_tree
  @blobs
end

def check_tree

actually run the git command
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

def children

def children
  blobs.merge(subtrees)
end

def depth

def depth
  @base.lib.tree_depth(@objectish)
end

def full_tree

def full_tree
  @base.lib.full_tree(@objectish)
end

def initialize(base, sha, mode = nil)

def initialize(base, sha, mode = nil)
  super(base, sha)
  @mode = mode
end

def tree?

def tree?
  true
end

def trees

def trees
  check_tree
  @trees
end