Module: Model::Enum::ClassMethods
- Defined in:
- app/models/concerns/model/enum.rb
Instance Method Summary collapse
Instance Method Details
#enum(attr_name, enum_class_name) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'app/models/concerns/model/enum.rb', line 6 def enum(attr_name, enum_class_name) klass = enum_class_name.constantize keys = klass.send(attr_name.to_s.pluralize).keys keys.each do |key| define_method "#{key}?" do send(attr_name) == key end end validates attr_name, inclusion: { in: keys } # allow nil values define_method "formatted_#{attr_name}" do send(attr_name).titleize end end |