class Gollum::Git::Tree
Public Class Methods
new(tree)
click to toggle source
# File lib/rugged_adapter/git_layer_rugged.rb, line 698 def initialize(tree) @tree = tree end
tree_entry_from_rugged_hash(entry, root = '')
click to toggle source
# File lib/rugged_adapter/git_layer_rugged.rb, line 688 def self.tree_entry_from_rugged_hash(entry, root = '') { sha: entry[:oid], mode: entry[:filemode], type: entry[:type].to_s, name: entry[:name], path: "#{root}#{entry[:name]}" } end
Public Instance Methods
/(file)
click to toggle source
# File lib/rugged_adapter/git_layer_rugged.rb, line 714 def /(file) return self if file == '/' begin obj = @tree.path(file) rescue Rugged::TreeError return nil end return nil if obj.nil? obj = @tree.owner.lookup(obj[:oid]) obj.is_a?(Rugged::Tree) ? Gollum::Git::Tree.new(obj) : Gollum::Git::Blob.new(obj) end
[](i)
click to toggle source
# File lib/rugged_adapter/git_layer_rugged.rb, line 706 def [](i) @tree[i] end
blobs()
click to toggle source
# File lib/rugged_adapter/git_layer_rugged.rb, line 726 def blobs blobs = [] @tree.each_blob {|blob| blobs << blob_for_tree_entry(blob) } blobs end
find_blob() { |blob| ... }
click to toggle source
# File lib/rugged_adapter/git_layer_rugged.rb, line 732 def find_blob(&block) return nil unless block_given? blob = @tree.each_blob.find {|blob| yield blob[:name] } blob ? blob_for_tree_entry(blob) : nil end
id()
click to toggle source
# File lib/rugged_adapter/git_layer_rugged.rb, line 710 def id @tree.oid end
keys()
click to toggle source
# File lib/rugged_adapter/git_layer_rugged.rb, line 702 def keys @tree.map{|entry| entry[:name]} end
Private Instance Methods
blob_for_tree_entry(blob)
click to toggle source
# File lib/rugged_adapter/git_layer_rugged.rb, line 740 def blob_for_tree_entry(blob) Gollum::Git::Blob.new(@tree.owner.lookup(blob[:oid]), self.class.tree_entry_from_rugged_hash(blob)) end