module Quandl::Cassandra::Base::Persistence

Attributes

new_record[RW]

Public Instance Methods

delete() click to toggle source
# File lib/quandl/cassandra/base/persistence.rb, line 59
def delete
  return false if new_record?
  self.class.delete(id)
end
destroy() click to toggle source
# File lib/quandl/cassandra/base/persistence.rb, line 52
def destroy
  return false if new_record?
  run_callbacks :destroy do
    self.class.delete(id)
  end
end
new_record=(value) click to toggle source
# File lib/quandl/cassandra/base/persistence.rb, line 83
def new_record=(value)
  @new_record = (value == true)
end
new_record?() click to toggle source
# File lib/quandl/cassandra/base/persistence.rb, line 74
def new_record?
  new_record
end
save() click to toggle source
# File lib/quandl/cassandra/base/persistence.rb, line 36
def save
  return false if self.class.autosave_changes && !primary_key?
  run_callbacks :save do
    touch
    save_changes! if self.class.autosave_changes == true
    cycle_changes!
    self.new_record = false
    true
  end
end
save!() click to toggle source
# File lib/quandl/cassandra/base/persistence.rb, line 32
def save!
  save
end
touch() click to toggle source
# File lib/quandl/cassandra/base/persistence.rb, line 47
def touch
  self.created_at = Time.now if respond_to?(:created_at=) && created_at.blank?
  self.updated_at = Time.now if respond_to?(:updated_at=)
end
update_attributes(values) click to toggle source
# File lib/quandl/cassandra/base/persistence.rb, line 64
def update_attributes(values)
  values = self.class.sanitize_attributes(values)
  # add primary key parts to values
  self.class.primary_key.each do |attribute|
    values[attribute.to_s] = sanitized_attribute(attribute) unless values.has_key?(attribute.to_s)
  end
  # update
  self.class.execute("INSERT INTO #{self.class.table_name} (#{values.keys.join(', ')}) VALUES (#{values.values.join(', ')})")
end

Private Instance Methods

reload_attributes() click to toggle source
# File lib/quandl/cassandra/base/persistence.rb, line 89
def reload_attributes
  self.attributes = self.class.where(primary_key_attributes).limit(1).to_h.first
end
save_changes!() click to toggle source
# File lib/quandl/cassandra/base/persistence.rb, line 93
def save_changes!
  attrs = {}
  changes.each{|k,v| attrs[k] = v[1] }
  update_attributes(attrs)
end