paper_trail 10.3.1 → 12.1.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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +20 -0
  3. data/lib/generators/paper_trail/install/install_generator.rb +13 -7
  4. data/lib/generators/paper_trail/install/templates/create_versions.rb.erb +1 -1
  5. data/lib/generators/paper_trail/migration_generator.rb +5 -4
  6. data/lib/generators/paper_trail/update_item_subtype/update_item_subtype_generator.rb +4 -2
  7. data/lib/paper_trail/attribute_serializers/attribute_serializer_factory.rb +24 -10
  8. data/lib/paper_trail/attribute_serializers/cast_attribute_serializer.rb +8 -46
  9. data/lib/paper_trail/compatibility.rb +2 -2
  10. data/lib/paper_trail/config.rb +0 -33
  11. data/lib/paper_trail/errors.rb +33 -0
  12. data/lib/paper_trail/events/base.rb +35 -50
  13. data/lib/paper_trail/events/destroy.rb +1 -1
  14. data/lib/paper_trail/frameworks/active_record.rb +9 -2
  15. data/lib/paper_trail/frameworks/rails/controller.rb +1 -9
  16. data/lib/paper_trail/frameworks/rails/railtie.rb +30 -0
  17. data/lib/paper_trail/frameworks/rails.rb +1 -2
  18. data/lib/paper_trail/has_paper_trail.rb +1 -1
  19. data/lib/paper_trail/model_config.rb +25 -30
  20. data/lib/paper_trail/queries/versions/where_attribute_changes.rb +50 -0
  21. data/lib/paper_trail/queries/versions/where_object.rb +1 -1
  22. data/lib/paper_trail/queries/versions/where_object_changes.rb +8 -13
  23. data/lib/paper_trail/queries/versions/where_object_changes_from.rb +57 -0
  24. data/lib/paper_trail/queries/versions/where_object_changes_to.rb +57 -0
  25. data/lib/paper_trail/record_trail.rb +3 -5
  26. data/lib/paper_trail/reifier.rb +41 -26
  27. data/lib/paper_trail/request.rb +0 -3
  28. data/lib/paper_trail/serializers/json.rb +0 -10
  29. data/lib/paper_trail/serializers/yaml.rb +0 -12
  30. data/lib/paper_trail/type_serializers/postgres_array_serializer.rb +1 -14
  31. data/lib/paper_trail/version_concern.rb +75 -40
  32. data/lib/paper_trail/version_number.rb +3 -3
  33. data/lib/paper_trail.rb +15 -40
  34. metadata +113 -40
  35. data/lib/paper_trail/frameworks/rails/engine.rb +0 -45
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: 10.3.1
4
+ version: 12.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Stewart
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-07-31 00:00:00.000000000 Z
13
+ date: 2021-08-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '4.2'
21
+ version: '5.2'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: '4.2'
28
+ version: '5.2'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: request_store
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -46,42 +46,42 @@ dependencies:
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '2.2'
49
+ version: 2.4.1
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '2.2'
56
+ version: 2.4.1
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: byebug
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: '10.0'
63
+ version: '11.0'
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
- version: '10.0'
70
+ version: '11.0'
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: ffaker
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - "~>"
76
76
  - !ruby/object:Gem::Version
77
- version: '2.8'
77
+ version: 2.19.0
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - "~>"
83
83
  - !ruby/object:Gem::Version
84
- version: '2.8'
84
+ version: 2.19.0
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: generator_spec
87
87
  requirement: !ruby/object:Gem::Requirement
@@ -102,140 +102,208 @@ dependencies:
102
102
  requirements:
103
103
  - - "~>"
104
104
  - !ruby/object:Gem::Version
105
- version: 0.9.12
105
+ version: 1.0.0
106
106
  type: :development
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - "~>"
111
111
  - !ruby/object:Gem::Version
112
- version: 0.9.12
112
+ version: 1.0.0
113
113
  - !ruby/object:Gem::Dependency
114
- name: mysql2
114
+ name: rails
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '5.2'
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '5.2'
127
+ - !ruby/object:Gem::Dependency
128
+ name: rake
115
129
  requirement: !ruby/object:Gem::Requirement
