Module: RedisModel::ClassAttribute::ClassMethods

Defined in:
lib/redis_model/class_attribute.rb

Instance Method Summary collapse

Instance Method Details

#define_redis_class_attribute_method(attribute_name, new_klass) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
# 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) ⇒ Object

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



20
21
22
23
24
25
26
27
# 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_classesObject



29
30
31
# File 'lib/redis_model/class_attribute.rb', line 29

def redis_class_attribute_classes
  @redis_class_attribute_classes ||= Hash.new
end