class Dentaku::TokenMatcher
def initialize(categories = nil, values = nil, children = [])
def initialize(categories = nil, values = nil, children = []) # store categories and values as hash to optimize key lookup, h/t @jan-mangs @categories = [categories].compact.flatten.each_with_object({}) { |c, h| h[c] = 1 } @values = [values].compact.flatten.each_with_object({}) { |v, h| h[v] = 1 } @children = children.compact @invert = false @min = 1 @max = 1 @range = (@min..@max) end