paper_trail 3.0.9 → 4.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rspec +1 -2
  4. data/.travis.yml +5 -0
  5. data/CHANGELOG.md +37 -23
  6. data/README.md +170 -63
  7. data/gemfiles/3.0.gemfile +10 -4
  8. data/lib/generators/paper_trail/install_generator.rb +19 -3
  9. data/lib/generators/paper_trail/templates/add_transaction_id_column_to_versions.rb +11 -0
  10. data/lib/generators/paper_trail/templates/create_version_associations.rb +17 -0
  11. data/lib/paper_trail.rb +24 -4
  12. data/lib/paper_trail/cleaner.rb +3 -3
  13. data/lib/paper_trail/config.rb +17 -0
  14. data/lib/paper_trail/frameworks/active_record/models/paper_trail/version_association.rb +7 -0
  15. data/lib/paper_trail/frameworks/rails.rb +1 -0
  16. data/lib/paper_trail/frameworks/rspec.rb +5 -0
  17. data/lib/paper_trail/has_paper_trail.rb +112 -38
  18. data/lib/paper_trail/version_association_concern.rb +13 -0
  19. data/lib/paper_trail/version_concern.rb +145 -38
  20. data/lib/paper_trail/version_number.rb +3 -3
  21. data/paper_trail.gemspec +11 -4
  22. data/spec/generators/install_generator_spec.rb +4 -4
  23. data/spec/models/fluxor_spec.rb +19 -0
  24. data/spec/models/gadget_spec.rb +10 -10
  25. data/spec/models/joined_version_spec.rb +9 -9
  26. data/spec/models/post_with_status_spec.rb +3 -3
  27. data/spec/models/version_spec.rb +49 -71
  28. data/spec/models/widget_spec.rb +124 -71
  29. data/spec/modules/version_concern_spec.rb +8 -8
  30. data/spec/modules/version_number_spec.rb +16 -16
  31. data/spec/paper_trail_spec.rb +17 -17
  32. data/spec/rails_helper.rb +34 -0
  33. data/spec/requests/articles_spec.rb +11 -11
  34. data/spec/spec_helper.rb +77 -36
  35. data/test/dummy/app/models/animal.rb +0 -2
  36. data/test/dummy/app/models/book.rb +4 -0
  37. data/test/dummy/app/models/customer.rb +4 -0
  38. data/test/dummy/app/models/editor.rb +4 -0
  39. data/test/dummy/app/models/editorship.rb +5 -0
  40. data/test/dummy/app/models/line_item.rb +4 -0
  41. data/test/dummy/app/models/order.rb +5 -0
  42. data/test/dummy/app/models/person.rb +1 -1
  43. data/test/dummy/app/models/post.rb +0 -1
  44. data/test/dummy/app/models/song.rb +0 -20
  45. data/test/dummy/app/models/widget.rb +4 -0
  46. data/test/dummy/config/application.rb +3 -0
  47. data/test/dummy/config/initializers/paper_trail.rb +1 -1
  48. data/test/dummy/db/migrate/20110208155312_set_up_test_tables.rb +41 -0
  49. data/test/dummy/db/schema.rb +95 -25
  50. data/test/dummy/public/404.html +26 -0
  51. data/test/dummy/public/422.html +26 -0
  52. data/test/dummy/public/500.html +26 -0
  53. data/test/dummy/public/favicon.ico +0 -0
  54. data/test/dummy/public/javascripts/application.js +2 -0
  55. data/test/dummy/public/javascripts/controls.js +965 -0
  56. data/test/dummy/public/javascripts/dragdrop.js +974 -0
  57. data/test/dummy/public/javascripts/effects.js +1123 -0
  58. data/test/dummy/public/javascripts/rails.js +175 -0
  59. data/test/dummy/public/stylesheets/.gitkeep +0 -0
  60. data/test/test_helper.rb +2 -2
  61. data/test/time_travel_helper.rb +15 -0
  62. data/test/unit/model_test.rb +613 -185
  63. data/test/unit/serializer_test.rb +3 -3
  64. metadata +104 -54
  65. data/spec/models/animal_spec.rb +0 -19
  66. data/test/dummy/public/javascripts/prototype.js +0 -6001
@@ -10,7 +10,7 @@ class SerializerTest < ActiveSupport::TestCase
10
10
  END
11
11
 
12
12
  @fluxor = Fluxor.create :name => 'Some text.'
13
- @original_fluxor_attributes = @fluxor.send(:item_before_change) # this is exactly what PaperTrail serializes
13
+ @original_fluxor_attributes = @fluxor.send(:item_before_change).attributes # this is exactly what PaperTrail serializes
14
14
  @fluxor.update_attributes :name => 'Some more text.'
