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 99
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 110
def blobs
  @blobs ||= check_tree[:blobs]
end
Also aliased as: files
children() click to toggle source
# File lib/git/object.rb, line 106
def children
  blobs.merge(subtrees)
end
depth() click to toggle source
# File lib/git/object.rb, line 125
def depth
  @base.lib.tree_depth(@objectish)
end
files()
Alias for: blobs
full_tree() click to toggle source
# File lib/git/object.rb, line 121
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 129
def tree?
  true
end
trees() click to toggle source
# File lib/git/object.rb, line 115
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 136
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