class DeepTree

Constants

Error
InvalidTreeError
VERSION

Attributes

tree[RW]

Public Class Methods

get_leaf(parent, *args) { |: parent| ... } click to toggle source
# File lib/deep_tree/deep_tree.rb, line 8
def self.get_leaf(parent, *args, &block)
  args.each_with_index do |key, index|
    result = case
    when index == (args.length - 1)
      return parent[key].nil? && block ? yield : parent[key]
    when parent[key].is_a?(Hash)
      parent = parent[key]
    else
      return block ? yield : nil
    end
  end
end
new(tree) click to toggle source
# File lib/deep_tree/deep_tree.rb, line 21
def initialize(tree)
  if tree.kind_of?(Hash)
    self.tree = tree
  else
    raise InvalidTreeError, "Expected a kind of Hash but got an instance of #{tree.class}"
  end
end

Public Instance Methods

get_leaf(*args, &block) click to toggle source
# File lib/deep_tree/deep_tree.rb, line 29
def get_leaf(*args, &block)
  DeepTree.get_leaf( tree, *args, &block )
end
method_missing(*args) click to toggle source
# File lib/deep_tree/deep_tree.rb, line 33
def method_missing(*args)
  self.tree(args)
end