Module: EPluribusEnum::RepresentsEnum::ClassMethods

Defined in:
lib/e_pluribus_enum/represents_enum.rb

Instance Method Summary collapse

Instance Method Details

#represents_enum(field, enum) ⇒ Object

you need the field as an integer in the database, but it doesn’t need to be attr_accessible



9
10
11
12
13
14
15
16
17
18
# File 'lib/e_pluribus_enum/represents_enum.rb', line 9

def represents_enum(field, enum)
  self.class_eval <<-METHOD, __FILE__, __LINE__ + 1
    def #{field}
      #{enum.name}.key_for_value read_attribute(:#{field})
    end
    def #{field}=(value)
      write_attribute :#{field}, #{enum.name}[value.to_s.to_sym]
    end
  METHOD
end