15
15
  end
16
16
 
@@ -41,7 +41,7 @@ class SerializerTest < ActiveSupport::TestCase
41
41
  END
42
42
 
43
43
  @fluxor = Fluxor.create :name => 'Some text.'
44
- @original_fluxor_attributes = @fluxor.send(:item_before_change) # this is exactly what PaperTrail serializes
44
+ @original_fluxor_attributes = @fluxor.send(:item_before_change).attributes # this is exactly what PaperTrail serializes
45
45
  @fluxor.update_attributes :name => 'Some more text.'
46
46
  end
47
47
 
@@ -83,7 +83,7 @@ class SerializerTest < ActiveSupport::TestCase
83
83
  END
84
84
 
85
85
  @fluxor = Fluxor.create
86
- @original_fluxor_attributes = @fluxor.send(:item_before_change).reject { |k,v| v.nil? } # this is exactly what PaperTrail serializes
86
+ @original_fluxor_attributes = @fluxor.send(:item_before_change).attributes.reject { |k,v| v.nil? } # this is exactly what PaperTrail serializes
87
87
  @fluxor.update_attributes :name => 'Some more text.'
88
88
  end
89
89
 
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: 3.0.9
4
+ version: 4.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Stewart
@@ -9,220 +9,234 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-12-14 00:00:00.000000000 Z
12
+ date: 2014-12-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ">="
18
+ - - '>='
19
19
  - !ruby/object:Gem::Version
20
20
  version: '3.0'
21
- - - "<"
21
+ - - <
22
22
  - !ruby/object:Gem::Version
23
- version: '5.0'
23
+ version: '6.0'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
- - - ">="
28
+ - - '>='
29
29
  - !ruby/object:Gem::Version
30
30
  version: '3.0'
31
- - - "<"
31
+ - - <
32
32
  - !ruby/object:Gem::Version
33
- version: '5.0'
33
+ version: '6.0'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: activesupport
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.0'
41
- - - "<"
41
+ - - <
42
42
  - !ruby/object:Gem::Version
43
- version: '5.0'
43
+ version: '6.0'
44
44
  type: :runtime
45
45
  prerelease: false
46
46
  version_requirements: !ruby/object:Gem::Requirement
47
47
  requirements:
48
- - - ">="
48
+ - - '>='
49
49
  - !ruby/object:Gem::Version
50
50
  version: '3.0'
51
- - - "<"
51
+ - - <
52
52
  - !ruby/object:Gem::Version
53
- version: '5.0'
53
+ version: '6.0'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: rake
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - "~>"
58
+ - - ~>
59
59
  - !ruby/object:Gem::Version
60
60
  version: 10.1.1
61
61
  type: :development
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - "~>"
65
+ - - ~>
66
66
  - !ruby/object:Gem::Version
67
67
  version: 10.1.1
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: shoulda
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - "~>"
72
+ - - ~>
73
73
  - !ruby/object:Gem::Version
74
74
  version: '3.5'
75
75
  type: :development
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - "~>"
79
+ - - ~>
80
80
  - !ruby/object:Gem::Version
81
81
  version: '3.5'
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: ffaker
84
84
  requirement: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - "<="
86
+ - - '>='
87
87
  - !ruby/object:Gem::Version
88
- version: 1.31.0
88
+ version: '1.15'
89
89
  type: :development
90
90
  prerelease: false
91
91
  version_requirements: !ruby/object:Gem::Requirement
92
92
  requirements:
93
- - - "<="
93
+ - - '>='
94
94
  - !ruby/object:Gem::Version
95
- version: 1.31.0
95
+ version: '1.15'
96
96
  - !ruby/object:Gem::Dependency
97
97
  name: railties
98
98
  requirement: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - ">="
100
+ - - '>='
101
101
  - !ruby/object:Gem::Version
102
102
  version: '3.0'
103
- - - "<"
103
+ - - <
104
104
  - !ruby/object:Gem::Version
105
105
  version: '5.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
112
  version: '3.0'
113
- - - "<"
113
+ - - <
114
114
  - !ruby/object:Gem::Version
115
115
  version: '5.0'
116
116
  - !ruby/object:Gem::Dependency
117
117
  name: sinatra
118
118
  requirement: !ruby/object:Gem::Requirement
119
119
  requirements:
120
- - - "~>"
120
+ - - ~>
121
121
  - !ruby/object:Gem::Version
122
122
  version: '1.0'
