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.
388 389 390 391 392 |
# File 'lib/hotdog/expression/semantics.rb', line 388 def initialize(query, values=[], ={}) @query = query @values = values @fallback = [:fallback] end |
Instance Attribute Details
#query ⇒ Object (readonly)
Returns the value of attribute query.
393 394 395 |
# File 'lib/hotdog/expression/semantics.rb', line 393 def query @query end |
#values ⇒ Object (readonly)
Returns the value of attribute values.
394 395 396 |
# File 'lib/hotdog/expression/semantics.rb', line 394 def values @values end |
Instance Method Details
#dump(options = {}) ⇒ Object
405 406 407 408 409 |
# File 'lib/hotdog/expression/semantics.rb', line 405 def dump(={}) data = {query: @query, values: @values} data[:fallback] = @fallback.dump() if @fallback data end |
#evaluate(environment, options = {}) ⇒ Object
396 397 398 399 400 401 402 403 |
# File 'lib/hotdog/expression/semantics.rb', line 396 def evaluate(environment, ={}) values = environment.execute(@query, @values).map { |row| row.first } if values.empty? and @fallback @fallback.evaluate(environment, ) else values end end |