class Admission::Index
Attributes
children[R]
items[R]
Public Class Methods
new()
click to toggle source
# File lib/admission/index.rb, line 5 def initialize @items = [] @children = {} end
Public Instance Methods
==(other)
click to toggle source
Calls superclass method
# File lib/admission/index.rb, line 35 def == other case other when Array to_list.eql? other else super end end
Also aliased as: eql?
add(*add_items, **add_children)
click to toggle source
# File lib/admission/index.rb, line 10 def add *add_items, **add_children @items |= add_items.flatten.map(&:to_sym) add_children.each do |key, list| child = @children[key] || Admission::Index.new child.add *list children[key] = child end self end
include?(*path)
click to toggle source
# File lib/admission/index.rb, line 22 def include? *path item, *path = path item = item.to_sym if path.empty? items.include? item else child = children[item] child ? child.include?(*path) : false end end
to_list()
click to toggle source
# File lib/admission/index.rb, line 45 def to_list result_list = items.dup unless children.empty? result_children = children.inject Hash.new do |h, (key, index)| h[key] = index.to_list h end result_list.push result_children end result_list end