paper_trail 10.3.1 → 13.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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +20 -0
  3. data/lib/generators/paper_trail/install/install_generator.rb +25 -7
  4. data/lib/generators/paper_trail/install/templates/create_versions.rb.erb +4 -2
  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 +14 -46
  9. data/lib/paper_trail/compatibility.rb +3 -3
  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 +68 -68
  13. data/lib/paper_trail/events/destroy.rb +1 -1
  14. data/lib/paper_trail/events/update.rb +23 -4
  15. data/lib/paper_trail/frameworks/active_record.rb +9 -2
  16. data/lib/paper_trail/frameworks/rails/controller.rb +1 -9
  17. data/lib/paper_trail/frameworks/rails/railtie.rb +30 -0
  18. data/lib/paper_trail/frameworks/rails.rb +1 -2
  19. data/lib/paper_trail/has_paper_trail.rb +1 -1
  20. data/lib/paper_trail/model_config.rb +49 -46
  21. data/lib/paper_trail/queries/versions/where_attribute_changes.rb +50 -0
  22. data/lib/paper_trail/queries/versions/where_object.rb +1 -1
  23. data/lib/paper_trail/queries/versions/where_object_changes.rb +8 -13
  24. data/lib/paper_trail/queries/versions/where_object_changes_from.rb +57 -0
  25. data/lib/paper_trail/queries/versions/where_object_changes_to.rb +57 -0
  26. data/lib/paper_trail/record_trail.rb +7 -7
  27. data/lib/paper_trail/reifier.rb +41 -26
  28. data/lib/paper_trail/request.rb +0 -3
  29. data/lib/paper_trail/serializers/json.rb +0 -10
  30. data/lib/paper_trail/serializers/yaml.rb +19 -13
  31. data/lib/paper_trail/type_serializers/postgres_array_serializer.rb +1 -14
  32. data/lib/paper_trail/version_concern.rb +86 -41
  33. data/lib/paper_trail/version_number.rb +3 -3
  34. data/lib/paper_trail.rb +17 -40
  35. metadata +104 -43
  36. data/lib/paper_trail/frameworks/rails/engine.rb +0 -45
metadata CHANGED
@@ -1,16 +1,16 @@
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: 13.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Stewart
8
8
  - Ben Atkins
9
9
  - Jared Beck
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-07-31 00:00:00.000000000 Z
13
+ date: 2022-08-16 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.1'
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.1'
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.20'
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.20'
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: generator_spec
87
87
  requirement: !ruby/object:Gem::Requirement
@@ -102,140 +102,196 @@ 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.22.2
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.22.2
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.12.4
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.12.4
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.5.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.5.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.2
246
+ type: :development
247
+ prerelease: false
248
+ version_requirements: !ruby/object:Gem::Requirement
249
+ requirements:
250
+ - - "~>"
251
+ - !ruby/object:Gem::Version
252
+ version: 0.21.2
253
+ - !ruby/object:Gem::Dependency
254
+ name: mysql2
255
+ requirement: !ruby/object:Gem::Requirement
256
+ requirements:
257
+ - - "~>"
258
+ - !ruby/object:Gem::Version
259
+ version: 0.5.3
260
+ type: :development
261
+ prerelease: false
262
+ version_requirements: !ruby/object:Gem::Requirement
263
+ requirements:
264
+ - - "~>"
265
+ - !ruby/object:Gem::Version
266
+ version: 0.5.3
267
+ - !ruby/object:Gem::Dependency
268
+ name: pg
269
+ requirement: !ruby/object:Gem::Requirement
270
+ requirements:
271
+ - - "~>"
272
+ - !ruby/object:Gem::Version
273
+ version: '1.2'
218
274
  type: :development
219
275
  prerelease: false
220
276
  version_requirements: !ruby/object:Gem::Requirement
221
277
  requirements:
222
278
  - - "~>"
223
279
  - !ruby/object:Gem::Version