116
130
  requirements:
117
131
  - - "~>"
118
132
  - !ruby/object:Gem::Version
119
- version: 0.5.2
133
+ version: '13.0'
120
134
  type: :development
121
135
  prerelease: false
122
136
  version_requirements: !ruby/object:Gem::Requirement
123
137
  requirements:
124
138
  - - "~>"
125
139
  - !ruby/object:Gem::Version
126
- version: 0.5.2
140
+ version: '13.0'
127
141
  - !ruby/object:Gem::Dependency
128
- name: paper_trail-association_tracking
142
+ name: rspec-rails
129
143
  requirement: !ruby/object:Gem::Requirement
130
144
  requirements:
131
145
  - - "~>"
132
146
  - !ruby/object:Gem::Version
133
- version: 2.0.0
147
+ version: 5.0.2
134
148
  type: :development
135
149
  prerelease: false
136
150
  version_requirements: !ruby/object:Gem::Requirement
137
151
  requirements:
138
152
  - - "~>"
139
153
  - !ruby/object:Gem::Version
140
- version: 2.0.0
154
+ version: 5.0.2
141
155
  - !ruby/object:Gem::Dependency
142
- name: pg
156
+ name: rubocop
143
157
  requirement: !ruby/object:Gem::Requirement
144
158
  requirements:
145
159
  - - "~>"
146
160
  - !ruby/object:Gem::Version
147
- version: '1.0'
161
+ version: 1.20.0
148
162
  type: :development
149
163
  prerelease: false
150
164
  version_requirements: !ruby/object:Gem::Requirement
151
165
  requirements:
152
166
  - - "~>"
153
167
  - !ruby/object:Gem::Version
154
- version: '1.0'
168
+ version: 1.20.0
155
169
  - !ruby/object:Gem::Dependency
156
- name: rake
170
+ name: rubocop-packaging
157
171
  requirement: !ruby/object:Gem::Requirement
158
172
  requirements:
159
173
  - - "~>"
160
174
  - !ruby/object:Gem::Version
161
- version: '12.3'
175
+ version: 0.5.1
162
176
  type: :development
163
177
  prerelease: false
164
178
  version_requirements: !ruby/object:Gem::Requirement
165
179
  requirements:
166
180
  - - "~>"
167
181
  - !ruby/object:Gem::Version
168
- version: '12.3'
182
+ version: 0.5.1
169
183
  - !ruby/object:Gem::Dependency
170
- name: rspec-rails
184
+ name: rubocop-performance
171
185
  requirement: !ruby/object:Gem::Requirement
172
186
  requirements:
173
187
  - - "~>"
174
188
  - !ruby/object:Gem::Version
175
- version: '3.8'
189
+ version: 1.11.5
176
190
  type: :development
177
191
  prerelease: false
178
192
  version_requirements: !ruby/object:Gem::Requirement
179
193
  requirements:
180
194
  - - "~>"
181
195
  - !ruby/object:Gem::Version
182
- version: '3.8'
196
+ version: 1.11.5
183
197
  - !ruby/object:Gem::Dependency
184
- name: rubocop
198
+ name: rubocop-rails
185
199
  requirement: !ruby/object:Gem::Requirement
186
200
  requirements:
187
201
  - - "~>"
188
202
  - !ruby/object:Gem::Version
189
- version: 0.71.0
203
+ version: 2.11.3
190
204
  type: :development
191
205
  prerelease: false
192
206
  version_requirements: !ruby/object:Gem::Requirement
193
207
  requirements:
194
208
  - - "~>"
195
209
  - !ruby/object:Gem::Version
196
- version: 0.71.0
210
+ version: 2.11.3
197
211
  - !ruby/object:Gem::Dependency
198
- name: rubocop-performance
212
+ name: rubocop-rake
199
213
  requirement: !ruby/object:Gem::Requirement
200
214
  requirements:
201
215
  - - "~>"
202
216
  - !ruby/object:Gem::Version
203
- version: 1.3.0
217
+ version: 0.6.0
204
218
  type: :development
205
219
  prerelease: false
