module Enumerize::Base::ClassMethods

Public Instance Methods

enumerize(name, options={}) click to toggle source
# File lib/enumerize/base.rb, line 15
      def enumerize(name, options={})
        attr = Attribute.new(self, name, options)
        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() click to toggle source
# File lib/enumerize/base.rb, line 30
def enumerized_attributes
  @enumerized_attributes ||= AttributeMap.new
end

Private Instance Methods

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