class JMESPath::Nodes::Flatten
def initialize(child)
def initialize(child) @child = child end
def optimize
def optimize self.class.new(@child.optimize) end
def visit(value)
def visit(value) value = @child.visit(value) if value.respond_to?(:to_ary) value.to_ary.each_with_object([]) do |v, values| if v.respond_to?(:to_ary) values.concat(v.to_ary) else values.push(v) end end end end