paper_trail 9.2.0 → 12.2.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 +5 -3
  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 +14 -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 +320 -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 +65 -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 +127 -87
  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 +6 -13
  36. data/lib/paper_trail/type_serializers/postgres_array_serializer.rb +1 -15
  37. data/lib/paper_trail/version_concern.rb +142 -61
  38. data/lib/paper_trail/version_number.rb +1 -1
  39. data/lib/paper_trail.rb +18 -123
  40. metadata +147 -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.2.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: 2022-01-21 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.1'
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.1'
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.20'
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.20'
105
85
  - !ruby/object:Gem::Dependency
106
86
  name: generator_spec
107
87
  requirement: !ruby/object:Gem::Requirement
@@ -117,103 +97,201 @@ 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.22.2
162
+ type: :development
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "~>"
167
+ - !ruby/object:Gem::Version
168
+ version: 1.22.2
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.12.4
204
+ type: :development
205
+ prerelease: false
206
+ version_requirements: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - "~>"
209
+ - !ruby/object:Gem::Version
210
+ version: 2.12.4
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
182
218
  type: :development
183
219
  prerelease: false
184
220
  version_requirements: !ruby/object:Gem::Requirement
185
221
  requirements:
186
222
  - - "~>"
187
223
  - !ruby/object:Gem::Version
188
- version: 0.56.0
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.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'
196
274
  type: :development
197
275
  prerelease: false
198
276
  version_requirements: !ruby/object:Gem::Requirement
199
277
  requirements:
200
278
  - - "~>"
201
279
  - !ruby/object:Gem::Version
202
- version: 1.25.1
280
+ version: '1.2'
203
281
  - !ruby/object:Gem::Dependency
204
282
  name: sqlite3
205
283
  requirement: !ruby/object:Gem::Requirement
206
284
  requirements:
207
285
  - - "~>"
208
286
  - !ruby/object:Gem::Version
209
- version: '1.3'
287
+ version: '1.4'
210
288
  type: :development
211
289
  prerelease: false
212
290
  version_requirements: !ruby/object:Gem::Requirement
213
291
  requirements:
214
292
  - - "~>"
215
293
  - !ruby/object:Gem::Version
216
- version: '1.3'
294
+ version: '1.4'
217
295
  description: |
218
296
  Track changes to your models, for auditing or versioning. See how a model looked
219
297
  at any stage in its lifecycle, revert it to any version, or restore it after it
@@ -223,10 +301,15 @@ executables: []
223
301
  extensions: []
224
302
  extra_rdoc_files: []
225
303
  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
304
+ - LICENSE
305
+ - lib/generators/paper_trail/install/USAGE
306
+ - lib/generators/paper_trail/install/install_generator.rb
307
+ - lib/generators/paper_trail/install/templates/add_object_changes_to_versions.rb.erb
308
+ - lib/generators/paper_trail/install/templates/create_versions.rb.erb
309
+ - lib/generators/paper_trail/migration_generator.rb
310
+ - lib/generators/paper_trail/update_item_subtype/USAGE
311
+ - lib/generators/paper_trail/update_item_subtype/templates/update_versions_for_item_subtype.rb.erb
312
+ - lib/generators/paper_trail/update_item_subtype/update_item_subtype_generator.rb
230
313
  - lib/paper_trail.rb
231
314
  - lib/paper_trail/attribute_serializers/README.md
232
315
  - lib/paper_trail/attribute_serializers/attribute_serializer_factory.rb
@@ -234,19 +317,28 @@ files:
234
317
  - lib/paper_trail/attribute_serializers/object_attribute.rb
235
318
  - lib/paper_trail/attribute_serializers/object_changes_attribute.rb
236
319
  - lib/paper_trail/cleaner.rb
320
+ - lib/paper_trail/compatibility.rb
237
321
  - lib/paper_trail/config.rb
322
+ - lib/paper_trail/errors.rb
323
+ - lib/paper_trail/events/base.rb
324
+ - lib/paper_trail/events/create.rb
325
+ - lib/paper_trail/events/destroy.rb
326
+ - lib/paper_trail/events/update.rb
238
327
  - lib/paper_trail/frameworks/active_record.rb
239
328
  - lib/paper_trail/frameworks/active_record/models/paper_trail/version.rb
240
329
  - lib/paper_trail/frameworks/cucumber.rb
241
330
  - lib/paper_trail/frameworks/rails.rb
242
331
  - lib/paper_trail/frameworks/rails/controller.rb
243
- - lib/paper_trail/frameworks/rails/engine.rb
332
+ - lib/paper_trail/frameworks/rails/railtie.rb
244
333
  - lib/paper_trail/frameworks/rspec.rb
245
334
  - lib/paper_trail/frameworks/rspec/helpers.rb
246
335
  - lib/paper_trail/has_paper_trail.rb
247
336
  - lib/paper_trail/model_config.rb
337
+ - lib/paper_trail/queries/versions/where_attribute_changes.rb
248
338
  - lib/paper_trail/queries/versions/where_object.rb
249
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
250
342
  - lib/paper_trail/record_history.rb
251
343
  - lib/paper_trail/record_trail.rb
252
344
  - lib/paper_trail/reifier.rb
@@ -268,15 +360,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
268
360
  requirements:
269
361
  - - ">="
270
362
  - !ruby/object:Gem::Version
271
- version: 2.3.0
363
+ version: 2.6.0
272
364
  required_rubygems_version: !ruby/object:Gem::Requirement
273
365
  requirements:
274
366
  - - ">="
275
367
  - !ruby/object:Gem::Version
276
368
  version: 1.3.6
277
369
  requirements: []
278
- rubyforge_project:
279
- rubygems_version: 2.7.6
370
+ rubygems_version: 3.2.22
280
371
  signing_key:
281
372
  specification_version: 4
282
373
  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