Module: Enumerated::ClassMethods

Defined in:
lib/enumerated.rb

Instance Method Summary collapse

Instance Method Details

#enumerated(attr, enums, opts = {}) ⇒ Object

Declares that given attribute is enumerated.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/enumerated.rb', line 13

def enumerated(attr, enums, opts = {})
  def opts.disabled?(sym)
    include?(sym) && !self[sym]
  end

  class_eval do
    @definitions ||= {}
    @definitions[attr.to_sym] = Definition.new(self.to_s, attr.to_s, enums)
  end

  define_helper_methods(attr, opts)
  define_label_methods(attr)
  define_bang_methods(attr, enums)
  apply_validations(attr, enums, opts)
end