# File lib/enumerize/base.rb, line 14 def enumerize(name, options={}) attr = Attribute.new(self, name, options) enumerized_attributes << attr unless methods.include?(attr.name) _enumerize_module._class_methods.module_eval " def #{attr.name} enumerized_attributes[:#{attr.name}] end ", __FILE__, __LINE__ + 1 end attr.define_methods!(_enumerize_module) end
# File lib/enumerize/base.rb, line 29 def enumerized_attributes @enumerized_attributes ||= AttributeMap.new end
# File lib/enumerize/base.rb, line 33 def inherited(subclass) enumerized_attributes.add_dependant subclass.enumerized_attributes super end
# File lib/enumerize/base.rb, line 40 def _enumerize_module @_enumerize_module ||= begin mod = Module.new include mod mod end end