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