class JMESPath::Nodes::Pipe
Attributes
left[R]
right[R]
Public Class Methods
new(left, right)
click to toggle source
# File lib/jmespath/nodes/subexpression.rb, line 5 def initialize(left, right) @left = left @right = right end
Public Instance Methods
optimize()
click to toggle source
# File lib/jmespath/nodes/subexpression.rb, line 14 def optimize Chain.new(flatten).optimize end
visit(value)
click to toggle source
# File lib/jmespath/nodes/subexpression.rb, line 10 def visit(value) @right.visit(@left.visit(value)) end
Protected Instance Methods
flatten()
click to toggle source
# File lib/jmespath/nodes/subexpression.rb, line 22 def flatten nodes = [@left, @right] until nodes.none? { |node| node.is_a?(Subexpression) } nodes = nodes.flat_map do |node| if node.is_a?(Subexpression) [node.left, node.right] else [node] end end end nodes.map(&:optimize) end