paper_trail 9.2.0 → 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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +20 -0
  3. data/lib/generators/paper_trail/install/USAGE +3 -0
  4. data/lib/generators/paper_trail/{install_generator.rb → install/install_generator.rb} +15 -38
  5. data/lib/generators/paper_trail/{templates → install/templates}/add_object_changes_to_versions.rb.erb +0 -0
  6. data/lib/generators/paper_trail/{templates → install/templates}/create_versions.rb.erb +2 -2
  7. data/lib/generators/paper_trail/migration_generator.rb +38 -0
  8. data/lib/generators/paper_trail/update_item_subtype/USAGE +4 -0
  9. data/lib/generators/paper_trail/update_item_subtype/templates/update_versions_for_item_subtype.rb.erb +85 -0
  10. data/lib/generators/paper_trail/update_item_subtype/update_item_subtype_generator.rb +19 -0
  11. data/lib/paper_trail/attribute_serializers/attribute_serializer_factory.rb +24 -10
  12. data/lib/paper_trail/attribute_serializers/cast_attribute_serializer.rb +8 -46
  13. data/lib/paper_trail/compatibility.rb +51 -0
  14. data/lib/paper_trail/config.rb +9 -2
  15. data/lib/paper_trail/errors.rb +33 -0
  16. data/lib/paper_trail/events/base.rb +305 -0
  17. data/lib/paper_trail/events/create.rb +32 -0
  18. data/lib/paper_trail/events/destroy.rb +42 -0
  19. data/lib/paper_trail/events/update.rb +60 -0
  20. data/lib/paper_trail/frameworks/active_record.rb +9 -2
  21. data/lib/paper_trail/frameworks/rails/controller.rb +1 -9
  22. data/lib/paper_trail/frameworks/rails/railtie.rb +30 -0
  23. data/lib/paper_trail/frameworks/rails.rb +1 -2
  24. data/lib/paper_trail/has_paper_trail.rb +20 -17
  25. data/lib/paper_trail/model_config.rb +103 -71
  26. data/lib/paper_trail/queries/versions/where_attribute_changes.rb +50 -0
  27. data/lib/paper_trail/queries/versions/where_object.rb +4 -1
  28. data/lib/paper_trail/queries/versions/where_object_changes.rb +8 -13
  29. data/lib/paper_trail/queries/versions/where_object_changes_from.rb +57 -0
  30. data/lib/paper_trail/queries/versions/where_object_changes_to.rb +57 -0
  31. data/lib/paper_trail/record_trail.rb +94 -411
  32. data/lib/paper_trail/reifier.rb +41 -25
  33. data/lib/paper_trail/request.rb +0 -3
  34. data/lib/paper_trail/serializers/json.rb +0 -10
  35. data/lib/paper_trail/serializers/yaml.rb +5 -12
  36. data/lib/paper_trail/type_serializers/postgres_array_serializer.rb +1 -15
  37. data/lib/paper_trail/version_concern.rb +141 -61
  38. data/lib/paper_trail/version_number.rb +2 -2
  39. data/lib/paper_trail.rb +16 -123
  40. metadata +159 -56
  41. data/lib/generators/paper_trail/USAGE +0 -2
  42. data/lib/paper_trail/frameworks/rails/engine.rb +0 -14
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: 9.2.0
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: 2018-06-10 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,34 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '4.2'
22
- - - "<"
23
- - !ruby/object:Gem::Version
24
- version: '5.3'
21
+ version: '5.2'
25
22
  type: :runtime
26
23
  prerelease: false
27
24
  version_requirements: !ruby/object:Gem::Requirement
28
25
  requirements:
29
26
  - - ">="
30
27
  - !ruby/object:Gem::Version
31
- version: '4.2'
32
- - - "<"
33
- - !ruby/object:Gem::Version
34
- version: '5.3'
35
- - !ruby/object:Gem::Dependency
36
- name: paper_trail-association_tracking
37
- requirement: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "<"
40
- - !ruby/object:Gem::Version
41
- version: '2'
42
- type: :runtime
43
- prerelease: false
44
- version_requirements: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "<"
47
- - !ruby/object:Gem::Version
48
- version: '2'
28
+ version: '5.2'
49
29
  - !ruby/object:Gem::Dependency