123
123
  type: :development
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - "~>"
127
+ - - ~>
128
128
  - !ruby/object:Gem::Version
129
129
  version: '1.0'
130
130
  - !ruby/object:Gem::Dependency
131
131
  name: rack-test
132
132
  requirement: !ruby/object:Gem::Requirement
133
133
  requirements:
134
- - - ">="
134
+ - - '>='
135
135
  - !ruby/object:Gem::Version
136
136
  version: '0.6'
137
137
  type: :development
138
138
  prerelease: false
139
139
  version_requirements: !ruby/object:Gem::Requirement
140
140
  requirements:
141
- - - ">="
141
+ - - '>='
142
142
  - !ruby/object:Gem::Version
143
143
  version: '0.6'
144
144
  - !ruby/object:Gem::Dependency
145
145
  name: rspec-rails
146
146
  requirement: !ruby/object:Gem::Requirement
147
147
  requirements:
148
- - - "~>"
148
+ - - ~>
149
149
  - !ruby/object:Gem::Version
150
- version: '2.14'
150
+ version: 3.1.0
151
151
  type: :development
152
152
  prerelease: false
153
153
  version_requirements: !ruby/object:Gem::Requirement
154
154
  requirements:
155
- - - "~>"
155
+ - - ~>
156
156
  - !ruby/object:Gem::Version
157
- version: '2.14'
157
+ version: 3.1.0
158
158
  - !ruby/object:Gem::Dependency
159
159
  name: generator_spec
160
160
  requirement: !ruby/object:Gem::Requirement
161
161
  requirements:
162
- - - ">="
162
+ - - '>='
163
163
  - !ruby/object:Gem::Version
164
164
  version: '0'
165
165
  type: :development
166
166
  prerelease: false
167
167
  version_requirements: !ruby/object:Gem::Requirement
168
168
  requirements:
169
- - - ">="
169
+ - - '>='
170
170
  - !ruby/object:Gem::Version
171
171
  version: '0'
172
172
  - !ruby/object:Gem::Dependency
173
173
  name: database_cleaner
174
174
  requirement: !ruby/object:Gem::Requirement
175
175
  requirements:
176
- - - "~>"
176
+ - - ~>
177
177
  - !ruby/object:Gem::Version
178
178
  version: '1.2'
179
179
  type: :development
180
180
  prerelease: false
181
181
  version_requirements: !ruby/object:Gem::Requirement
182
182
  requirements:
183
- - - "~>"
183
+ - - ~>
184
184
  - !ruby/object:Gem::Version
185
185
  version: '1.2'
186
+ - !ruby/object:Gem::Dependency
187
+ name: timecop
188
+ requirement: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - '>='
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ type: :development
194
+ prerelease: false
195
+ version_requirements: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - '>='
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
186
200
  - !ruby/object:Gem::Dependency
187
201
  name: sqlite3
188
202
  requirement: !ruby/object:Gem::Requirement
189
203
  requirements:
190
- - - "~>"
204
+ - - ~>
191
205
  - !ruby/object:Gem::Version
192
206
  version: '1.2'
193
207
  type: :development
194
208
  prerelease: false
195
209
  version_requirements: !ruby/object:Gem::Requirement
196
210
  requirements:
197
- - - "~>"
211
+ - - ~>
198
212
  - !ruby/object:Gem::Version
199
213
  version: '1.2'
200
214
  - !ruby/object:Gem::Dependency
201
215
  name: mysql2
202
216
  requirement: !ruby/object:Gem::Requirement
203
217
  requirements:
204
- - - "~>"
218
+ - - ~>
205
219
  - !ruby/object:Gem::Version
206
220
  version: '0.3'
207
221
  type: :development
208
222
  prerelease: false
209
223
  version_requirements: !ruby/object:Gem::Requirement
210
224
  requirements:
211
- - - "~>"
225
+ - - ~>
212
226
  - !ruby/object:Gem::Version
213
227
  version: '0.3'
214
228
  - !ruby/object:Gem::Dependency
215
229
  name: pg
216
230
  requirement: !ruby/object:Gem::Requirement
217
231
  requirements:
218
- - - "~>"
232
+ - - ~>
219
233
  - !ruby/object:Gem::Version
220
234
  version: '0.17'
221
235
  type: :development
222
236
  prerelease: false
223
237
  version_requirements: !ruby/object:Gem::Requirement
224
238
  requirements:
225
- - - "~>"
239
+ - - ~>
226
240
  - !ruby/object:Gem::Version
227
241
  version: '0.17'
228
242
  description: Track changes to your models' data. Good for auditing or versioning.
@@ -231,9 +245,9 @@ executables: []
231
245
  extensions: []
