This commit is contained in:
Jared Beck 2021-04-05 14:28:05 -04:00
parent 52881f2ece
commit 5bb0902816
7 changed files with 55 additions and 45 deletions

View File

@ -117,6 +117,15 @@ Naming/PredicateName:
Naming/MethodParameterName:
Enabled: false
# This cop has low value to begin with. Also, secondarily, it does not allow
# reasonable names like `rails_lt_6_0`.
Naming/VariableNumber:
Enabled: false
# Good advice for rails applications, but not applicable to libraries like PT.
Rails/SkipsModelValidations:
Enabled: false
# This cop does not seem to work in rubocop-rspec 1.28.0
RSpec/DescribeClass:
Enabled: false

View File

@ -101,22 +101,6 @@ Rails/RedundantForeignKey:
- 'spec/dummy_app/app/models/family/family_line.rb'
- 'spec/dummy_app/app/models/person.rb'
# Offense count: 28
# Configuration parameters: ForbiddenMethods, AllowedMethods.
# ForbiddenMethods: decrement!, decrement_counter, increment!, increment_counter, insert, insert!, insert_all, insert_all!, toggle!, touch, touch_all, update_all, update_attribute, update_column, update_columns, update_counters, upsert, upsert_all
Rails/SkipsModelValidations:
Exclude:
- 'lib/paper_trail/record_trail.rb'
- 'spec/models/gadget_spec.rb'
- 'spec/models/on/create_spec.rb'
- 'spec/models/on/empty_array_spec.rb'
- 'spec/models/on/touch_spec.rb'
- 'spec/models/on/update_spec.rb'
- 'spec/models/widget_spec.rb'
- 'spec/paper_trail/cleaner_spec.rb'
- 'spec/paper_trail/config_spec.rb'
- 'spec/paper_trail/model_spec.rb'
# Offense count: 1
# Cop supports --auto-correct.
Rails/WhereNot:

View File

