Module: Enumerize::Base::ClassMethods

Defined in:
lib/enumerize/base.rb

Instance Method Summary collapse

Instance Method Details

#enumerize(name, options = {}) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/enumerize/base.rb', line 12

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}\n        enumerized_attributes[:\#{attr.name}]\n      end\n    RUBY\n  end\n\n  attr.define_methods!(_enumerize_module)\nend\n", __FILE__, __LINE__ + 1

#enumerized_attributesObject



27
28
29
# File 'lib/enumerize/base.rb', line 27

def enumerized_attributes
  @enumerized_attributes ||= AttributeMap.new
end

#inherited(subclass) ⇒ Object



31
32
33
34
# File 'lib/enumerize/base.rb', line 31

def inherited(subclass)
  enumerized_attributes.add_dependant subclass.enumerized_attributes
  super
end