class JMESPath::Nodes::Chain
Public Class Methods
new(children)
click to toggle source
# File lib/jmespath/nodes/subexpression.rb, line 38 def initialize(children) @children = children end
Public Instance Methods
optimize()
click to toggle source
# File lib/jmespath/nodes/subexpression.rb, line 48 def optimize children = @children.map(&:optimize) index = 0 while index < children.size - 1 if children[index].chains_with?(children[index + 1]) children[index] = children[index].chain(children[index + 1]) children.delete_at(index + 1) else index += 1 end end Chain.new(children) end
visit(value)
click to toggle source
# File lib/jmespath/nodes/subexpression.rb, line 42 def visit(value) @children.reduce(value) do |v, child| child.visit(v) end end