paper_trail 9.2.0 → 12.1.0

Sign up to get free protection for your applications and to get access to all the features.
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