206
220
  version_requirements: !ruby/object:Gem::Requirement
207
221
  requirements:
208
222
  - - "~>"
209
223
  - !ruby/object:Gem::Version
210
- version: 1.3.0
224
+ version: 0.6.0
211
225
  - !ruby/object:Gem::Dependency
212
226
  name: rubocop-rspec
213
227
  requirement: !ruby/object:Gem::Requirement
214
228
  requirements:
215
229
  - - "~>"
216
230
  - !ruby/object:Gem::Version
217
- version: 1.33.0
231
+ version: 2.4.0
232
+ type: :development
233
+ prerelease: false
234
+ version_requirements: !ruby/object:Gem::Requirement
235
+ requirements:
236
+ - - "~>"
237
+ - !ruby/object:Gem::Version
238
+ version: 2.4.0
239
+ - !ruby/object:Gem::Dependency
240
+ name: simplecov
241
+ requirement: !ruby/object:Gem::Requirement
242
+ requirements:
243
+ - - ">="
244
+ - !ruby/object:Gem::Version
245
+ version: '0.21'
246
+ - - "<"
247
+ - !ruby/object:Gem::Version
248
+ version: '0.22'
249
+ type: :development
250
+ prerelease: false
251
+ version_requirements: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - ">="
254
+ - !ruby/object:Gem::Version
255
+ version: '0.21'
256
+ - - "<"
257
+ - !ruby/object:Gem::Version
258
+ version: '0.22'
259
+ - !ruby/object:Gem::Dependency
260
+ name: mysql2
261
+ requirement: !ruby/object:Gem::Requirement
262
+ requirements:
263
+ - - "~>"
264
+ - !ruby/object:Gem::Version
265
+ version: '0.5'
218
266
  type: :development
219
267
  prerelease: false
220
268
  version_requirements: !ruby/object:Gem::Requirement
221
269
  requirements:
222
270
  - - "~>"
223
271
  - !ruby/object:Gem::Version
224
- version: 1.33.0
272
+ version: '0.5'
273
+ - !ruby/object:Gem::Dependency
274
+ name: pg
275
+ requirement: !ruby/object:Gem::Requirement
276
+ requirements:
277
+ - - ">="
278
+ - !ruby/object:Gem::Version
279
+ version: '0.18'
280
+ - - "<"
281
+ - !ruby/object:Gem::Version
282
+ version: '2.0'
283
+ type: :development
284
+ prerelease: false
285
+ version_requirements: !ruby/object:Gem::Requirement
286
+ requirements:
287
+ - - ">="
288
+ - !ruby/object:Gem::Version
289
+ version: '0.18'
290
+ - - "<"
291
+ - !ruby/object:Gem::Version
292
+ version: '2.0'
225
293
  - !ruby/object:Gem::Dependency
226
294
  name: sqlite3
227
295
  requirement: !ruby/object:Gem::Requirement
228
296
  requirements:
229
297
  - - "~>"
230
298
  - !ruby/object:Gem::Version
231
- version: 1.3.13
299
+ version: '1.4'
232
300
  type: :development
233
301
  prerelease: false
234
302
  version_requirements: !ruby/object:Gem::Requirement
235
303
  requirements:
236
304
  - - "~>"
237
305
  - !ruby/object:Gem::Version
238
- version: 1.3.13
306
+ version: '1.4'
239
307
  description: |
240
308
  Track changes to your models, for auditing or versioning. See how a model looked
241
309
  at any stage in its lifecycle, revert it to any version, or restore it after it
@@ -245,6 +313,7 @@ executables: []
245
313
  extensions: []
246
314
  extra_rdoc_files: []
247
315
  files:
316
+ - LICENSE
248
317
  - lib/generators/paper_trail/install/USAGE
249
318
  - lib/generators/paper_trail/install/install_generator.rb
250
319
  - lib/generators/paper_trail/install/templates/add_object_changes_to_versions.rb.erb
@@ -262,6 +331,7 @@ files:
262
331
  - lib/paper_trail/cleaner.rb
263
332
  - lib/paper_trail/compatibility.rb
264
333
  - lib/paper_trail/config.rb
