class Hotdog::Expression::QueryExpressionNode

Attributes

query[R]
values[R]

Public Class Methods

new(query, values=[], options={}) click to toggle source
# File lib/hotdog/expression/semantics.rb, line 471
def initialize(query, values=[], options={})
  @query = query
  @values = values
  @options = options
end

Public Instance Methods

dump(options={}) click to toggle source
# File lib/hotdog/expression/semantics.rb, line 488
def dump(options={})
  data = {query: @query, values: @values}
  data[:fallback] = @options[:fallback].dump(options) if @options[:fallback]
  data
end
evaluate(environment, options={}) click to toggle source
# File lib/hotdog/expression/semantics.rb, line 479
def evaluate(environment, options={})
  values = environment.execute(@query, @values).map { |row| row.first }
  if values.empty? and @options[:fallback]
    @options[:fallback].evaluate(environment, options)
  else
    values
  end
end