Module: CassandraORM::Model::Persist

Included in:
CassandraORM::Model
Defined in:
lib/cassandra-orm/model/persist.rb

Instance Method Summary collapse

Instance Method Details

#destroy(options = {}) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/cassandra-orm/model/persist.rb', line 16

def destroy options = {}
  @errors.clear
  return false if send_callback(:before_destroy) == false
  hash = primary_key_hash
  keys, values = hash.keys, hash.values
  conditions = options.delete(:if) || {}
  cql = cql_for_delete keys, conditions.keys
  stmt = session.prepare cql
  values += conditions.values
  row = execute('destroy', stmt, arguments: values).first
  if conditions.empty? || row['[applied]']
    @persisted = nil
    true
  else
    append_error :'[primarykey]', :conditions
  end
end

#destroy!(options = {}) ⇒ Object



34
35
36
37
38
# File 'lib/cassandra-orm/model/persist.rb', line 34

def destroy! options = {}
  result = destroy options
  fail DestroyFailure unless result
  result
end

#save(options = {}) ⇒ Object



6
7
8
# File 'lib/cassandra-orm/model/persist.rb', line 6

def save options = {}
  new? || options[:exclusive] ? _create(options) : _update(options)
end

#save!(options = {}) ⇒ Object



10
11
12
13
14
# File 'lib/cassandra-orm/model/persist.rb', line 10

def save! options = {}
  result = save options
  fail SaveFailure unless result
  result
end