Module: RedisModel::ClassAttribute::ClassMethods
- Defined in:
- lib/redis_model/class_attribute.rb
Instance Method Summary collapse
- #define_redis_class_attribute_method(attribute_name, new_klass) ⇒ Object
-
#redis_class_attribute(attribute_name, type) ⇒ Object
Public: Defines a RedisModel class attribute with given data type and name.
- #redis_class_attribute_classes ⇒ Object
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_classes ⇒ Object
29 30 31 |
# File 'lib/redis_model/class_attribute.rb', line 29 def redis_class_attribute_classes @redis_class_attribute_classes ||= Hash.new end |