paper_trail 10.3.1 → 14.0.0

Sign up to get free protection for your applications and to get access to all the features.
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 +17 -45
  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 +92 -69
  13. data/lib/paper_trail/events/destroy.rb +1 -1
  14. data/lib/paper_trail/events/update.rb +23 -7
  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 +46 -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 +9 -14
  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 +80 -64
  27. data/lib/paper_trail/reifier.rb +41 -26
  28. data/lib/paper_trail/request.rb +22 -25
  29. data/lib/paper_trail/serializers/json.rb +0 -10
  30. data/lib/paper_trail/serializers/yaml.rb +38 -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 +22 -40
  35. metadata +106 -45
  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: 14.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-11-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -18,70 +18,70 @@ dependencies:
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '4.2'
21
+ version: '6.0'
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: '6.0'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: request_store
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - "~>"
34
34
  - !ruby/object:Gem::Version
35
- version: '1.1'
35
+ version: '1.4'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: '1.1'
42
+ version: '1.4'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: appraisal
45
45
  requirement: !ruby/object:Gem::Requirement
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: '6.0'
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '6.0'
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.7.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