Module: Ciql::Sanitize

Defined in:
lib/ciql/sanitize.rb

Defined Under Namespace

Classes: InvalidBindVariableError, UnescapableObjectError

Class Method Summary collapse

Class Method Details

.sanitize(statement, *variables) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/ciql/sanitize.rb', line 10

def self.sanitize(statement, *variables)
  variables = variables.dup
  expected = statement.count('?')

  if expected != variables.size
    raise InvalidBindVariableError,
      "Wrong number of bound variables "\
      "(statement expected #{expected}, "\
      "was #{variables.size})"
  end

  statement.gsub(/\?/) { cast(variables.shift) }
end