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
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/enumerize/base.rb', line 21 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
36 37 38 |
# File 'lib/enumerize/base.rb', line 36 def enumerized_attributes @enumerized_attributes ||= AttributeMap.new end |
#inherited_with_enumerized(subclass) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/enumerize/base.rb', line 40 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 |