@ -11,12 +11,18 @@ recommendations of [keepachangelog.com](http://keepachangelog.com/).
### Added
- `where_attribute_changes` queries for versions where the object's attribute
- [#1292](https://github.com/paper-trail-gem/paper_trail/pull/1292) -
`where_attribute_changes` queries for versions where the object's attribute
changed to or from any values.
- [#1291](https://github.com/paper-trail-gem/paper_trail/pull/1291) -
`where_object_changes_to` queries for versions where the object's attributes
changed to one set of known values from any other set of values.
### Fixed
- None
- [#1285](https://github.com/paper-trail-gem/paper_trail/pull/1285) -
For ActiveRecord >= 6.0, the `touch` callback will no longer create a new
`Version` for skipped or ignored attributes.
## 12.0.0 (2021-03-29)
@ -31,8 +37,6 @@ recommendations of [keepachangelog.com](http://keepachangelog.com/).
### Added
- `where_object_changes_to` queries for versions where the object's attributes
changed to one set of known values from any other set of values.
- `where_object_changes_from` queries for versions where the object's attributes
changed from one set of known values to any other set of values.
@ -43,10 +47,6 @@ recommendations of [keepachangelog.com](http://keepachangelog.com/).
- Expand kwargs passed to `save_with_version` using double splat operator - Rails 6.1 compatibility
- [#1287](https://github.com/paper-trail-gem/paper_trail/issues/1287) - Fix 'rails db:migrate' error when run against an app with mysql2 adapter
- [#1285](https://github.com/paper-trail-gem/paper_trail/pull/1285) -
Touch callback does not create a new version for skipped or ignored attributes
for ActiveRecord 6.0 and higher
### Dependencies
- Drop support for ruby 2.4 (reached EoL on 2020-03-31)

View File

@ -10,21 +10,23 @@ has been destroyed.
## Documentation
| Version | Documentation |
| -------------- | ------------- |
| Unreleased | https://github.com/paper-trail-gem/paper_trail/blob/master/README.md |
| 12.0.0 | https://github.com/paper-trail-gem/paper_trail/blob/v12.0.0/README.md |
| 11.1.0 | https://github.com/paper-trail-gem/paper_trail/blob/v11.1.0/README.md |
| 10.3.1 | https://github.com/paper-trail-gem/paper_trail/blob/v10.3.1/README.md |
| 9.2.0 | https://github.com/paper-trail-gem/paper_trail/blob/v9.2.0/README.md |
| 8.1.2 | https://github.com/paper-trail-gem/paper_trail/blob/v8.1.2/README.md |
| 7.1.3 | https://github.com/paper-trail-gem/paper_trail/blob/v7.1.3/README.md |
| 6.0.2 | https://github.com/paper-trail-gem/paper_trail/blob/v6.0.2/README.md |
| 5.2.3 | https://github.com/paper-trail-gem/paper_trail/blob/v5.2.3/README.md |
| 4.2.0 | https://github.com/paper-trail-gem/paper_trail/blob/v4.2.0/README.md |
| 3.0.9 | https://github.com/paper-trail-gem/paper_trail/blob/v3.0.9/README.md |
| 2.7.2 | https://github.com/paper-trail-gem/paper_trail/blob/v2.7.2/README.md |
| 1.6.5 | https://github.com/paper-trail-gem/paper_trail/blob/v1.6.5/README.md |
This is the _user guide_. See also, the
[API reference](https://www.rubydoc.info/gems/paper_trail).
Choose version:
[Unreleased](https://github.com/paper-trail-gem/paper_trail/blob/master/README.md),
[12.0](https://github.com/paper-trail-gem/paper_trail/blob/v12.0.0/README.md),
[11.1](https://github.com/paper-trail-gem/paper_trail/blob/v11.1.0/README.md),
[10.3](https://github.com/paper-trail-gem/paper_trail/blob/v10.3.1/README.md),
[9.2](https://github.com/paper-trail-gem/paper_trail/blob/v9.2.0/README.md),
[8.1](https://github.com/paper-trail-gem/paper_trail/blob/v8.1.2/README.md),
[7.1](https://github.com/paper-trail-gem/paper_trail/blob/v7.1.3/README.md),
[6.0](https://github.com/paper-trail-gem/paper_trail/blob/v6.0.2/README.md),
[5.2](https://github.com/paper-trail-gem/paper_trail/blob/v5.2.3/README.md),
[4.2](https://github.com/paper-trail-gem/paper_trail/blob/v4.2.0/README.md),
[3.0](https://github.com/paper-trail-gem/paper_trail/blob/v3.0.9/README.md),
[2.7](https://github.com/paper-trail-gem/paper_trail/blob/v2.7.2/README.md),
[1.6](https://github.com/paper-trail-gem/paper_trail/blob/v1.6.5/README.md)
## Table of Contents
@ -85,8 +87,8 @@ has been destroyed.
| paper_trail | branch | ruby | activerecord |
| -------------- | ---------- | -------- | ------------- |
| unreleased | master | >= 2.5.0 | >= 5.2, < 6.2 |
| 12 | master | >= 2.5.0 | >= 5.2, < 6.2 |
| 11 | master | >= 2.4.0 | >= 5.2, < 6.1 |
| 12 | 12-stable | >= 2.5.0 | >= 5.2, < 6.2 |
| 11 | 11-stable | >= 2.4.0 | >= 5.2, < 6.1 |
| 10 | 10-stable | >= 2.3.0 | >= 4.2, < 6.1 |
| 9 | 9-stable | >= 2.3.0 | >= 4.2, < 5.3 |
| 8 | 8-stable | >= 2.2.0 | >= 4.2, < 5.2 |
@ -720,8 +722,16 @@ PaperTrail::Version.where_object(content: 'Hello', title: 'Article')
PaperTrail::Version.where_object_changes(atr: 'v')
```
Using `where_object_changes` to read YAML from a text column was deprecated in
8.1.0, and will now raise an error.
See also:
- `where_object_changes_from`
- `where_object_changes_to`
- `where_attribute_changes`
Using `where_object_changes*` or `where_attribute_changes` to read YAML or JSON
from a text column was deprecated in 8.1.0, and will now raise an error. Use a
`json` or `jsonb` column if possible. If you must use a `text` column, you'll
have to write a custom `object_changes_adapter`.
### 3.c. Diffing Versions

View File

@ -97,6 +97,13 @@ module PaperTrail
end
# Adds a callback that records a version after a "touch" event.
#
# Rails < 6.0 has a bug where dirty-tracking does not occur during
# a `touch`. (https://github.com/rails/rails/issues/33429) See also:
# https://github.com/paper-trail-gem/paper_trail/issues/1121
# https://github.com/paper-trail-gem/paper_trail/issues/1161
# https://github.com/paper-trail-gem/paper_trail/pull/1285
#
# @api public
def on_touch
@model_class.after_touch { |r|

View File

@ -18,7 +18,7 @@ module PaperTrail
# @api private
def execute
if PaperTrail.config.object_changes_adapter&.respond_to?(:where_attribute_changes)
if PaperTrail.config.object_changes_adapter.respond_to?(:where_attribute_changes)
return PaperTrail.config.object_changes_adapter.where_attribute_changes(
@version_model_class, @attribute
)

View File

@ -18,7 +18,7 @@ module PaperTrail
# @api private
def execute
if PaperTrail.config.object_changes_adapter&.respond_to?(:where_object_changes_to)
if PaperTrail.config.object_changes_adapter.respond_to?(:where_object_changes_to)
return PaperTrail.config.object_changes_adapter.where_object_changes_to(
@version_model_class, @attributes
)