232
246
  extra_rdoc_files: []
233
247
  files:
234
- - ".gitignore"
235
- - ".rspec"
236
- - ".travis.yml"
248
+ - .gitignore
249
+ - .rspec
250
+ - .travis.yml
237
251
  - CHANGELOG.md
238
252
  - Gemfile
239
253
  - MIT-LICENSE
@@ -243,12 +257,15 @@ files:
243
257
  - lib/generators/paper_trail/USAGE
244
258
  - lib/generators/paper_trail/install_generator.rb
245
259
  - lib/generators/paper_trail/templates/add_object_changes_to_versions.rb
260
+ - lib/generators/paper_trail/templates/add_transaction_id_column_to_versions.rb
261
+ - lib/generators/paper_trail/templates/create_version_associations.rb
246
262
  - lib/generators/paper_trail/templates/create_versions.rb
247
263
  - lib/paper_trail.rb
248
264
  - lib/paper_trail/cleaner.rb
249
265
  - lib/paper_trail/config.rb
250
266
  - lib/paper_trail/frameworks/active_record.rb
251
267
  - lib/paper_trail/frameworks/active_record/models/paper_trail/version.rb
268
+ - lib/paper_trail/frameworks/active_record/models/paper_trail/version_association.rb
252
269
  - lib/paper_trail/frameworks/cucumber.rb
253
270
  - lib/paper_trail/frameworks/rails.rb
254
271
  - lib/paper_trail/frameworks/rails/controller.rb
@@ -259,11 +276,12 @@ files:
259
276
  - lib/paper_trail/has_paper_trail.rb
260
277
  - lib/paper_trail/serializers/json.rb
261
278
  - lib/paper_trail/serializers/yaml.rb
279
+ - lib/paper_trail/version_association_concern.rb
262
280
  - lib/paper_trail/version_concern.rb
263
281
  - lib/paper_trail/version_number.rb
264
282
  - paper_trail.gemspec
265
283
  - spec/generators/install_generator_spec.rb
266
- - spec/models/animal_spec.rb
284
+ - spec/models/fluxor_spec.rb
267
285
  - spec/models/gadget_spec.rb
268
286
  - spec/models/joined_version_spec.rb
269
287
  - spec/models/post_with_status_spec.rb
@@ -272,6 +290,7 @@ files:
272
290
  - spec/modules/version_concern_spec.rb
273
291
  - spec/modules/version_number_spec.rb
274
292
  - spec/paper_trail_spec.rb
293
+ - spec/rails_helper.rb
275
294
  - spec/requests/articles_spec.rb
276
295
  - spec/spec_helper.rb
277
296
  - spec/support/alt_db_init.rb
@@ -287,13 +306,18 @@ files:
287
306
  - test/dummy/app/models/authorship.rb
288
307
  - test/dummy/app/models/book.rb
289
308
  - test/dummy/app/models/cat.rb
309
+ - test/dummy/app/models/customer.rb
290
310
  - test/dummy/app/models/document.rb
291
311
  - test/dummy/app/models/dog.rb
312
+ - test/dummy/app/models/editor.rb
313
+ - test/dummy/app/models/editorship.rb
292
314
  - test/dummy/app/models/elephant.rb
293
315
  - test/dummy/app/models/fluxor.rb
294
316
  - test/dummy/app/models/foo_widget.rb
295
317
  - test/dummy/app/models/gadget.rb
296
318
  - test/dummy/app/models/legacy_widget.rb
319
+ - test/dummy/app/models/line_item.rb
320
+ - test/dummy/app/models/order.rb
297
321
  - test/dummy/app/models/person.rb
298
322
  - test/dummy/app/models/post.rb
299
323
  - test/dummy/app/models/post_with_status.rb
@@ -325,7 +349,16 @@ files:
325
349
  - test/dummy/config/routes.rb
326
350
  - test/dummy/db/migrate/20110208155312_set_up_test_tables.rb
327
351
  - test/dummy/db/schema.rb
328
- - test/dummy/public/javascripts/prototype.js
352
+ - test/dummy/public/404.html
353
+ - test/dummy/public/422.html
354
+ - test/dummy/public/500.html
355
+ - test/dummy/public/favicon.ico
356
+ - test/dummy/public/javascripts/application.js
357
+ - test/dummy/public/javascripts/controls.js
358
+ - test/dummy/public/javascripts/dragdrop.js
359
+ - test/dummy/public/javascripts/effects.js
360
+ - test/dummy/public/javascripts/rails.js
361
+ - test/dummy/public/stylesheets/.gitkeep
329
362
  - test/dummy/script/rails