334
+ - lib/paper_trail/errors.rb
265
335
  - lib/paper_trail/events/base.rb
266
336
  - lib/paper_trail/events/create.rb
267
337
  - lib/paper_trail/events/destroy.rb
@@ -271,13 +341,16 @@ files:
271
341
  - lib/paper_trail/frameworks/cucumber.rb
272
342
  - lib/paper_trail/frameworks/rails.rb
273
343
  - lib/paper_trail/frameworks/rails/controller.rb
274
- - lib/paper_trail/frameworks/rails/engine.rb
344
+ - lib/paper_trail/frameworks/rails/railtie.rb
275
345
  - lib/paper_trail/frameworks/rspec.rb
276
346
  - lib/paper_trail/frameworks/rspec/helpers.rb
277
347
  - lib/paper_trail/has_paper_trail.rb
278
348
  - lib/paper_trail/model_config.rb
349
+ - lib/paper_trail/queries/versions/where_attribute_changes.rb
279
350
  - lib/paper_trail/queries/versions/where_object.rb
280
351
  - lib/paper_trail/queries/versions/where_object_changes.rb
352
+ - lib/paper_trail/queries/versions/where_object_changes_from.rb
353
+ - lib/paper_trail/queries/versions/where_object_changes_to.rb
281
354
  - lib/paper_trail/record_history.rb
282
355
  - lib/paper_trail/record_trail.rb
283
356
  - lib/paper_trail/reifier.rb
@@ -299,14 +372,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
299
372
  requirements:
300
373
  - - ">="
301
374
  - !ruby/object:Gem::Version
302
- version: 2.3.0
375
+ version: 2.5.0
303
376
  required_rubygems_version: !ruby/object:Gem::Requirement
304
377
  requirements:
305
378
  - - ">="
306
379
  - !ruby/object:Gem::Version
307
380
  version: 1.3.6
308
381
  requirements: []
309
- rubygems_version: 3.0.3
382
+ rubygems_version: 3.2.22
310
383
  signing_key:
311
384
  specification_version: 4
312
385
  summary: Track changes to your models.
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module PaperTrail
4
- module Rails
5
- # See http://guides.rubyonrails.org/engines.html
6
- class Engine < ::Rails::Engine
7
- DPR_CONFIG_ENABLED = <<~EOS.squish.freeze
8
- The rails configuration option config.paper_trail.enabled is deprecated.
9
- Please use PaperTrail.enabled= instead. People were getting confused
10
- that PT has both, specifically regarding *when* each was happening. If
11
- you'd like to keep config.paper_trail, join the discussion at
12
- https://github.com/paper-trail-gem/paper_trail/pull/1176
13
- EOS
14
- private_constant :DPR_CONFIG_ENABLED
15
- DPR_RUDELY_ENABLING = <<~EOS.squish.freeze
16
- At some point early in the rails boot process, you have set
17
- PaperTrail.enabled = false. PT's rails engine is now overriding your
18
- setting, and setting it to true. We're not sure why, but this is how PT
19
- has worked since 5.0, when the config.paper_trail.enabled option was
20
- introduced. This is now deprecated. In the future, PT will not override
21
- your setting. See
22
- https://github.com/paper-trail-gem/paper_trail/pull/1176 for discussion.
23
- EOS
24
- private_constant :DPR_RUDELY_ENABLING
25
-
26
- paths["app/models"] << "lib/paper_trail/frameworks/active_record/models"
27
-
28
- # --- Begin deprecated section ---
29
- config.paper_trail = ActiveSupport::OrderedOptions.new
30
- initializer "paper_trail.initialisation" do |app|
31
- enable = app.config.paper_trail[:enabled]
32
- if enable.nil?
33
- unless PaperTrail.enabled?
34
- ::ActiveSupport::Deprecation.warn(DPR_RUDELY_ENABLING)
35
- PaperTrail.enabled = true
36
- end
37
- else
38
- ::ActiveSupport::Deprecation.warn(DPR_CONFIG_ENABLED)
39
- PaperTrail.enabled = enable
40
- end
41
- end
42
- # --- End deprecated section ---
43
- end
44
- end
45
- end