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