Class: NodeQuery::Compiler::Expression
- Inherits:
-
Object
- Object
- NodeQuery::Compiler::Expression
- Defined in:
- lib/node_query/compiler/expression.rb
Overview
Expression represents a node query expression.
Instance Method Summary collapse
-
#initialize(selector: nil, rest: nil) ⇒ Expression
constructor
Initialize a Expression.
-
#query_nodes(node, options = {}) ⇒ Array<Node>
Query nodes by the selector and the rest expression.
- #to_s ⇒ Object
Constructor Details
#initialize(selector: nil, rest: nil) ⇒ Expression
Initialize a Expression.
9 10 11 12 |
# File 'lib/node_query/compiler/expression.rb', line 9 def initialize(selector: nil, rest: nil) @selector = selector @rest = rest end |
Instance Method Details
#query_nodes(node, options = {}) ⇒ Array<Node>
Query nodes by the selector and the rest expression.
21 22 23 24 25 26 27 28 |
# File 'lib/node_query/compiler/expression.rb', line 21 def query_nodes(node, = {}) matching_nodes = @selector.query_nodes(node, ) return matching_nodes if @rest.nil? matching_nodes.flat_map do |matching_node| @rest.query_nodes(matching_node, ) end end |
#to_s ⇒ Object
30 31 32 33 34 35 |
# File 'lib/node_query/compiler/expression.rb', line 30 def to_s result = [] result << @selector.to_s if @selector result << @rest.to_s if @rest result.join(' ') end |