module Enumerize::Base::ClassMethods

Public Instance Methods

enumerize(name, options={}) click to toggle source
# File lib/enumerize/base.rb, line 21
      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 36
def enumerized_attributes
  @enumerized_attributes ||= AttributeMap.new
end
inherited_with_enumerized(subclass) click to toggle source
# 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

Private Instance Methods

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