module DatastaxRails::Cql::Transactions

CQL generation for appending transactions to other queries

Public Class Methods

new(*) click to toggle source
Calls superclass method
# File lib/datastax_rails/cql/transactions.rb, line 11
def initialize(*)
  @if_conditions = {}
  @if_exists = nil
  @if_not_exists = nil
  super
end

Public Instance Methods

if_exists() click to toggle source
# File lib/datastax_rails/cql/transactions.rb, line 23
def if_exists
  @if_exists = true
  self
end
if_not_exists() click to toggle source
# File lib/datastax_rails/cql/transactions.rb, line 28
def if_not_exists
  @if_not_exists = true
  self
end
iff(columns) click to toggle source
# File lib/datastax_rails/cql/transactions.rb, line 18
def iff(columns)
  @if_conditions = columns
  self
end
to_cql_with_transactions() click to toggle source
# File lib/datastax_rails/cql/transactions.rb, line 33
def to_cql_with_transactions
  stmt = to_cql_without_transactions
  if @if_not_exists
    stmt << ' IF NOT EXISTS'
  elsif @if_exists
    stmt << ' IF EXISTS'
  elsif @if_conditions.present?
    conditions = []
    @if_conditions.each do |k, v|
      conditions << "\"#{k}\" = ?"
      @values << v
    end
    stmt << " IF #{conditions.join(' AND ')}"
  end
  stmt
end