330
363
  - test/functional/controller_test.rb
331
364
  - test/functional/enabled_for_controller_test.rb
@@ -334,6 +367,7 @@ files:
334
367
  - test/functional/thread_safety_test.rb
335
368
  - test/paper_trail_test.rb
336
369
  - test/test_helper.rb
370
+ - test/time_travel_helper.rb
337
371
  - test/unit/cleaner_test.rb
338
372
  - test/unit/inheritance_column_test.rb
339
373
  - test/unit/model_test.rb
@@ -355,23 +389,23 @@ require_paths:
355
389
  - lib
356
390
  required_ruby_version: !ruby/object:Gem::Requirement
357
391
  requirements:
358
- - - ">="
392
+ - - '>='
359
393
  - !ruby/object:Gem::Version
360
394
  version: '0'
361
395
  required_rubygems_version: !ruby/object:Gem::Requirement
362
396
  requirements:
363
- - - ">="
397
+ - - '>='
364
398
  - !ruby/object:Gem::Version
365
399
  version: 1.3.6
366
400
  requirements: []
367
401
  rubyforge_project:
368
- rubygems_version: 2.4.6
402
+ rubygems_version: 2.4.4
369
403
  signing_key:
370
404
  specification_version: 4
371
405
  summary: Track changes to your models' data. Good for auditing or versioning.
372
406
  test_files:
373
407
  - spec/generators/install_generator_spec.rb
374
- - spec/models/animal_spec.rb
408
+ - spec/models/fluxor_spec.rb
375
409
  - spec/models/gadget_spec.rb
376
410
  - spec/models/joined_version_spec.rb
377
411
  - spec/models/post_with_status_spec.rb
@@ -380,6 +414,7 @@ test_files:
380
414
  - spec/modules/version_concern_spec.rb
381
415
  - spec/modules/version_number_spec.rb
382
416
  - spec/paper_trail_spec.rb
417
+ - spec/rails_helper.rb
383
418
  - spec/requests/articles_spec.rb
384
419
  - spec/spec_helper.rb
385
420
  - spec/support/alt_db_init.rb
@@ -395,13 +430,18 @@ test_files:
395
430
  - test/dummy/app/models/authorship.rb
396
431
  - test/dummy/app/models/book.rb
397
432
  - test/dummy/app/models/cat.rb
433
+ - test/dummy/app/models/customer.rb
398
434
  - test/dummy/app/models/document.rb
399
435
  - test/dummy/app/models/dog.rb
436
+ - test/dummy/app/models/editor.rb
437
+ - test/dummy/app/models/editorship.rb
400
438
  - test/dummy/app/models/elephant.rb
401
439
  - test/dummy/app/models/fluxor.rb
402
440
  - test/dummy/app/models/foo_widget.rb
403
441
  - test/dummy/app/models/gadget.rb
404
442
  - test/dummy/app/models/legacy_widget.rb
443
+ - test/dummy/app/models/line_item.rb
444
+ - test/dummy/app/models/order.rb
405
445
  - test/dummy/app/models/person.rb
406
446
  - test/dummy/app/models/post.rb
407
447
  - test/dummy/app/models/post_with_status.rb
@@ -433,7 +473,16 @@ test_files:
433
473
  - test/dummy/config/routes.rb
434
474
  - test/dummy/db/migrate/20110208155312_set_up_test_tables.rb
435
475
  - test/dummy/db/schema.rb
436
- - test/dummy/public/javascripts/prototype.js
476
+ - test/dummy/public/404.html
477
+ - test/dummy/public/422.html
478
+ - test/dummy/public/500.html
479
+ - test/dummy/public/favicon.ico
480
+ - test/dummy/public/javascripts/application.js
481
+ - test/dummy/public/javascripts/controls.js
482
+ - test/dummy/public/javascripts/dragdrop.js
483
+ - test/dummy/public/javascripts/effects.js
484
+ - test/dummy/public/javascripts/rails.js
485
+ - test/dummy/public/stylesheets/.gitkeep
437
486
  - test/dummy/script/rails
438
487
  - test/functional/controller_test.rb
439
488
  - test/functional/enabled_for_controller_test.rb
@@ -442,6 +491,7 @@ test_files:
442
491
  - test/functional/thread_safety_test.rb
443
492
  - test/paper_trail_test.rb
444
493
  - test/test_helper.rb
494
+ - test/time_travel_helper.rb
445
495
  - test/unit/cleaner_test.rb
446
496
  - test/unit/inheritance_column_test.rb
447
497
  - test/unit/model_test.rb