Class: CassandraCQL::Statement

Inherits:
Object
  • Object
show all
Defined in:
lib/cassandra_object/connection.rb

Class Method Summary collapse

Class Method Details

.sanitize(statement, bind_vars = []) ⇒ Object

Raises:

  • (Error::InvalidBindVariable)


3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/cassandra_object/connection.rb', line 3

def self.sanitize(statement, bind_vars=[])
  return statement if bind_vars.empty?

  bind_vars = bind_vars.dup
  expected_bind_vars = statement.count("?")

  raise Error::InvalidBindVariable, "Wrong number of bound variables (statement expected #{expected_bind_vars}, was #{bind_vars.size})" if expected_bind_vars != bind_vars.size

  statement.gsub(/\?/) do
    quote(cast_to_cql(bind_vars.shift))
  end
end