Sha256: 0897b51d9b4956623fde3c404be066a751ca0eefd5d82243b894c281800ce278
Contents?: true
Size: 1.03 KB
Versions: 16
Compression:
Stored size: 1.03 KB
Contents
module CassandraCQL class Statement 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 end end module CassandraObject module Connection extend ActiveSupport::Concern module ClassMethods def cql @@cql ||= CassandraCQL::Database.new(config.servers, {keyspace: config.keyspace}, config.thrift_options) end def execute_cql(cql_string, *bind_vars) statement = CassandraCQL::Statement.sanitize(cql_string, bind_vars).force_encoding(Encoding::UTF_8) ActiveSupport::Notifications.instrument("cql.cassandra_object", cql: statement) do cql.execute statement end end end end end
Version data entries
16 entries across 16 versions & 2 rubygems