class Qdsl::Call
Attributes
name[R]
source[R]
Public Class Methods
new(source, function_name, parameters, name = nil)
click to toggle source
# File lib/call.rb, line 5 def initialize(source, function_name, parameters, name = nil) @source = source @function_name = function_name @parameters = parameters @name = name ? name.to_s : nil end
Public Instance Methods
as(name)
click to toggle source
# File lib/call.rb, line 12 def as(name) Call.new(@source, @function_name, @parameters, name) end
exists?()
click to toggle source
# File lib/call.rb, line 16 def exists? @parameters.all? { |x| x.exists? } end
render_sql(context, id)
click to toggle source
# File lib/call.rb, line 20 def render_sql(context, id) parameter_results = @parameters.collect { |x| x.render_sql(context, id) } query_parameters = parameter_results.collect(&:parameters).inject({}) { |acc, x| acc.merge!(x) } call = "#{@function_name}(#{parameter_results.collect(&:sql).join(', ')})" SimpleRenderResult.new(@name ? "#{call} AS #{@name}" : call, query_parameters) end