Module: GraphQL::InternalRepresentation::Visit
- Defined in:
- lib/graphql/internal_representation/visit.rb
Overview
Traverse a re-written query tree, calling handlers for each node
Class Method Summary collapse
-
.each_node(node) {|node| ... } ⇒ Object
Traverse a node in a rewritten query tree, visiting the node itself and each of its typed children.
- .visit_each_node(operations, handlers) ⇒ Object
Class Method Details
.each_node(node) {|node| ... } ⇒ Object
Traverse a node in a rewritten query tree, visiting the node itself and each of its typed children.
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/graphql/internal_representation/visit.rb', line 25 def each_node(node) yield(node) if node.typed_children.any? visit_block = Proc.new node.typed_children.each do |obj_type, children| children.each do |name, node| each_node(node, &visit_block) end end end end |
.visit_each_node(operations, handlers) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/graphql/internal_representation/visit.rb', line 7 def visit_each_node(operations, handlers) # Post-validation: make some assertions about the rewritten query tree operations.each do |op_name, op_node| # Yield each node to listeners which were attached by validators op_node.typed_children.each do |obj_type, children| children.each do |name, op_child_node| each_node(op_child_node) do |node| for h in handlers h.call(node) end end end end end end |