paper_trail 4.0.0.rc2 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +107 -93
- data/README.md +2 -2
- data/lib/paper_trail.rb +1 -1
- data/lib/paper_trail/has_paper_trail.rb +0 -10
- data/lib/paper_trail/version_number.rb +1 -1
- data/spec/models/widget_spec.rb +0 -32
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e6cf60ba027274553881419d2024a86547be00d2
|
4
|
+
data.tar.gz: 57495d17ebfa11d24a17cf7d65ba5e67aca92816
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9c462e7bb9dfdf1404de3fb8de7484de342ab0516e0e8eaae67e3059a51e01d0e7c9b1699433857c2045bee768256ab811783ccc8568318cf14dc39c50bd6ff
|
7
|
+
data.tar.gz: 1e8c8098fa91e2cb9af8fae20268beceba18e885948a629e5fada7d84d2023159254da16875341436ce620365fb9f28432e4a37159ac7a9c8bc8883a2afef409
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
## 4.0.0
|
1
|
+
## 4.0.0
|
2
|
+
|
3
|
+
This major release adds JSON column support in PostgreSQL, limited support for
|
4
|
+
versioning associations, various new configuration options, and a year's worth
|
5
|
+
of bug fixes. Thanks to everyone who helped test the two betas and two release
|
6
|
+
candidates.
|
2
7
|
|
3
8
|
### Changed
|
4
9
|
|
@@ -8,104 +13,113 @@
|
|
8
13
|
https://github.com/airblade/paper_trail/pull/492.
|
9
14
|
- If you depend on the `RSpec` or `Cucumber` helpers, you must
|
10
15
|
[require them in your test helper](https://github.com/airblade/paper_trail#testing).
|
16
|
+
- [#458](https://github.com/airblade/paper_trail/pull/458) - Version metadata
|
17
|
+
(the `:meta` option) from AR attributes for `create` events will now save the
|
18
|
+
current value instead of `nil`.
|
19
|
+
- [#391](https://github.com/airblade/paper_trail/issues/391) - `object_changes`
|
20
|
+
value should dump to `YAML` as a normal `Hash` instead of an
|
21
|
+
`ActiveSupport::HashWithIndifferentAccess`.
|
22
|
+
- [#375](https://github.com/airblade/paper_trail/pull/375) /
|
23
|
+
[#374](https://github.com/airblade/paper_trail/issues/374) /
|
24
|
+
[#354](https://github.com/airblade/paper_trail/issues/354) /
|
25
|
+
[#131](https://github.com/airblade/paper_trail/issues/131) -
|
26
|
+
Versions are now saved with an `after_` callback, instead of a `before_`
|
27
|
+
callback. This ensures that the timestamp field for a version matches the
|
28
|
+
corresponding timestamp in the model.
|
29
|
+
- `3da1f104` - `PaperTrail.config` and `PaperTrail.configure` are now
|
30
|
+
identical: both return the `PaperTrail::Config` instance and also
|
31
|
+
yield it if a block is provided.
|
32
|
+
|
33
|
+
### Removed
|
34
|
+
|
35
|
+
- [#566](https://github.com/airblade/paper_trail/pull/566) - Removed deprecated
|
36
|
+
methods `paper_trail_on` and `paper_trail_off`. Use `paper_trail_on!` and
|
37
|
+
`paper_trail_off!` instead.
|
11
38
|
|
12
39
|
### Added
|
13
40
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
`has_paper_trail` has not been declared on the class.
|
53
|
-
- [#404](https://github.com/airblade/paper_trail/issues/404) /
|
54
|
-
[#428](https://github.com/airblade/paper_trail/issues/428) -
|
55
|
-
`model_instance.dup` does not need to be invoked when examining what the
|
56
|
-
instance looked like before changes were persisted, which avoids issues if a
|
57
|
-
3rd party has overriden the `dup` behavior. Also fixes errors occuring when
|
58
|
-
a user attempts to update the inheritance column on an STI model instance in
|
59
|
-
`ActiveRecord` 4.1.x
|
60
|
-
- [#427](https://github.com/airblade/paper_trail/pull/427) - Fix `reify`
|
61
|
-
method in context of model where a column has been removed.
|
62
|
-
- [#420](https://github.com/airblade/paper_trail/issues/420) - Add
|
63
|
-
`VersionConcern#where_object_changes` instance method; acts as a helper for
|
64
|
-
querying against the `object_changes` column in versions table.
|
65
|
-
- [#416](https://github.com/airblade/paper_trail/issues/416) - Added a
|
66
|
-
`config` option for enabling/disabling utilization of
|
67
|
-
`serialized_attributes` for `ActiveRecord`, necessary because
|
68
|
-
`serialized_attributes` has been deprecated in `ActiveRecord` version `4.2`
|
69
|
-
and will be removed in version `5.0`
|
70
|
-
- [#414](https://github.com/airblade/paper_trail/issues/414) - Fix
|
71
|
-
functionality `ignore` argument to `has_paper_trail` in `ActiveRecord` 4.
|
72
|
-
- [#413](https://github.com/airblade/paper_trail/issues/413) - Utilize
|
73
|
-
[RequestStore](https://github.com/steveklabnik/request_store) to ensure that
|
74
|
-
the `PaperTrail.whodunnit` is set in a thread safe manner within Rails and
|
75
|
-
Sinatra.
|
76
|
-
- [#399](https://github.com/airblade/paper_trail/pull/399) - Add `:dup`
|
77
|
-
argument for options hash to `reify` which forces a new model instance.
|
78
|
-
- [#394](https://github.com/airblade/paper_trail/pull/394) - Add RSpec matcher
|
79
|
-
`have_a_version_with` for easier testing.
|
80
|
-
- [#391](https://github.com/airblade/paper_trail/issues/391) - `object_changes`
|
81
|
-
value should dump to `YAML` as a normal `Hash` instead of an
|
82
|
-
`ActiveSupport::HashWithIndifferentAccess`.
|
83
|
-
- [#381](https://github.com/airblade/paper_trail/issues/381) - `Rspec`
|
84
|
-
and `Cucumber` helpers should not be loaded by default, regardless of
|
85
|
-
whether those libraries are loaded.
|
86
|
-
- [#375](https://github.com/airblade/paper_trail/pull/375) /
|
87
|
-
[#374](https://github.com/airblade/paper_trail/issues/374) /
|
88
|
-
[#354](https://github.com/airblade/paper_trail/issues/354) /
|
89
|
-
[#131](https://github.com/airblade/paper_trail/issues/131) -
|
90
|
-
Versions should be built with `after_` callbacks so the timestamp field for
|
91
|
-
a version can be forced to match the corresponding timestamp in the database
|
92
|
-
for the state persistence of a change to the base (versioned) model.
|
93
|
-
- [#347](https://github.com/airblade/paper_trail/pull/347) - Autoload
|
94
|
-
`ActiveRecord` models in via a `Rails::Engine` when the gem is used with
|
95
|
-
`Rails`.
|
96
|
-
- Methods handling serialized attributes should fallback to the currently set
|
97
|
-
Serializer instead of always falling back to `PaperTrail::Serializers::YAML`.
|
98
|
-
- Both `PaperTrail.config` and `PaperTrail.configure` are now identical, and
|
99
|
-
will both return the `PaperTrail::Config` instance and also yield it if a
|
100
|
-
block is provided.
|
41
|
+
- [#525](https://github.com/airblade/paper_trail/issues/525) /
|
42
|
+
[#512](https://github.com/airblade/paper_trail/pull/512) -
|
43
|
+
Support for virtual accessors and redefined setter and getter methods.
|
44
|
+
- [#518](https://github.com/airblade/paper_trail/pull/518) - Support for
|
45
|
+
querying against PostgreSQL's
|
46
|
+
[`JSON` and `JSONB` column types](http://www.postgresql.org/docs/9.4/static/datatype-json.html)
|
47
|
+
via `PaperTrail::VersionConcern#where_object` and
|
48
|
+
`PaperTrail::VersionConcern#where_object_changes`
|
49
|
+
- [#507](https://github.com/airblade/paper_trail/pull/507) -
|
50
|
+
New option: `:save_changes` controls whether or not to save changes to the
|
51
|
+
`object_changes` column (if it exists).
|
52
|
+
- [#500](https://github.com/airblade/paper_trail/pull/500) - Support for
|
53
|
+
passing an empty array to the `on` option (`on: []`) to disable all
|
54
|
+
automatic versioning.
|
55
|
+
- [#494](https://github.com/airblade/paper_trail/issues/494) - The install
|
56
|
+
generator will warn the user if the migration they are attempting to
|
57
|
+
generate already exists.
|
58
|
+
- [#484](https://github.com/airblade/paper_trail/pull/484) - Support for
|
59
|
+
[PostgreSQL's `JSONB` Type](http://www.postgresql.org/docs/9.4/static/datatype-json.html)
|
60
|
+
for storing `object` and `object_changes`.
|
61
|
+
- [#439](https://github.com/airblade/paper_trail/pull/439) /
|
62
|
+
[#12](https://github.com/airblade/paper_trail/issues/12) -
|
63
|
+
Support for versioning associations (has many, has one, etc.) one level deep.
|
64
|
+
- [#420](https://github.com/airblade/paper_trail/issues/420) - Add
|
65
|
+
`VersionConcern#where_object_changes` instance method; acts as a helper for
|
66
|
+
querying against the `object_changes` column in versions table.
|
67
|
+
- [#416](https://github.com/airblade/paper_trail/issues/416) - Added a
|
68
|
+
`config` option for enabling/disabling utilization of
|
69
|
+
`serialized_attributes` for `ActiveRecord`, necessary because
|
70
|
+
`serialized_attributes` has been deprecated in `ActiveRecord` version `4.2`
|
71
|
+
and will be removed in version `5.0`
|
72
|
+
- [#399](https://github.com/airblade/paper_trail/pull/399) - Add `:dup`
|
73
|
+
argument for options hash to `reify` which forces a new model instance.
|
74
|
+
- [#394](https://github.com/airblade/paper_trail/pull/394) - Add RSpec matcher
|
75
|
+
`have_a_version_with` for easier testing.
|
76
|
+
- [#347](https://github.com/airblade/paper_trail/pull/347) - Autoload
|
77
|
+
`ActiveRecord` models in via a `Rails::Engine` when the gem is used with
|
78
|
+
`Rails`.
|
101
79
|
|
102
80
|
### Fixed
|
103
81
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
82
|
+
- [#563](https://github.com/airblade/paper_trail/pull/563) - Fixed a bug in
|
83
|
+
`touch_with_version` so that it will still create a version even when the
|
84
|
+
`on` option is, e.g. `[:create]`.
|
85
|
+
- [#541](https://github.com/airblade/paper_trail/pull/541) -
|
86
|
+
`PaperTrail.config.enabled` should be Thread Safe
|
87
|
+
- [#451](https://github.com/airblade/paper_trail/issues/451) - Fix `reify`
|
88
|
+
method in context of model where the base class has a default scope, and the
|
89
|
+
live instance is not scoped within that default scope.
|
90
|
+
- [#440](https://github.com/airblade/paper_trail/pull/440) - `versions`
|
91
|
+
association should clear/reload after a transaction rollback.
|
92
|
+
- [#438](https://github.com/airblade/paper_trail/issues/438) -
|
93
|
+
`ModelKlass.paper_trail_enabled_for_model?` should return `false` if
|
94
|
+
`has_paper_trail` has not been declared on the class.
|
95
|
+
- [#404](https://github.com/airblade/paper_trail/issues/404) /
|
96
|
+
[#428](https://github.com/airblade/paper_trail/issues/428) -
|
97
|
+
`model_instance.dup` does not need to be invoked when examining what the
|
98
|
+
instance looked like before changes were persisted, which avoids issues if a
|
99
|
+
3rd party has overriden the `dup` behavior. Also fixes errors occuring when
|
100
|
+
a user attempts to update the inheritance column on an STI model instance in
|
101
|
+
`ActiveRecord` 4.1.x
|
102
|
+
- [#427](https://github.com/airblade/paper_trail/pull/427) - Fix `reify`
|
103
|
+
method in context of model where a column has been removed.
|
104
|
+
- [#414](https://github.com/airblade/paper_trail/issues/414) - Fix
|
105
|
+
functionality `ignore` argument to `has_paper_trail` in `ActiveRecord` 4.
|
106
|
+
- [#413](https://github.com/airblade/paper_trail/issues/413) - Utilize
|
107
|
+
[RequestStore](https://github.com/steveklabnik/request_store) to ensure that
|
108
|
+
the `PaperTrail.whodunnit` is set in a thread safe manner within Rails and
|
109
|
+
Sinatra.
|
110
|
+
- [#381](https://github.com/airblade/paper_trail/issues/381) - Fix `irb`
|
111
|
+
warning: `can't alias context from irb_context`. `Rspec` and `Cucumber`
|
112
|
+
helpers should not be loaded by default, regardless of whether those
|
113
|
+
libraries are loaded.
|
114
|
+
- [#248](https://github.com/airblade/paper_trail/issues/248) - In MySQL, to
|
115
|
+
prevent truncation, generated migrations now use `longtext` instead of `text`.
|
116
|
+
- Methods handling serialized attributes should fallback to the currently set
|
117
|
+
Serializer instead of always falling back to `PaperTrail::Serializers::YAML`.
|
118
|
+
|
119
|
+
### Deprecated
|
120
|
+
|
121
|
+
- [#479](https://github.com/airblade/paper_trail/issues/479) - Deprecated
|
122
|
+
`originator` method, use `paper_trail_originator`.
|
109
123
|
|
110
124
|
## 3.0.8
|
111
125
|
|
data/README.md
CHANGED
@@ -66,7 +66,7 @@ The Rails 2.3 code is on the [`rails2`][11] branch and tagged `v1.x`. These bran
|
|
66
66
|
|
67
67
|
1. Add PaperTrail to your `Gemfile`.
|
68
68
|
|
69
|
-
`gem 'paper_trail', '~> 4.0.0
|
69
|
+
`gem 'paper_trail', '~> 4.0.0'`
|
70
70
|
|
71
71
|
2. Generate a migration which will add a `versions` table to your database.
|
72
72
|
|
@@ -89,7 +89,7 @@ setting up your app with PaperTrail will look something like this:
|
|
89
89
|
|
90
90
|
1. Add PaperTrail to your `Gemfile`.
|
91
91
|
|
92
|
-
`gem 'paper_trail', '~> 4.0.0
|
92
|
+
`gem 'paper_trail', '~> 4.0.0'`
|
93
93
|
|
94
94
|
2. Generate a migration to add a `versions` table to your database.
|
95
95
|
|
data/lib/paper_trail.rb
CHANGED
@@ -149,7 +149,7 @@ end
|
|
149
149
|
|
150
150
|
# Require frameworks
|
151
151
|
require 'paper_trail/frameworks/sinatra'
|
152
|
-
if defined? ::
|
152
|
+
if defined?(::Rails) && ActiveRecord::VERSION::STRING >= '3.2'
|
153
153
|
require 'paper_trail/frameworks/rails'
|
154
154
|
else
|
155
155
|
require 'paper_trail/frameworks/active_record'
|
@@ -96,21 +96,11 @@ module PaperTrail
|
|
96
96
|
PaperTrail.enabled_for_model(self, false)
|
97
97
|
end
|
98
98
|
|
99
|
-
def paper_trail_off
|
100
|
-
warn "DEPRECATED: use `paper_trail_off!` instead of `paper_trail_off`. Support for `paper_trail_off` will be removed in PaperTrail 4.0"
|
101
|
-
self.paper_trail_off!
|
102
|
-
end
|
103
|
-
|
104
99
|
# Switches PaperTrail on for this class.
|
105
100
|
def paper_trail_on!
|
106
101
|
PaperTrail.enabled_for_model(self, true)
|
107
102
|
end
|
108
103
|
|
109
|
-
def paper_trail_on
|
110
|
-
warn "DEPRECATED: use `paper_trail_on!` instead of `paper_trail_on`. Support for `paper_trail_on` will be removed in PaperTrail 4.0"
|
111
|
-
self.paper_trail_on!
|
112
|
-
end
|
113
|
-
|
114
104
|
def paper_trail_enabled_for_model?
|
115
105
|
return false unless self.include?(PaperTrail::Model::InstanceMethods)
|
116
106
|
PaperTrail.enabled_for_model?(self)
|
data/spec/models/widget_spec.rb
CHANGED
@@ -282,21 +282,6 @@ describe Widget, :type => :model do
|
|
282
282
|
end
|
283
283
|
end
|
284
284
|
|
285
|
-
describe '#paper_trail_off' do
|
286
|
-
it { is_expected.to respond_to(:paper_trail_off) }
|
287
|
-
|
288
|
-
it 'should set the invoke `paper_trail_off!`' do
|
289
|
-
is_expected.to receive(:warn)
|
290
|
-
is_expected.to receive(:paper_trail_off!)
|
291
|
-
subject.paper_trail_off
|
292
|
-
end
|
293
|
-
|
294
|
-
it 'should display a deprecation warning' do
|
295
|
-
is_expected.to receive(:warn).with("DEPRECATED: use `paper_trail_on!` instead of `paper_trail_on`. Support for `paper_trail_on` will be removed in PaperTrail 4.0")
|
296
|
-
subject.paper_trail_on
|
297
|
-
end
|
298
|
-
end
|
299
|
-
|
300
285
|
describe '#paper_trail_on!' do
|
301
286
|
before { subject.paper_trail_off! }
|
302
287
|
|
@@ -308,23 +293,6 @@ describe Widget, :type => :model do
|
|
308
293
|
expect(subject.paper_trail_enabled_for_model?).to be true
|
309
294
|
end
|
310
295
|
end
|
311
|
-
|
312
|
-
describe '#paper_trail_on' do
|
313
|
-
before { subject.paper_trail_off! }
|
314
|
-
|
315
|
-
it { is_expected.to respond_to(:paper_trail_on) }
|
316
|
-
|
317
|
-
it 'should set the invoke `paper_trail_on!`' do
|
318
|
-
is_expected.to receive(:warn)
|
319
|
-
is_expected.to receive(:paper_trail_on!)
|
320
|
-
subject.paper_trail_on
|
321
|
-
end
|
322
|
-
|
323
|
-
it 'should display a deprecation warning' do
|
324
|
-
is_expected.to receive(:warn).with("DEPRECATED: use `paper_trail_on!` instead of `paper_trail_on`. Support for `paper_trail_on` will be removed in PaperTrail 4.0")
|
325
|
-
subject.paper_trail_on
|
326
|
-
end
|
327
|
-
end
|
328
296
|
end
|
329
297
|
end
|
330
298
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paper_trail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.0
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Stewart
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-07-
|
12
|
+
date: 2015-07-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|