Class: PaperTrail::Queries::Versions::WhereObjectChanges Private
- Inherits:
-
Object
- Object
- PaperTrail::Queries::Versions::WhereObjectChanges
- Defined in:
- lib/paper_trail/queries/versions/where_object_changes.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
For public API documentation, see ‘where_object_changes` in `paper_trail/version_concern.rb`.
Instance Method Summary collapse
- #execute ⇒ Object private
-
#initialize(version_model_class, attributes) ⇒ WhereObjectChanges
constructor
private
-
version_model_class - The class that VersionConcern was mixed into.
-
Constructor Details
#initialize(version_model_class, attributes) ⇒ WhereObjectChanges
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
-
version_model_class - The class that VersionConcern was mixed into.
-
attributes - A ‘Hash` of attributes and values. See the public API documentation for details.
14 15 16 17 18 19 20 21 22 |
# File 'lib/paper_trail/queries/versions/where_object_changes.rb', line 14 def initialize(version_model_class, attributes) @version_model_class = version_model_class # Currently, this `deep_dup` is necessary because the `jsonb` branch # modifies `@attributes`, and that would be a nasty surprise for # consumers of this class. # TODO: Stop modifying `@attributes`, then remove `deep_dup`. @attributes = attributes.deep_dup end |
Instance Method Details
#execute ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/paper_trail/queries/versions/where_object_changes.rb', line 25 def execute if PaperTrail.config.object_changes_adapter.respond_to?(:where_object_changes) return PaperTrail.config.object_changes_adapter.where_object_changes( @version_model_class, @attributes ) end column_type = @version_model_class.columns_hash["object_changes"].type case column_type when :jsonb jsonb when :json json else raise UnsupportedColumnType.new( method: "where_object_changes", expected: "json or jsonb", actual: column_type ) end end |