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.
420 421 422 423 424 |
# File 'lib/hotdog/expression/semantics.rb', line 420 def initialize(query, values=[], ={}) @query = query @values = values @fallback = [:fallback] end |
Instance Attribute Details
#query ⇒ Object (readonly)
Returns the value of attribute query.
425 426 427 |
# File 'lib/hotdog/expression/semantics.rb', line 425 def query @query end |
#values ⇒ Object (readonly)
Returns the value of attribute values.
426 427 428 |
# File 'lib/hotdog/expression/semantics.rb', line 426 def values @values end |
Instance Method Details
#dump(options = {}) ⇒ Object
437 438 439 440 441 |
# File 'lib/hotdog/expression/semantics.rb', line 437 def dump(={}) data = {query: @query, values: @values} data[:fallback] = @fallback.dump() if @fallback data end |
#evaluate(environment, options = {}) ⇒ Object
428 429 430 431 432 433 434 435 |
# File 'lib/hotdog/expression/semantics.rb', line 428 def evaluate(environment, ={}) values = environment.execute(@query, @values).map { |row| row.first } if values.empty? and @fallback @fallback.evaluate(environment, ) else values end end |