Module: EnumeratedAttr::Glue

Defined in:
lib/enumerated_attr.rb

Instance Method Summary collapse

Instance Method Details

#enumerated_attr(attribute, enumeration, options = {}) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/enumerated_attr.rb', line 25

def enumerated_attr(attribute, enumeration, options = {})
  enum = Attribute.new(self, attribute, enumeration)

  define_method "human_#{attribute}_value" do |value = false|
    enum.human(value || self.send(attribute))
  end

  define_singleton_method "#{attribute}_enumeration" do
    enum.enumeration
  end

  if options[:validates]
    validates attribute, :presence => true, :inclusion => enumeration
  end
end