module RubyEnum::ActiveModel::AttrEnum

Public Instance Methods

assign_attributes(new_attributes) click to toggle source
Calls superclass method
# File lib/ruby_enum/active_model.rb, line 8
def assign_attributes(new_attributes)
  if new_attributes
    enumeration_attrs = self.class.attr_enums

    new_attributes.each do |k, v|
      enum_attr = enumeration_attrs[k.to_sym]

      if enum_attr.present? && _is_not_enum?(v)
        enum_class_name = enum_attr[:class_name]
        enum_class = Object.const_get enum_class_name
        new_attributes[k] = enum_class.find_by_value(v)
      end
    end
  end

  super
end

Private Instance Methods

_is_not_enum?(value) click to toggle source
# File lib/ruby_enum/active_model.rb, line 28
def _is_not_enum?(value)
  !value.class.ancestors.include? RubyEnum
end