50
30
  name: request_store
51
31
  requirement: !ruby/object:Gem::Requirement
@@ -66,42 +46,42 @@ dependencies:
66
46
  requirements:
67
47
  - - "~>"
68
48
  - !ruby/object:Gem::Version
69
- version: '2.2'
49
+ version: 2.4.1
70
50
  type: :development
71
51
  prerelease: false
72
52
  version_requirements: !ruby/object:Gem::Requirement
73
53
  requirements:
74
54
  - - "~>"
75
55
  - !ruby/object:Gem::Version
76
- version: '2.2'
56
+ version: 2.4.1
77
57
  - !ruby/object:Gem::Dependency
78
58
  name: byebug
79
59
  requirement: !ruby/object:Gem::Requirement
80
60
  requirements:
81
61
  - - "~>"
82
62
  - !ruby/object:Gem::Version
83
- version: '10.0'
63
+ version: '11.0'
84
64
  type: :development
85
65
  prerelease: false
86
66
  version_requirements: !ruby/object:Gem::Requirement
87
67
  requirements:
88
68
  - - "~>"
89
69
  - !ruby/object:Gem::Version
90
- version: '10.0'
70
+ version: '11.0'
91
71
  - !ruby/object:Gem::Dependency
92
72
  name: ffaker
93
73
  requirement: !ruby/object:Gem::Requirement
94
74
  requirements:
95
75
  - - "~>"
96
76
  - !ruby/object:Gem::Version
97
- version: '2.8'
77
+ version: 2.19.0
98
78
  type: :development
99
79
  prerelease: false
100
80
  version_requirements: !ruby/object:Gem::Requirement
101
81
  requirements:
102
82
  - - "~>"
103
83
  - !ruby/object:Gem::Version
104
- version: '2.8'
84
+ version: 2.19.0
105
85
  - !ruby/object:Gem::Dependency
106
86
  name: generator_spec
107
87
  requirement: !ruby/object:Gem::Requirement
@@ -117,103 +97,213 @@ dependencies:
117
97
  - !ruby/object:Gem::Version
118
98
  version: 0.9.4
119
99
  - !ruby/object:Gem::Dependency
120
- name: mysql2
100
+ name: memory_profiler
121
101
  requirement: !ruby/object:Gem::Requirement
122
102
  requirements:
123
103
  - - "~>"
124
104
  - !ruby/object:Gem::Version
125
- version: 0.4.10
105
+ version: 1.0.0
126
106
  type: :development
127
107
  prerelease: false
128
108
  version_requirements: !ruby/object:Gem::Requirement
129
109
  requirements:
130
110
  - - "~>"
131
111
  - !ruby/object:Gem::Version
132
- version: 0.4.10
112
+ version: 1.0.0
133
113
  - !ruby/object:Gem::Dependency
134
- name: pg
114
+ name: rails
135
115
  requirement: !ruby/object:Gem::Requirement
136
116
  requirements:
137
- - - "~>"
117
+ - - ">="
138
118
  - !ruby/object:Gem::Version
139
- version: 0.21.0
119
+ version: '5.2'
140
120
  type: :development
141
121
  prerelease: false
142
122
  version_requirements: !ruby/object:Gem::Requirement
143
123
  requirements:
144
- - - "~>"
124
+ - - ">="
145
125
  - !ruby/object:Gem::Version
146
- version: 0.21.0
126
+ version: '5.2'
147
127
  - !ruby/object:Gem::Dependency
148
128
  name: rake
149
129
  requirement: !ruby/object:Gem::Requirement
150
130
  requirements:
151
131
  - - "~>"
152
132
  - !ruby/object:Gem::Version
153
- version: '12.3'
133
+ version: '13.0'
154
134
  type: :development
155
135
  prerelease: false
156
136
  version_requirements: !ruby/object:Gem::Requirement
157
137
  requirements:
158
138
  - - "~>"
159
139
  - !ruby/object:Gem::Version
160
- version: '12.3'
140
+ version: '13.0'
161
141
  - !ruby/object:Gem::Dependency
162
142
  name: rspec-rails
