Class: NodeQuery
- Inherits:
-
Object
- Object
- NodeQuery
- Defined in:
- lib/node_query.rb,
lib/node_query/version.rb
Defined Under Namespace
Modules: Compiler Classes: Adapter, Helper, InvalidAdapterError, MethodNotSupported, NodeRules, ParserAdapter, PrismAdapter, SyntaxTreeAdapter
Constant Summary collapse
- VERSION =
"1.16.0"
Instance Method Summary collapse
-
#initialize(nql_or_ruls, adapter: :parser) ⇒ NodeQuery
constructor
Initialize a NodeQuery.
-
#match_node?(node) ⇒ Boolean
Check if the node matches the nql or rules.
-
#query_nodes(node, options = {}) ⇒ Array<Node>
Query matching nodes.
Constructor Details
#initialize(nql_or_ruls, adapter: :parser) ⇒ NodeQuery
Initialize a NodeQuery.
22 23 24 25 26 27 28 29 |
# File 'lib/node_query.rb', line 22 def initialize(nql_or_ruls, adapter: :parser) adapter_instance = get_adapter_instance(adapter) if nql_or_ruls.is_a?(String) @expression = NodeQueryParser.new(adapter: adapter_instance).parse(nql_or_ruls) else @rules = NodeRules.new(nql_or_ruls, adapter: adapter_instance) end end |
Instance Method Details
#match_node?(node) ⇒ Boolean
Check if the node matches the nql or rules.
51 52 53 54 55 56 57 58 59 |
# File 'lib/node_query.rb', line 51 def match_node?(node) if @expression @expression.match_node?(node) elsif @rules @rules.match_node?(node) else false end end |
#query_nodes(node, options = {}) ⇒ Array<Node>
Query matching nodes.
38 39 40 41 42 43 44 45 46 |
# File 'lib/node_query.rb', line 38 def query_nodes(node, = {}) if @expression @expression.query_nodes(node, ) elsif @rules @rules.query_nodes(node, ) else [] end end |