module RedisModel::Attribute

Public: Implementations for instance-level Redis attributes for specified class.

Example:

class User < ActiveRecord::Base
  includes RedisModel::Attribute

  redis_model_attribute :sign_in_count, :counter
end

user = User.find(1)
user.sign_in_count.incr
user.sign_in_count.to_i # Now it is set to 1

Public Class Methods

included(klass) click to toggle source
# File lib/redis_model/attribute.rb, line 120
def self.included(klass)
  klass.extend ClassMethods

  if klass.respond_to?(:after_destroy)
    klass.after_destroy :clear_redis_model_attributes
  end
end

Public Instance Methods

clear_redis_model_attributes() click to toggle source

Public: Clears attributes defined by RedisModel.

Returns nothing.

# File lib/redis_model/attribute.rb, line 131
def clear_redis_model_attributes
  RedisModel::Schema.collection.each do |klass, _|
    if klass < RedisModel::BelongedTo && Object.const_get(klass.to_s.deconstantize) >= self.class
      self.send(klass.to_s.demodulize.underscore).del
    end
  end
end