class DatastaxRails::Cql::Insert

CQL generation for INSERT

Public Class Methods

new(klass) click to toggle source
Calls superclass method DatastaxRails::Cql::Base::new
# File lib/datastax_rails/cql/insert.rb, line 5
def initialize(klass)
  @klass = klass
  @ttl = nil
  @timestamp = nil
  @columns = {}
  super
end

Public Instance Methods

columns(columns) click to toggle source
# File lib/datastax_rails/cql/insert.rb, line 13
def columns(columns)
  @columns.merge!(columns)
  self
end
timestamp(timestamp) click to toggle source
# File lib/datastax_rails/cql/insert.rb, line 23
def timestamp(timestamp)
  @timestamp = timestamp
  self
end
to_cql() click to toggle source
# File lib/datastax_rails/cql/insert.rb, line 28
def to_cql
  keys = []
  @columns.each do |k, v|
    keys << k.to_s
    @values << v
  end
  stmt =  "INSERT INTO #{@klass.column_family} (#{keys.join(',')}) "
  stmt << "VALUES (#{('?' * keys.size).split(//).join(',')}) "
  if @ttl || @timestamp
    stmt << 'USING '
    stmt << "TTL #{@ttl} " if @ttl
    stmt << 'AND ' if @ttl && @timestamp
    stmt << "TIMESTAMP #{@timestamp} " if @timestamp
  end
  stmt.force_encoding('UTF-8')
end
ttl(ttl) click to toggle source
# File lib/datastax_rails/cql/insert.rb, line 18
def ttl(ttl)
  @ttl = ttl
  self
end