Module: Redistry::List::ClassMethods
- Defined in:
- lib/redistry/list.rb
Instance Method Summary collapse
Instance Method Details
#has_list(name, options = {}) ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/redistry/list.rb', line 12 def has_list(name, = {}) klass = .delete(:class) || self raise("The class `#{klass.name}` must have an unique `id` to use `has_list`") unless klass.instance_methods.include?(:id) define_method name do return instance_variable_get("@_#{name}_has_list") if instance_variable_get("@_#{name}_has_list") instance_variable_set("@_#{name}_has_list", CollectionProxy.new(klass, "#{name}-#{id}", )) end end |
#list(name, options = {}) ⇒ Object
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/redistry/list.rb', line 23 def list(name, = {}) klass = .delete(:class) || self instance_variable_set("@_#{name}_list".to_sym, CollectionProxy.new(klass, name, )) class_eval <<-EOF def self.#{name} @_#{name}_list end EOF end |