mirror of
https://github.com/paper-trail-gem/paper_trail.git
synced 2022-11-09 11:33:19 -05:00
4ef8a0bfed
- Introduces a uniform error class, UnsupportedColumnType - Simplifies the built-in serializers (paper_trail/serializers) Since 9.2.0, when `object_changes_adapter` was introduced, if someone must use a text column, and still wants to use these queries, they must write an `object_changes_adapter`. AFAIK, no one has ever done this. The only public adapter I know of, paper_trail-hashdiff, only supports json/b columns. It's also theoretically possible that, after `where_object_changes` dropped support for text columns, someone wrote a custom serializer (see `PaperTrail.serializer=`). AFAIK, no one has done that either. Such a technique was never documented under [6.b. Custom Serializer](https://github.com/paper-trail-gem/paper_trail#6b-custom-serializer)
33 lines
717 B
Ruby
33 lines
717 B
Ruby
# frozen_string_literal: true
|
|
|
|
module PaperTrail
|
|
# Generic PaperTrail exception.
|
|
# @api public
|
|
class Error < StandardError
|
|
end
|
|
|
|
# An unexpected option, perhaps a typo, was passed to a public API method.
|
|
# @api public
|
|
class InvalidOption < Error
|
|
end
|
|
|
|
# The application's database schema is not supported.
|
|
# @api public
|
|
class UnsupportedSchema < Error
|
|
end
|
|
|
|
# The application's database column type is not supported.
|
|
# @api public
|
|
class UnsupportedColumnType < UnsupportedSchema
|
|
def initialize(method:, expected:, actual:)
|
|
super(
|
|
format(
|
|
"%s expected %s column, got %s",
|
|
method,
|
|
expected,
|
|
actual
|
|
)
|
|
)
|
|
end
|
|
end
|
|
end
|