class Dossier::Query

Attributes

report[R]
string[R]

Public Class Methods

new(report) click to toggle source
# File lib/dossier/query.rb, line 6
def initialize(report)
  @report = report
  @string = report.sql.dup
end

Public Instance Methods

to_s() click to toggle source
# File lib/dossier/query.rb, line 11
def to_s
  compile
end

Private Instance Methods

compile() click to toggle source
# File lib/dossier/query.rb, line 17
def compile
  string.gsub(/\w*(?<!:):(?!:)[a-z]{1}\w*/) { |match| escape(report.public_send(match[1..-1])) }
end
escape(value) click to toggle source
# File lib/dossier/query.rb, line 21
def escape(value)
  if value.respond_to?(:map)
    "(#{value.map { |v| escape(v) }.join(', ')})"
  else
    report.dossier_client.escape(value)
  end
end