module Enumerize::Base::ClassMethods

Public Instance Methods

enumerize(name, options={}) click to toggle source
# 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
enumerized_attributes() click to toggle source
# File lib/enumerize/base.rb, line 29
def enumerized_attributes
  @enumerized_attributes ||= AttributeMap.new
end
inherited(subclass) click to toggle source
Calls superclass method
# File lib/enumerize/base.rb, line 33
def inherited(subclass)
  enumerized_attributes.add_dependant subclass.enumerized_attributes
  super
end

Private Instance Methods

_enumerize_module() click to toggle source
# File lib/enumerize/base.rb, line 40
def _enumerize_module
  @_enumerize_module ||= begin
    mod = Module.new
    include mod
    mod
  end
end