Class: Synvert::Core::NodeQuery::Compiler::DynamicAttribute
- Inherits:
-
Object
- Object
- Synvert::Core::NodeQuery::Compiler::DynamicAttribute
- Includes:
- Comparable
- Defined in:
- lib/synvert/core/node_query/compiler/dynamic_attribute.rb
Overview
DynamicAttribute represents a ruby dynamic attribute. e.g. code is { a: a }
, query is '.hash > .pair[key={{value}}]'
, {{value}}
is the dynamic attribute.
Constant Summary
Constants included from Comparable
Comparable::ARRAY_VALID_OPERATORS, Comparable::NUMBER_VALID_OPERATORS, Comparable::REGEXP_VALID_OPERATORS, Comparable::SIMPLE_VALID_OPERATORS, Comparable::STRING_VALID_OPERATORS
Instance Attribute Summary collapse
-
#base_node ⇒ Object
Returns the value of attribute base_node.
Instance Method Summary collapse
-
#actual_value(node) ⇒ String
Get the actual value of a node.
-
#expected_value ⇒ String
Get the expected value.
-
#initialize(value:) ⇒ DynamicAttribute
constructor
Initialize a DynamicAttribute.
- #to_s ⇒ Object
-
#valid_operators ⇒ Object
Get valid operators.
Methods included from Comparable
Constructor Details
#initialize(value:) ⇒ DynamicAttribute
Initialize a DynamicAttribute.
14 15 16 |
# File 'lib/synvert/core/node_query/compiler/dynamic_attribute.rb', line 14 def initialize(value:) @value = value end |
Instance Attribute Details
#base_node ⇒ Object
Returns the value of attribute base_node.
10 11 12 |
# File 'lib/synvert/core/node_query/compiler/dynamic_attribute.rb', line 10 def base_node @base_node end |
Instance Method Details
#actual_value(node) ⇒ String
Get the actual value of a node.
22 23 24 25 26 27 28 |
# File 'lib/synvert/core/node_query/compiler/dynamic_attribute.rb', line 22 def actual_value(node) if node.is_a?(::Parser::AST::Node) node.to_source else node end end |
#expected_value ⇒ String
Get the expected value.
33 34 35 36 37 38 39 40 |
# File 'lib/synvert/core/node_query/compiler/dynamic_attribute.rb', line 33 def expected_value node = base_node.child_node_by_name(@value) if node.is_a?(::Parser::AST::Node) node.to_source else node end end |
#to_s ⇒ Object
47 48 49 |
# File 'lib/synvert/core/node_query/compiler/dynamic_attribute.rb', line 47 def to_s "{{#{@value}}}" end |
#valid_operators ⇒ Object
Get valid operators.
43 44 45 |
# File 'lib/synvert/core/node_query/compiler/dynamic_attribute.rb', line 43 def valid_operators SIMPLE_VALID_OPERATORS end |