Skip to content

Instantly share code, notes, and snippets.

@Bajena
Created June 24, 2016 14:00
Show Gist options
  • Save Bajena/afa01224f87ccbb201c60037987f5911 to your computer and use it in GitHub Desktop.
Save Bajena/afa01224f87ccbb201c60037987f5911 to your computer and use it in GitHub Desktop.
Patch for paper_trail initializer that fixes attributes enumerized with enumerize gem
module PaperTrail
module AttributeSerializers
class CastAttributeSerializer
alias_method :old_serialize, :serialize
alias_method :old_deserialize, :deserialize
def serialize(attr, val)
# Special case for enumerize gem
return defined_enumerize_enums[attr].find_value(val).to_s if defined_enumerize_enums[attr]
old_serialize(attr, val)
end
def deserialize(attr, val)
# Special case for enumerize gem
return defined_enumerize_enums[attr].find_value(val) if defined_enumerize_enums[attr]
old_deserialize(attr, val)
end
private
def defined_enumerize_enums
@enumerized_attributes ||=
if defined?(Enumerize) && @klass.respond_to?(:enumerized_attributes)
@klass.enumerized_attributes
else
{}
end
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment