class JMESPath::Nodes::Flatten
Public Class Methods
new(child)
click to toggle source
# File lib/jmespath/nodes/flatten.rb, line 6 def initialize(child) @child = child end
Public Instance Methods
optimize()
click to toggle source
# File lib/jmespath/nodes/flatten.rb, line 23 def optimize self.class.new(@child.optimize) end
visit(value)
click to toggle source
# File lib/jmespath/nodes/flatten.rb, line 10 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