224
- version: 1.33.0
280
+ version: '1.2'
225
281
  - !ruby/object:Gem::Dependency
226
282
  name: sqlite3
227
283
  requirement: !ruby/object:Gem::Requirement
228
284
  requirements:
229
285
  - - "~>"
230
286
  - !ruby/object:Gem::Version
231
- version: 1.3.13
287
+ version: '1.4'
232
288
  type: :development
233
289
  prerelease: false
234
290
  version_requirements: !ruby/object:Gem::Requirement
235
291
  requirements:
236
292
  - - "~>"
237
293
  - !ruby/object:Gem::Version
238
- version: 1.3.13
294
+ version: '1.4'
239
295
  description: |
240
296
  Track changes to your models, for auditing or versioning. See how a model looked
241
297
  at any stage in its lifecycle, revert it to any version, or restore it after it
@@ -245,6 +301,7 @@ executables: []
245
301
  extensions: []
246
302
  extra_rdoc_files: []
247
303
  files:
304
+ - LICENSE
248
305
  - lib/generators/paper_trail/install/USAGE
249
306
  - lib/generators/paper_trail/install/install_generator.rb
250
307
  - lib/generators/paper_trail/install/templates/add_object_changes_to_versions.rb.erb
@@ -262,6 +319,7 @@ files:
262
319
  - lib/paper_trail/cleaner.rb
263
320
  - lib/paper_trail/compatibility.rb
264
321
  - lib/paper_trail/config.rb
322
+ - lib/paper_trail/errors.rb
265
323
  - lib/paper_trail/events/base.rb
266
324
  - lib/paper_trail/events/create.rb
267
325
  - lib/paper_trail/events/destroy.rb
@@ -271,13 +329,16 @@ files:
271
329
  - lib/paper_trail/frameworks/cucumber.rb
272
330
  - lib/paper_trail/frameworks/rails.rb
273
331
  - lib/paper_trail/frameworks/rails/controller.rb
274
- - lib/paper_trail/frameworks/rails/engine.rb
332
+ - lib/paper_trail/frameworks/rails/railtie.rb
275
333
  - lib/paper_trail/frameworks/rspec.rb
276
334
  - lib/paper_trail/frameworks/rspec/helpers.rb
277
335
  - lib/paper_trail/has_paper_trail.rb
278
336
  - lib/paper_trail/model_config.rb
337
+ - lib/paper_trail/queries/versions/where_attribute_changes.rb
279
338
  - lib/paper_trail/queries/versions/where_object.rb
280
339
  - lib/paper_trail/queries/versions/where_object_changes.rb
340
+ - lib/paper_trail/queries/versions/where_object_changes_from.rb
341
+ - lib/paper_trail/queries/versions/where_object_changes_to.rb
281
342
  - lib/paper_trail/record_history.rb
282
343
  - lib/paper_trail/record_trail.rb
283
344
  - lib/paper_trail/reifier.rb
@@ -291,7 +352,7 @@ homepage: https://github.com/paper-trail-gem/paper_trail
291
352
  licenses:
292
353
  - MIT
293
354
  metadata: {}
294
- post_install_message:
355
+ post_install_message:
295
356
  rdoc_options: []
296
357
  require_paths:
297
358
  - lib
@@ -299,15 +360,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
299
360
  requirements:
300
361
  - - ">="
301
362
  - !ruby/object:Gem::Version
302
- version: 2.3.0
363
+ version: 2.6.0
303
364
  required_rubygems_version: !ruby/object:Gem::Requirement
304
365
  requirements:
305
366
  - - ">="
306
367
  - !ruby/object:Gem::Version
307
368
  version: 1.3.6
308
369
  requirements: []
309
- rubygems_version: 3.0.3
310
- signing_key:
370
+ rubygems_version: 3.3.7
371
+ signing_key:
311
372
  specification_version: 4
312
373
  summary: Track changes to your models.
313
374
  test_files: []
@@ -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