Module: Enumerize::Base::ClassMethods
- Defined in:
- lib/enumerize/base.rb
Instance Method Summary collapse
- #enumerize(name, options = {}) ⇒ Object
- #enumerized_attributes ⇒ Object
- #inherited_with_enumerized(subclass) ⇒ Object
Instance Method Details
#enumerize(name, options = {}) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/enumerize/base.rb', line 20 def enumerize(name, ={}) attr = Attribute.new(self, name, ) enumerized_attributes << attr unless methods.include?(attr.name) _enumerize_module._class_methods.module_eval <<-RUBY, __FILE__, __LINE__ + 1 def #{attr.name} enumerized_attributes[:#{attr.name}] end RUBY end attr.define_methods!(_enumerize_module) end |
#enumerized_attributes ⇒ Object
35 36 37 |
# File 'lib/enumerize/base.rb', line 35 def enumerized_attributes @enumerized_attributes ||= AttributeMap.new end |
#inherited_with_enumerized(subclass) ⇒ Object
39 40 41 42 43 44 |
# File 'lib/enumerize/base.rb', line 39 def inherited_with_enumerized(subclass) enumerized_attributes.add_dependant subclass.enumerized_attributes if respond_to?(:inherited_without_enumerized, true) inherited_without_enumerized subclass end end |