class JMESPath::Nodes::Flatten
Public Class Methods
new(child)
click to toggle source
# File lib/jmespath/nodes/flatten.rb, line 5 def initialize(child) @child = child end
Public Instance Methods
optimize()
click to toggle source
# File lib/jmespath/nodes/flatten.rb, line 24 def optimize self.class.new(@child.optimize) end
visit(value)
click to toggle source
# File lib/jmespath/nodes/flatten.rb, line 9 def visit(value) value = @child.visit(value) if Array === value value.each_with_object([]) do |v, values| if Array === v values.concat(v) else values.push(v) end end else nil end end