module RedisModel::ClassAttribute::ClassMethods

Public Instance Methods

define_redis_class_attribute_method(attribute_name, new_klass) click to toggle source
# File lib/redis_model/class_attribute.rb, line 33
def define_redis_class_attribute_method(attribute_name, new_klass)
  singleton_class.class_eval do
    define_method(attribute_name) do
      new_klass.new.to_value
    end

    define_method("#{attribute_name}=") do |value|
      new_klass.new.set(value)
    end
  end
end
redis_class_attribute(attribute_name, type) click to toggle source

Public: Defines a RedisModel class attribute with given data type and name.

# File lib/redis_model/class_attribute.rb, line 20
def redis_class_attribute(attribute_name, type)
  new_klass = Class.new(RedisModel::Base) do
    data_type type
  end

  const_set(attribute_name.to_s.camelize, new_klass)
  define_redis_class_attribute_method(attribute_name, new_klass)
end
redis_class_attribute_classes() click to toggle source
# File lib/redis_model/class_attribute.rb, line 29
def redis_class_attribute_classes
  @redis_class_attribute_classes ||= Hash.new
end