Class: Hotdog::Expression::QueryExpressionNode
- Inherits:
-
ExpressionNode
- Object
- ExpressionNode
- Hotdog::Expression::QueryExpressionNode
- Defined in:
- lib/hotdog/expression/semantics.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#query ⇒ Object
readonly
Returns the value of attribute query.
-
#values ⇒ Object
readonly
Returns the value of attribute values.
Instance Method Summary collapse
- #dump(options = {}) ⇒ Object
- #evaluate(environment, options = {}) ⇒ Object
-
#initialize(query, values = [], options = {}) ⇒ QueryExpressionNode
constructor
A new instance of QueryExpressionNode.
Methods inherited from ExpressionNode
Constructor Details
#initialize(query, values = [], options = {}) ⇒ QueryExpressionNode
Returns a new instance of QueryExpressionNode.
471 472 473 474 475 |
# File 'lib/hotdog/expression/semantics.rb', line 471 def initialize(query, values=[], ={}) @query = query @values = values @options = end |
Instance Attribute Details
#query ⇒ Object (readonly)
Returns the value of attribute query.
476 477 478 |
# File 'lib/hotdog/expression/semantics.rb', line 476 def query @query end |
#values ⇒ Object (readonly)
Returns the value of attribute values.
477 478 479 |
# File 'lib/hotdog/expression/semantics.rb', line 477 def values @values end |
Instance Method Details
#dump(options = {}) ⇒ Object
488 489 490 491 492 |
# File 'lib/hotdog/expression/semantics.rb', line 488 def dump(={}) data = {query: @query, values: @values} data[:fallback] = @options[:fallback].dump() if @options[:fallback] data end |
#evaluate(environment, options = {}) ⇒ Object
479 480 481 482 483 484 485 486 |
# File 'lib/hotdog/expression/semantics.rb', line 479 def evaluate(environment, ={}) values = environment.execute(@query, @values).map { |row| row.first } if values.empty? and @options[:fallback] @options[:fallback].evaluate(environment, ) else values end end |