1
0
Fork 0
mirror of https://github.com/paper-trail-gem/paper_trail.git synced 2022-11-09 11:33:19 -05:00
paper-trail-gem--paper_trail/lib/paper_trail/errors.rb
Jared Beck 4ef8a0bfed Queries: object_changes: Simplify error instantiation
- 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)
2021-04-06 12:13:04 -04:00

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