class DatastaxRails::Cql::Delete

Generates CQL to delete a record from Cassandra

Public Class Methods

new(klass, key) click to toggle source
Calls superclass method DatastaxRails::Cql::Transactions::new
# File lib/datastax_rails/cql/delete.rb, line 5
def initialize(klass, key)
  @klass = klass
  @key = key
  @timestamp = nil
  @columns = []
  super
end

Public Instance Methods

columns(columns) click to toggle source
# File lib/datastax_rails/cql/delete.rb, line 13
def columns(columns)
  @columns = columns
  self
end
timestamp(timestamp) click to toggle source
# File lib/datastax_rails/cql/delete.rb, line 18
def timestamp(timestamp)
  @timestamp = timestamp
  self
end
to_cql() click to toggle source
# File lib/datastax_rails/cql/delete.rb, line 23
def to_cql
  @values = []
  stmt = "DELETE #{@columns.join(',')} FROM #{@klass.column_family} "
  stmt << "AND TIMESTAMP #{@timestamp} " if @timestamp
  conditions = []

  @key.each do |col, val|
    conditions << "\"#{col}\" = ?"
    @values << val
  end

  stmt << "WHERE #{conditions.join(' AND ')}"

  stmt
end