Class: PaperTrail::Queries::Versions::WhereAttributeChanges Private

Inherits:
Object
  • Object
show all
Defined in:
lib/paper_trail/queries/versions/where_attribute_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_attribute_changes` in `paper_trail/version_concern.rb`.

Instance Method Summary collapse

Constructor Details

#initialize(version_model_class, attribute) ⇒ WhereAttributeChanges

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.

  • attribute - An attribute that changed. See the public API documentation for details.



14
15
16
17
# File 'lib/paper_trail/queries/versions/where_attribute_changes.rb', line 14

def initialize(version_model_class, attribute)
  @version_model_class = version_model_class
  @attribute = attribute
end

Instance Method Details

#executeObject

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.



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/paper_trail/queries/versions/where_attribute_changes.rb', line 20

def execute
  if PaperTrail.config.object_changes_adapter.respond_to?(:where_attribute_changes)
    return PaperTrail.config.object_changes_adapter.where_attribute_changes(
      @version_model_class, @attribute
    )
  end
  column_type = @version_model_class.columns_hash["object_changes"].type
  case column_type
  when :jsonb, :json
    json
  else
    raise UnsupportedColumnType.new(
      method: "where_attribute_changes",
      expected: "json or jsonb",
      actual: column_type
    )
  end
end