class DatastaxRails::Cql::Update
CQL generation for UPDATE
Public Class Methods
new(klass, key)
click to toggle source
Calls superclass method
DatastaxRails::Cql::Transactions::new
# File lib/datastax_rails/cql/update.rb, line 5 def initialize(klass, key) @klass = klass @key = key @columns = {} super end
Public Instance Methods
columns(columns)
click to toggle source
# File lib/datastax_rails/cql/update.rb, line 12 def columns(columns) @columns.merge!(columns) self end
limit(limit)
click to toggle source
# File lib/datastax_rails/cql/update.rb, line 17 def limit(limit) @limit = limit self end
timestamp(timestamp)
click to toggle source
# File lib/datastax_rails/cql/update.rb, line 27 def timestamp(timestamp) @timestamp = timestamp self end
to_cql()
click to toggle source
# File lib/datastax_rails/cql/update.rb, line 32 def to_cql stmt = "update #{@klass.column_family} " if @ttl || @timestamp stmt << 'USING ' stmt << "TTL #{@ttl} " if @ttl stmt << 'AND ' if @ttl && @timestamp stmt << "TIMESTAMP #{@timestamp} " if @timestamp end unless @columns.empty? stmt << 'SET ' updates = [] @columns.each do |k, v| @values << v updates << "\"#{k}\" = ?" end stmt << updates.join(', ') end conditions = [] @key.each do |k, v| conditions << "\"#{k}\" = ?" @values << v end stmt << " WHERE #{conditions.join(' AND ')}" end
ttl(ttl)
click to toggle source
# File lib/datastax_rails/cql/update.rb, line 22 def ttl(ttl) @ttl = ttl self end