class Qdsl::FormatCall
Attributes
name[R]
source[R]
Public Class Methods
new(source, format, parameters, name = nil)
click to toggle source
# File lib/format_call.rb, line 5 def initialize(source, format, parameters, name = nil) @source = source @format = format @parameters = parameters @name = name.to_s end
Public Instance Methods
as(name)
click to toggle source
# File lib/format_call.rb, line 12 def as(name) FormatCall.new(@source, @format, @parameters, name) end
exists?()
click to toggle source
# File lib/format_call.rb, line 16 def exists? @parameters.all? { |x| x.exists? } end
render_sql(context, id)
click to toggle source
# File lib/format_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 = do_format(@format, parameter_results.collect(&:sql)) SimpleRenderResult.new(@name ? "#{call} AS #{@name}" : call, query_parameters) end
Private Instance Methods
do_format(format, parameters)
click to toggle source
# File lib/format_call.rb, line 29 def do_format(format, parameters) format.gsub /%(\d+)/ do |m, x| index = Integer(Regexp.last_match[1]) - 1 parameters[index] end end