163
143
  requirement: !ruby/object:Gem::Requirement
164
144
  requirements:
165
145
  - - "~>"
166
146
  - !ruby/object:Gem::Version
167
- version: 3.7.2
147
+ version: 5.0.2
168
148
  type: :development
169
149
  prerelease: false
170
150
  version_requirements: !ruby/object:Gem::Requirement
171
151
  requirements:
172
152
  - - "~>"
173
153
  - !ruby/object:Gem::Version
174
- version: 3.7.2
154
+ version: 5.0.2
175
155
  - !ruby/object:Gem::Dependency
176
156
  name: rubocop
177
157
  requirement: !ruby/object:Gem::Requirement
178
158
  requirements:
179
159
  - - "~>"
180
160
  - !ruby/object:Gem::Version
181
- version: 0.56.0
161
+ version: 1.20.0
162
+ type: :development
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "~>"
167
+ - !ruby/object:Gem::Version
168
+ version: 1.20.0
169
+ - !ruby/object:Gem::Dependency
170
+ name: rubocop-packaging
171
+ requirement: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - "~>"
174
+ - !ruby/object:Gem::Version
175
+ version: 0.5.1
176
+ type: :development
177
+ prerelease: false
178
+ version_requirements: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - "~>"
181
+ - !ruby/object:Gem::Version
182
+ version: 0.5.1
183
+ - !ruby/object:Gem::Dependency
184
+ name: rubocop-performance
185
+ requirement: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: 1.11.5
190
+ type: :development
191
+ prerelease: false
192
+ version_requirements: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - "~>"
195
+ - !ruby/object:Gem::Version
196
+ version: 1.11.5
197
+ - !ruby/object:Gem::Dependency
198
+ name: rubocop-rails
199
+ requirement: !ruby/object:Gem::Requirement
200
+ requirements:
201
+ - - "~>"
202
+ - !ruby/object:Gem::Version
203
+ version: 2.11.3
182
204
  type: :development
183
205
  prerelease: false
184
206
  version_requirements: !ruby/object:Gem::Requirement
185
207
  requirements:
186
208
  - - "~>"
187
209
  - !ruby/object:Gem::Version
188
- version: 0.56.0
210
+ version: 2.11.3
211
+ - !ruby/object:Gem::Dependency
212
+ name: rubocop-rake
213
+ requirement: !ruby/object:Gem::Requirement
214
+ requirements:
215
+ - - "~>"
216
+ - !ruby/object:Gem::Version
217
+ version: 0.6.0
218
+ type: :development
219
+ prerelease: false
220
+ version_requirements: !ruby/object:Gem::Requirement
221
+ requirements:
222
+ - - "~>"
223
+ - !ruby/object:Gem::Version
224
+ version: 0.6.0
189
225
  - !ruby/object:Gem::Dependency
190
226
  name: rubocop-rspec
191
227
  requirement: !ruby/object:Gem::Requirement
192
228
  requirements:
193
229
  - - "~>"
194
230
  - !ruby/object:Gem::Version
195
- version: 1.25.1
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'
196
266
  type: :development
197
267
  prerelease: false
198
268
  version_requirements: !ruby/object:Gem::Requirement
199
269
  requirements:
200
270
  - - "~>"
201
271
  - !ruby/object:Gem::Version
202
- version: 1.25.1
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'
203
293
  - !ruby/object:Gem::Dependency
204
294
  name: sqlite3
205
295
  requirement: !ruby/object:Gem::Requirement
206
296
  requirements:
207
297
  - - "~>"
208
298
  - !ruby/object:Gem::Version
209
- version: '1.3'
299
+ version: '1.4'
210
300
  type: :development
211
301
  prerelease: false
212
302
  version_requirements: !ruby/object:Gem::Requirement
213
303
  requirements:
214
304
  - - "~>"
215
305
  - !ruby/object:Gem::Version
216
- version: '1.3'
306
+ version: '1.4'
217
307
  description: |
218
308
  Track changes to your models, for auditing or versioning. See how a model looked
219
309
  at any stage in its lifecycle, revert it to any version, or restore it after it
@@ -223,10 +313,15 @@ executables: []
223
313
  extensions: []
