1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
# frozen_string_literal: true
module Enumerize
module MongoidSupport
def enumerize(name, options={})
super
_enumerize_module.dependent_eval do
if self < ::Mongoid::Document
include InstanceMethods
after_initialize :_set_default_value_for_enumerized_attributes
end
end
end
module InstanceMethods
def reload
reloaded = super
reloaded.class.enumerized_attributes.each do |attr|
reloaded.send("#{attr.name}=", reloaded[attr.name])
end
reloaded
end
private
def _set_default_value_for_enumerized_attribute(attr)
super
rescue Mongoid::Errors::AttributeNotLoaded
end
end
end
end
|