module ActiveRedis::Persistence

Public Class Methods

included(base) click to toggle source
# File lib/active_redis/persistence.rb, line 4
def self.included(base)
  base.extend ClassMethods
end
new(attrs = {}) click to toggle source
# File lib/active_redis/persistence.rb, line 8
def initialize(attrs = {})
  self.attributes = attrs
end

Public Instance Methods

clear_expire() click to toggle source
# File lib/active_redis/persistence.rb, line 40
def clear_expire
  expire -1
end
destroy() click to toggle source
# File lib/active_redis/persistence.rb, line 16
def destroy
  ActiveRedis.connection.destroy self.class, self.id
end
expire(seconds) click to toggle source
# File lib/active_redis/persistence.rb, line 36
def expire(seconds)
  ActiveRedis.connection.expire_record self.class, self.id, seconds
end
reload() click to toggle source
# File lib/active_redis/persistence.rb, line 25
def reload
  if self.class.respond_to? :associations
    self.class.associations.each { |key, assoc| assoc.reload(self) }
  end
  true
end
save() click to toggle source
# File lib/active_redis/persistence.rb, line 12
def save
  ActiveRedis.connection.save_table self.class, prepare_hash
end
touch() click to toggle source
# File lib/active_redis/persistence.rb, line 32
def touch
  save
end
update(attrs = {}) click to toggle source
# File lib/active_redis/persistence.rb, line 20
def update(attrs = {})
  self.attributes = attrs
  self.save
end

Private Instance Methods

fill_attributes() click to toggle source
# File lib/active_redis/persistence.rb, line 46
def fill_attributes
  self.id         ||= ActiveRedis.connection.next_id(self.class)
  self.created_at ||= Time.now
  self.updated_at   = Time.now
end
prepare_hash() click to toggle source
# File lib/active_redis/persistence.rb, line 52
def prepare_hash
  fill_attributes
  self.class.attributes_list.inject({}) do |hash, attribute|
    hash[attribute.to_sym] = self.instance_variable_get("@#{attribute}"); hash
  end
end