224
314
  extra_rdoc_files: []
225
315
  files:
226
- - lib/generators/paper_trail/USAGE
227
- - lib/generators/paper_trail/install_generator.rb
228
- - lib/generators/paper_trail/templates/add_object_changes_to_versions.rb.erb
229
- - lib/generators/paper_trail/templates/create_versions.rb.erb
316
+ - LICENSE
317
+ - lib/generators/paper_trail/install/USAGE
318
+ - lib/generators/paper_trail/install/install_generator.rb
319
+ - lib/generators/paper_trail/install/templates/add_object_changes_to_versions.rb.erb
320
+ - lib/generators/paper_trail/install/templates/create_versions.rb.erb
321
+ - lib/generators/paper_trail/migration_generator.rb
322
+ - lib/generators/paper_trail/update_item_subtype/USAGE
323
+ - lib/generators/paper_trail/update_item_subtype/templates/update_versions_for_item_subtype.rb.erb
324
+ - lib/generators/paper_trail/update_item_subtype/update_item_subtype_generator.rb
230
325
  - lib/paper_trail.rb
231
326
  - lib/paper_trail/attribute_serializers/README.md
232
327
  - lib/paper_trail/attribute_serializers/attribute_serializer_factory.rb
@@ -234,19 +329,28 @@ files:
234
329
  - lib/paper_trail/attribute_serializers/object_attribute.rb
235
330
  - lib/paper_trail/attribute_serializers/object_changes_attribute.rb
236
331
  - lib/paper_trail/cleaner.rb
332
+ - lib/paper_trail/compatibility.rb
237
333
  - lib/paper_trail/config.rb
334
+ - lib/paper_trail/errors.rb
335
+ - lib/paper_trail/events/base.rb
336
+ - lib/paper_trail/events/create.rb
337
+ - lib/paper_trail/events/destroy.rb
338
+ - lib/paper_trail/events/update.rb
238
339
  - lib/paper_trail/frameworks/active_record.rb
239
340
  - lib/paper_trail/frameworks/active_record/models/paper_trail/version.rb
240
341
  - lib/paper_trail/frameworks/cucumber.rb
241
342
  - lib/paper_trail/frameworks/rails.rb
242
343
  - lib/paper_trail/frameworks/rails/controller.rb
243
- - lib/paper_trail/frameworks/rails/engine.rb
344
+ - lib/paper_trail/frameworks/rails/railtie.rb
244
345
  - lib/paper_trail/frameworks/rspec.rb
245
346
  - lib/paper_trail/frameworks/rspec/helpers.rb
246
347
  - lib/paper_trail/has_paper_trail.rb
247
348
  - lib/paper_trail/model_config.rb
349
+ - lib/paper_trail/queries/versions/where_attribute_changes.rb
248
350
  - lib/paper_trail/queries/versions/where_object.rb
249
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
250
354
  - lib/paper_trail/record_history.rb
251
355
  - lib/paper_trail/record_trail.rb
252
356
  - lib/paper_trail/reifier.rb
@@ -268,15 +372,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
268
372
  requirements:
269
373
  - - ">="
270
374
  - !ruby/object:Gem::Version
271
- version: 2.3.0
375
+ version: 2.5.0
272
376
  required_rubygems_version: !ruby/object:Gem::Requirement
273
377
  requirements:
274
378
  - - ">="
275
379
  - !ruby/object:Gem::Version
276
380
  version: 1.3.6
277
381
  requirements: []
278
- rubyforge_project:
279
- rubygems_version: 2.7.6
382
+ rubygems_version: 3.2.22
280
383
  signing_key:
281
384
  specification_version: 4
282
385
  summary: Track changes to your models.
@@ -1,2 +0,0 @@
1
- Description:
2
- Generates (but does not run) a migration to add a versions table.
@@ -1,14 +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
- paths["app/models"] << "lib/paper_trail/frameworks/active_record/models"
8
- config.paper_trail = ActiveSupport::OrderedOptions.new
9
- initializer "paper_trail.initialisation" do |app|
10
- PaperTrail.enabled = app.config.paper_trail.fetch(:enabled, true)
11
- end
12
- end
13
- end
14
- end