paper_trail 7.0.3 → 7.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CONTRIBUTING.md +21 -27
  3. data/.gitignore +4 -4
  4. data/.rubocop.yml +2 -2
  5. data/CHANGELOG.md +17 -0
  6. data/README.md +31 -2
  7. data/Rakefile +4 -1
  8. data/lib/paper_trail.rb +2 -0
  9. data/lib/paper_trail/serializers/json.rb +9 -0
  10. data/lib/paper_trail/version_concern.rb +1 -1
  11. data/lib/paper_trail/version_number.rb +2 -2
  12. data/paper_trail.gemspec +2 -3
  13. data/spec/controllers/widgets_controller_spec.rb +85 -0
  14. data/{test/dummy → spec/dummy_app}/Rakefile +0 -0
  15. data/{test/dummy → spec/dummy_app}/app/controllers/application_controller.rb +0 -0
  16. data/{test/dummy → spec/dummy_app}/app/controllers/articles_controller.rb +0 -0
  17. data/{test/dummy → spec/dummy_app}/app/controllers/test_controller.rb +0 -0
  18. data/{test/dummy → spec/dummy_app}/app/controllers/widgets_controller.rb +0 -0
  19. data/{test/dummy → spec/dummy_app}/app/models/animal.rb +0 -0
  20. data/{test/dummy → spec/dummy_app}/app/models/article.rb +1 -0
  21. data/{test/dummy → spec/dummy_app}/app/models/authorship.rb +0 -0
  22. data/{test/dummy → spec/dummy_app}/app/models/bar_habtm.rb +0 -0
  23. data/{test/dummy → spec/dummy_app}/app/models/book.rb +0 -0
  24. data/{test/dummy → spec/dummy_app}/app/models/boolit.rb +0 -0
  25. data/{test/dummy → spec/dummy_app}/app/models/callback_modifier.rb +0 -0
  26. data/{test/dummy → spec/dummy_app}/app/models/car.rb +0 -0
  27. data/{test/dummy → spec/dummy_app}/app/models/cat.rb +0 -0
  28. data/{test/dummy → spec/dummy_app}/app/models/chapter.rb +0 -0
  29. data/{test/dummy → spec/dummy_app}/app/models/citation.rb +0 -0
  30. data/{test/dummy → spec/dummy_app}/app/models/custom_primary_key_record.rb +0 -0
  31. data/{test/dummy → spec/dummy_app}/app/models/customer.rb +0 -0
  32. data/spec/dummy_app/app/models/document.rb +8 -0
  33. data/{test/dummy → spec/dummy_app}/app/models/dog.rb +0 -0
  34. data/{test/dummy → spec/dummy_app}/app/models/editor.rb +0 -0
  35. data/{test/dummy → spec/dummy_app}/app/models/editorship.rb +0 -0
  36. data/{test/dummy → spec/dummy_app}/app/models/elephant.rb +0 -0
  37. data/{test/dummy → spec/dummy_app}/app/models/fluxor.rb +0 -0
  38. data/{test/dummy → spec/dummy_app}/app/models/foo_habtm.rb +0 -0
  39. data/{test/dummy → spec/dummy_app}/app/models/foo_widget.rb +0 -0
  40. data/{test/dummy → spec/dummy_app}/app/models/fruit.rb +0 -0
  41. data/{test/dummy → spec/dummy_app}/app/models/gadget.rb +0 -0
  42. data/{test/dummy → spec/dummy_app}/app/models/kitchen/banana.rb +0 -0
  43. data/spec/dummy_app/app/models/legacy_widget.rb +6 -0
  44. data/{test/dummy → spec/dummy_app}/app/models/line_item.rb +0 -0
  45. data/{test/dummy → spec/dummy_app}/app/models/not_on_update.rb +0 -0
  46. data/{test/dummy → spec/dummy_app}/app/models/on/create.rb +0 -0
  47. data/{test/dummy → spec/dummy_app}/app/models/on/destroy.rb +0 -0
  48. data/{test/dummy → spec/dummy_app}/app/models/on/empty_array.rb +0 -0
  49. data/{test/dummy → spec/dummy_app}/app/models/on/update.rb +0 -0
  50. data/{test/dummy → spec/dummy_app}/app/models/order.rb +0 -0
  51. data/{test/dummy → spec/dummy_app}/app/models/paragraph.rb +0 -0
  52. data/{test/dummy → spec/dummy_app}/app/models/person.rb +0 -0
  53. data/{test/dummy → spec/dummy_app}/app/models/post.rb +0 -0
  54. data/{test/dummy → spec/dummy_app}/app/models/post_with_status.rb +0 -0
  55. data/{test/dummy → spec/dummy_app}/app/models/quotation.rb +0 -0
  56. data/{test/dummy → spec/dummy_app}/app/models/section.rb +0 -0
  57. data/{test/dummy → spec/dummy_app}/app/models/skipper.rb +0 -0
  58. data/{test/dummy → spec/dummy_app}/app/models/song.rb +0 -0
  59. data/{test/dummy → spec/dummy_app}/app/models/thing.rb +0 -0
  60. data/spec/dummy_app/app/models/translation.rb +11 -0
  61. data/{test/dummy → spec/dummy_app}/app/models/truck.rb +0 -0
  62. data/{test/dummy → spec/dummy_app}/app/models/vehicle.rb +0 -0
  63. data/{test/dummy → spec/dummy_app}/app/models/whatchamajigger.rb +0 -0
  64. data/{test/dummy → spec/dummy_app}/app/models/widget.rb +0 -0
  65. data/{test/dummy → spec/dummy_app}/app/models/wotsit.rb +0 -0
  66. data/{test/dummy → spec/dummy_app}/app/versions/custom_primary_key_record_version.rb +0 -0
  67. data/{test/dummy → spec/dummy_app}/app/versions/joined_version.rb +0 -0
  68. data/{test/dummy → spec/dummy_app}/app/versions/json_version.rb +0 -0
  69. data/{test/dummy → spec/dummy_app}/app/versions/kitchen/banana_version.rb +0 -0
  70. data/{test/dummy → spec/dummy_app}/app/versions/post_version.rb +0 -0
  71. data/{test/dummy → spec/dummy_app}/config.ru +0 -0
  72. data/{test/dummy → spec/dummy_app}/config/application.rb +0 -0
  73. data/{test/dummy → spec/dummy_app}/config/boot.rb +0 -0
  74. data/{test/dummy → spec/dummy_app}/config/database.mysql.yml +0 -0
  75. data/{test/dummy → spec/dummy_app}/config/database.postgres.yml +0 -0
  76. data/{test/dummy → spec/dummy_app}/config/database.sqlite.yml +0 -0
  77. data/{test/dummy → spec/dummy_app}/config/environment.rb +0 -0
  78. data/{test/dummy → spec/dummy_app}/config/environments/development.rb +0 -0
  79. data/{test/dummy → spec/dummy_app}/config/environments/production.rb +0 -0
  80. data/{test/dummy → spec/dummy_app}/config/environments/test.rb +0 -0
  81. data/{test/dummy → spec/dummy_app}/config/initializers/backtrace_silencers.rb +0 -0
  82. data/{test/dummy → spec/dummy_app}/config/initializers/inflections.rb +0 -0
  83. data/{test/dummy → spec/dummy_app}/config/initializers/mime_types.rb +0 -0
  84. data/{test/dummy → spec/dummy_app}/config/initializers/paper_trail.rb +0 -0
  85. data/{test/dummy → spec/dummy_app}/config/initializers/secret_token.rb +0 -0
  86. data/{test/dummy → spec/dummy_app}/config/initializers/session_store.rb +0 -0
  87. data/{test/dummy → spec/dummy_app}/config/locales/en.yml +0 -0
  88. data/{test/dummy → spec/dummy_app}/config/routes.rb +0 -0
  89. data/{test/dummy → spec/dummy_app}/db/migrate/20110208155312_set_up_test_tables.rb +0 -0
  90. data/{test/dummy → spec/dummy_app}/db/schema.rb +0 -0
  91. data/spec/models/article_spec.rb +186 -0
  92. data/spec/models/document_spec.rb +41 -5
  93. data/spec/models/legacy_widget_spec.rb +40 -0
  94. data/spec/models/on/create_spec.rb +27 -0
  95. data/spec/models/on/destroy_spec.rb +27 -0
  96. data/spec/models/on/empty_array_spec.rb +30 -0
  97. data/spec/models/on/update_spec.rb +27 -0
  98. data/spec/models/translation_spec.rb +70 -0
  99. data/spec/models/version_spec.rb +7 -3
  100. data/spec/paper_trail/config_spec.rb +12 -0
  101. data/spec/paper_trail/model_spec.rb +0 -429
  102. data/spec/paper_trail/serializers/custom_json_serializer_spec.rb +18 -0
  103. data/spec/paper_trail/thread_safety_spec.rb +44 -0
  104. data/spec/paper_trail_spec.rb +9 -0
  105. data/spec/spec_helper.rb +6 -10
  106. metadata +178 -179
  107. data/test/dummy/app/models/document.rb +0 -6
  108. data/test/dummy/app/models/legacy_widget.rb +0 -3
  109. data/test/dummy/app/models/translation.rb +0 -6
  110. data/test/functional/controller_test.rb +0 -90
  111. data/test/functional/thread_safety_test.rb +0 -46
  112. data/test/test_helper.rb +0 -68
  113. data/test/unit/serializers/mixin_json_test.rb +0 -39
@@ -0,0 +1,18 @@
1
+ require "spec_helper"
2
+ require_relative "../../support/custom_json_serializer"
3
+
4
+ RSpec.describe CustomJsonSerializer do
5
+ describe ".load" do
6
+ it "deserializes, removing pairs with blank keys or values" do
7
+ hash = { "key1" => "banana", "tkey" => nil, "" => "foo" }
8
+ expect(described_class.load(hash.to_json)).to(eq("key1" => "banana"))
9
+ end
10
+ end
11
+
12
+ describe ".dump" do
13
+ it "serializes to JSON, removing pairs with nil values" do
14
+ hash = { "key1" => "banana", "tkey" => nil, "" => "foo" }
15
+ expect(described_class.dump(hash)).to(eq('{"key1":"banana","":"foo"}'))
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,44 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe PaperTrail do
4
+ describe "#set_paper_trail_whodunnit" do
5
+ it "is thread-safe" do
6
+ blocked = true
7
+ slow_thread = Thread.new do
8
+ controller = TestController.new
9
+ controller.send(:set_paper_trail_whodunnit)
10
+ sleep(0.001) while blocked
11
+ described_class.whodunnit
12
+ end
13
+ fast_thread = Thread.new do
14
+ controller = TestController.new
15
+ controller.send(:set_paper_trail_whodunnit)
16
+ who = described_class.whodunnit
17
+ blocked = false
18
+ who
19
+ end
20
+ expect(fast_thread.value).not_to(eq(slow_thread.value))
21
+ end
22
+ end
23
+
24
+ describe "#without_versioning" do
25
+ it "is thread-safe" do
26
+ enabled = nil
27
+ slow_thread = Thread.new do
28
+ Widget.new.paper_trail.without_versioning do
29
+ sleep(0.01)
30
+ enabled = Widget.paper_trail.enabled?
31
+ sleep(0.01)
32
+ end
33
+ enabled
34
+ end
35
+ fast_thread = Thread.new do
36
+ sleep(0.005)
37
+ Widget.paper_trail.enabled?
38
+ end
39
+ expect(fast_thread.value).not_to(eq(slow_thread.value))
40
+ expect(Widget.paper_trail.enabled?).to(eq(true))
41
+ expect(described_class.enabled_for_model?(Widget)).to(eq(true))
42
+ end
43
+ end
44
+ end
@@ -101,6 +101,15 @@ RSpec.describe PaperTrail do
101
101
  expect(described_class.whodunnit).to be_nil
102
102
  end
103
103
  end
104
+
105
+ context "when set to a proc" do
106
+ it "evaluates the proc each time a version is made" do
107
+ call_count = 0
108
+ described_class.whodunnit = proc { call_count += 1 }
109
+ expect(described_class.whodunnit).to eq(1)
110
+ expect(described_class.whodunnit).to eq(2)
111
+ end
112
+ end
104
113
  end
105
114
 
106
115
  describe ".controller_info" do
data/spec/spec_helper.rb CHANGED
@@ -1,13 +1,13 @@
1
+ require "pry"
2
+
1
3
  # This file is copied to spec/ when you run 'rails generate rspec:install'
2
4
  ENV["RAILS_ENV"] ||= "test"
3
5
  ENV["DB"] ||= "sqlite"
4
6
 
5
- unless File.exist?(File.expand_path("../../test/dummy/config/database.yml", __FILE__))
7
+ unless File.exist?(File.expand_path("dummy_app/config/database.yml", __dir__))
6
8
  warn "WARNING: No database.yml detected for the dummy app, please run `rake prepare` first"
7
9
  end
8
10
 
9
- require "pry"
10
-
11
11
  RSpec.configure do |config|
12
12
  config.expect_with :rspec do |expectations|
13
13
  expectations.include_chain_clauses_in_custom_matcher_descriptions = true
@@ -52,18 +52,14 @@ def params_wrapper(args)
52
52
  end
53
53
  end
54
54
 
55
- require File.expand_path("../../test/dummy/config/environment", __FILE__)
55
+ require File.expand_path("../dummy_app/config/environment", __FILE__)
56
56
  require "rspec/rails"
57
57
  require "paper_trail/frameworks/rspec"
58
58
  require "ffaker"
59
59
  require "timecop"
60
60
 
61
- # prevent Test::Unit's AutoRunner from executing during RSpec's rake task
62
- Test::Unit.run = true if defined?(Test::Unit) && Test::Unit.respond_to?(:run=)
63
-
64
- # Checks for pending migrations before tests are run.
65
- # If you are not using ActiveRecord, you can remove this line.
66
- ActiveRecord::Migration.check_pending! if ActiveRecord::Migration.respond_to?(:check_pending!)
61
+ # Run any available migration
62
+ ActiveRecord::Migrator.migrate File.expand_path("dummy_app/db/migrate/", __dir__)
67
63
 
68
64
  require "database_cleaner"
69
65
  DatabaseCleaner.strategy = :truncation
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paper_trail
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.3
4
+ version: 7.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Stewart
8
8
  - Ben Atkins
9
+ - Jared Beck
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2017-06-01 00:00:00.000000000 Z
13
+ date: 2017-07-09 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: activerecord
@@ -73,20 +74,6 @@ dependencies:
73
74
  - - "~>"
74
75
  - !ruby/object:Gem::Version
75
76
  version: '12.0'
76
- - !ruby/object:Gem::Dependency
77
- name: shoulda
78
- requirement: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '3.5'
83
- type: :development
84
- prerelease: false
85
- version_requirements: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '3.5'
90
77
  - !ruby/object:Gem::Dependency
91
78
  name: ffaker
92
79
  requirement: !ruby/object:Gem::Requirement
@@ -348,8 +335,87 @@ files:
348
335
  - lib/paper_trail/version_number.rb
349
336
  - paper_trail.gemspec
350
337
  - spec/controllers/articles_controller_spec.rb
338
+ - spec/controllers/widgets_controller_spec.rb
339
+ - spec/dummy_app/Rakefile
340
+ - spec/dummy_app/app/controllers/application_controller.rb
341
+ - spec/dummy_app/app/controllers/articles_controller.rb
342
+ - spec/dummy_app/app/controllers/test_controller.rb
343
+ - spec/dummy_app/app/controllers/widgets_controller.rb
344
+ - spec/dummy_app/app/models/animal.rb
345
+ - spec/dummy_app/app/models/article.rb
346
+ - spec/dummy_app/app/models/authorship.rb
347
+ - spec/dummy_app/app/models/bar_habtm.rb
348
+ - spec/dummy_app/app/models/book.rb
349
+ - spec/dummy_app/app/models/boolit.rb
350
+ - spec/dummy_app/app/models/callback_modifier.rb
351
+ - spec/dummy_app/app/models/car.rb
352
+ - spec/dummy_app/app/models/cat.rb
353
+ - spec/dummy_app/app/models/chapter.rb
354
+ - spec/dummy_app/app/models/citation.rb
355
+ - spec/dummy_app/app/models/custom_primary_key_record.rb
356
+ - spec/dummy_app/app/models/customer.rb
357
+ - spec/dummy_app/app/models/document.rb
358
+ - spec/dummy_app/app/models/dog.rb
359
+ - spec/dummy_app/app/models/editor.rb
360
+ - spec/dummy_app/app/models/editorship.rb
361
+ - spec/dummy_app/app/models/elephant.rb
362
+ - spec/dummy_app/app/models/fluxor.rb
363
+ - spec/dummy_app/app/models/foo_habtm.rb
364
+ - spec/dummy_app/app/models/foo_widget.rb
365
+ - spec/dummy_app/app/models/fruit.rb
366
+ - spec/dummy_app/app/models/gadget.rb
367
+ - spec/dummy_app/app/models/kitchen/banana.rb
368
+ - spec/dummy_app/app/models/legacy_widget.rb
369
+ - spec/dummy_app/app/models/line_item.rb
370
+ - spec/dummy_app/app/models/not_on_update.rb
371
+ - spec/dummy_app/app/models/on/create.rb
372
+ - spec/dummy_app/app/models/on/destroy.rb
373
+ - spec/dummy_app/app/models/on/empty_array.rb
374
+ - spec/dummy_app/app/models/on/update.rb
375
+ - spec/dummy_app/app/models/order.rb
376
+ - spec/dummy_app/app/models/paragraph.rb
377
+ - spec/dummy_app/app/models/person.rb
378
+ - spec/dummy_app/app/models/post.rb
379
+ - spec/dummy_app/app/models/post_with_status.rb
380
+ - spec/dummy_app/app/models/quotation.rb
381
+ - spec/dummy_app/app/models/section.rb
382
+ - spec/dummy_app/app/models/skipper.rb
383
+ - spec/dummy_app/app/models/song.rb
384
+ - spec/dummy_app/app/models/thing.rb
385
+ - spec/dummy_app/app/models/translation.rb
386
+ - spec/dummy_app/app/models/truck.rb
387
+ - spec/dummy_app/app/models/vehicle.rb
388
+ - spec/dummy_app/app/models/whatchamajigger.rb
389
+ - spec/dummy_app/app/models/widget.rb
390
+ - spec/dummy_app/app/models/wotsit.rb
391
+ - spec/dummy_app/app/versions/custom_primary_key_record_version.rb
392
+ - spec/dummy_app/app/versions/joined_version.rb
393
+ - spec/dummy_app/app/versions/json_version.rb
394
+ - spec/dummy_app/app/versions/kitchen/banana_version.rb
395
+ - spec/dummy_app/app/versions/post_version.rb
396
+ - spec/dummy_app/config.ru
397
+ - spec/dummy_app/config/application.rb
398
+ - spec/dummy_app/config/boot.rb
399
+ - spec/dummy_app/config/database.mysql.yml
400
+ - spec/dummy_app/config/database.postgres.yml
401
+ - spec/dummy_app/config/database.sqlite.yml
402
+ - spec/dummy_app/config/environment.rb
403
+ - spec/dummy_app/config/environments/development.rb
404
+ - spec/dummy_app/config/environments/production.rb
405
+ - spec/dummy_app/config/environments/test.rb
406
+ - spec/dummy_app/config/initializers/backtrace_silencers.rb
407
+ - spec/dummy_app/config/initializers/inflections.rb
408
+ - spec/dummy_app/config/initializers/mime_types.rb
409
+ - spec/dummy_app/config/initializers/paper_trail.rb
410
+ - spec/dummy_app/config/initializers/secret_token.rb
411
+ - spec/dummy_app/config/initializers/session_store.rb
412
+ - spec/dummy_app/config/locales/en.yml
413
+ - spec/dummy_app/config/routes.rb
414
+ - spec/dummy_app/db/migrate/20110208155312_set_up_test_tables.rb
415
+ - spec/dummy_app/db/schema.rb
351
416
  - spec/generators/install_generator_spec.rb
352
417
  - spec/models/animal_spec.rb
418
+ - spec/models/article_spec.rb
353
419
  - spec/models/boolit_spec.rb
354
420
  - spec/models/callback_modifier_spec.rb
355
421
  - spec/models/car_spec.rb
@@ -359,10 +425,16 @@ files:
359
425
  - spec/models/joined_version_spec.rb
360
426
  - spec/models/json_version_spec.rb
361
427
  - spec/models/kitchen/banana_spec.rb
428
+ - spec/models/legacy_widget_spec.rb
362
429
  - spec/models/not_on_update_spec.rb
430
+ - spec/models/on/create_spec.rb
431
+ - spec/models/on/destroy_spec.rb
432
+ - spec/models/on/empty_array_spec.rb
433
+ - spec/models/on/update_spec.rb
363
434
  - spec/models/post_with_status_spec.rb
364
435
  - spec/models/skipper_spec.rb
365
436
  - spec/models/thing_spec.rb
437
+ - spec/models/translation_spec.rb
366
438
  - spec/models/vehicle_spec.rb
367
439
  - spec/models/version_spec.rb
368
440
  - spec/models/widget_spec.rb
@@ -374,9 +446,11 @@ files:
374
446
  - spec/paper_trail/config_spec.rb
375
447
  - spec/paper_trail/model_spec.rb
376
448
  - spec/paper_trail/serializer_spec.rb
449
+ - spec/paper_trail/serializers/custom_json_serializer_spec.rb
377
450
  - spec/paper_trail/serializers/custom_yaml_serializer_spec.rb
378
451
  - spec/paper_trail/serializers/json_spec.rb
379
452
  - spec/paper_trail/serializers/yaml_spec.rb
453
+ - spec/paper_trail/thread_safety_spec.rb
380
454
  - spec/paper_trail/version_limit_spec.rb
381
455
  - spec/paper_trail/version_spec.rb
382
456
  - spec/paper_trail_spec.rb
@@ -384,87 +458,6 @@ files:
384
458
  - spec/spec_helper.rb
385
459
  - spec/support/alt_db_init.rb
386
460
  - spec/support/custom_json_serializer.rb
387
- - test/dummy/Rakefile
388
- - test/dummy/app/controllers/application_controller.rb
389
- - test/dummy/app/controllers/articles_controller.rb
390
- - test/dummy/app/controllers/test_controller.rb
391
- - test/dummy/app/controllers/widgets_controller.rb
392
- - test/dummy/app/models/animal.rb
393
- - test/dummy/app/models/article.rb
394
- - test/dummy/app/models/authorship.rb
395
- - test/dummy/app/models/bar_habtm.rb
396
- - test/dummy/app/models/book.rb
397
- - test/dummy/app/models/boolit.rb
398
- - test/dummy/app/models/callback_modifier.rb
399
- - test/dummy/app/models/car.rb
400
- - test/dummy/app/models/cat.rb
401
- - test/dummy/app/models/chapter.rb
402
- - test/dummy/app/models/citation.rb
403
- - test/dummy/app/models/custom_primary_key_record.rb
404
- - test/dummy/app/models/customer.rb
405
- - test/dummy/app/models/document.rb
406
- - test/dummy/app/models/dog.rb
407
- - test/dummy/app/models/editor.rb
408
- - test/dummy/app/models/editorship.rb
409
- - test/dummy/app/models/elephant.rb
410
- - test/dummy/app/models/fluxor.rb
411
- - test/dummy/app/models/foo_habtm.rb
412
- - test/dummy/app/models/foo_widget.rb
413
- - test/dummy/app/models/fruit.rb
414
- - test/dummy/app/models/gadget.rb
415
- - test/dummy/app/models/kitchen/banana.rb
416
- - test/dummy/app/models/legacy_widget.rb
417
- - test/dummy/app/models/line_item.rb
418
- - test/dummy/app/models/not_on_update.rb
419
- - test/dummy/app/models/on/create.rb
420
- - test/dummy/app/models/on/destroy.rb
421
- - test/dummy/app/models/on/empty_array.rb
422
- - test/dummy/app/models/on/update.rb
423
- - test/dummy/app/models/order.rb
424
- - test/dummy/app/models/paragraph.rb
425
- - test/dummy/app/models/person.rb
426
- - test/dummy/app/models/post.rb
427
- - test/dummy/app/models/post_with_status.rb
428
- - test/dummy/app/models/quotation.rb
429
- - test/dummy/app/models/section.rb
430
- - test/dummy/app/models/skipper.rb
431
- - test/dummy/app/models/song.rb
432
- - test/dummy/app/models/thing.rb
433
- - test/dummy/app/models/translation.rb
434
- - test/dummy/app/models/truck.rb
435
- - test/dummy/app/models/vehicle.rb
436
- - test/dummy/app/models/whatchamajigger.rb
437
- - test/dummy/app/models/widget.rb
438
- - test/dummy/app/models/wotsit.rb
439
- - test/dummy/app/versions/custom_primary_key_record_version.rb
440
- - test/dummy/app/versions/joined_version.rb
441
- - test/dummy/app/versions/json_version.rb
442
- - test/dummy/app/versions/kitchen/banana_version.rb
443
- - test/dummy/app/versions/post_version.rb
444
- - test/dummy/config.ru
445
- - test/dummy/config/application.rb
446
- - test/dummy/config/boot.rb
447
- - test/dummy/config/database.mysql.yml
448
- - test/dummy/config/database.postgres.yml
449
- - test/dummy/config/database.sqlite.yml
450
- - test/dummy/config/environment.rb
451
- - test/dummy/config/environments/development.rb
452
- - test/dummy/config/environments/production.rb
453
- - test/dummy/config/environments/test.rb
454
- - test/dummy/config/initializers/backtrace_silencers.rb
455
- - test/dummy/config/initializers/inflections.rb
456
- - test/dummy/config/initializers/mime_types.rb
457
- - test/dummy/config/initializers/paper_trail.rb
458
- - test/dummy/config/initializers/secret_token.rb
459
- - test/dummy/config/initializers/session_store.rb
460
- - test/dummy/config/locales/en.yml
461
- - test/dummy/config/routes.rb
462
- - test/dummy/db/migrate/20110208155312_set_up_test_tables.rb
463
- - test/dummy/db/schema.rb
464
- - test/functional/controller_test.rb
465
- - test/functional/thread_safety_test.rb
466
- - test/test_helper.rb
467
- - test/unit/serializers/mixin_json_test.rb
468
461
  homepage: https://github.com/airblade/paper_trail
469
462
  licenses:
470
463
  - MIT
@@ -485,14 +478,93 @@ required_rubygems_version: !ruby/object:Gem::Requirement
485
478
  version: 1.3.6
486
479
  requirements: []
487
480
  rubyforge_project:
488
- rubygems_version: 2.6.10
481
+ rubygems_version: 2.6.12
489
482
  signing_key:
490
483
  specification_version: 4
491
484
  summary: Track changes to your models.
492
485
  test_files:
493
486
  - spec/controllers/articles_controller_spec.rb
487
+ - spec/controllers/widgets_controller_spec.rb
488
+ - spec/dummy_app/Rakefile
489
+ - spec/dummy_app/app/controllers/application_controller.rb
490
+ - spec/dummy_app/app/controllers/articles_controller.rb
491
+ - spec/dummy_app/app/controllers/test_controller.rb
492
+ - spec/dummy_app/app/controllers/widgets_controller.rb
493
+ - spec/dummy_app/app/models/animal.rb
494
+ - spec/dummy_app/app/models/article.rb
495
+ - spec/dummy_app/app/models/authorship.rb
496
+ - spec/dummy_app/app/models/bar_habtm.rb
497
+ - spec/dummy_app/app/models/book.rb
498
+ - spec/dummy_app/app/models/boolit.rb
499
+ - spec/dummy_app/app/models/callback_modifier.rb
500
+ - spec/dummy_app/app/models/car.rb
501
+ - spec/dummy_app/app/models/cat.rb
502
+ - spec/dummy_app/app/models/chapter.rb
503
+ - spec/dummy_app/app/models/citation.rb
504
+ - spec/dummy_app/app/models/custom_primary_key_record.rb
505
+ - spec/dummy_app/app/models/customer.rb
506
+ - spec/dummy_app/app/models/document.rb
507
+ - spec/dummy_app/app/models/dog.rb
508
+ - spec/dummy_app/app/models/editor.rb
509
+ - spec/dummy_app/app/models/editorship.rb
510
+ - spec/dummy_app/app/models/elephant.rb
511
+ - spec/dummy_app/app/models/fluxor.rb
512
+ - spec/dummy_app/app/models/foo_habtm.rb
513
+ - spec/dummy_app/app/models/foo_widget.rb
514
+ - spec/dummy_app/app/models/fruit.rb
515
+ - spec/dummy_app/app/models/gadget.rb
516
+ - spec/dummy_app/app/models/kitchen/banana.rb
517
+ - spec/dummy_app/app/models/legacy_widget.rb
518
+ - spec/dummy_app/app/models/line_item.rb
519
+ - spec/dummy_app/app/models/not_on_update.rb
520
+ - spec/dummy_app/app/models/on/create.rb
521
+ - spec/dummy_app/app/models/on/destroy.rb
522
+ - spec/dummy_app/app/models/on/empty_array.rb
523
+ - spec/dummy_app/app/models/on/update.rb
524
+ - spec/dummy_app/app/models/order.rb
525
+ - spec/dummy_app/app/models/paragraph.rb
526
+ - spec/dummy_app/app/models/person.rb
527
+ - spec/dummy_app/app/models/post.rb
528
+ - spec/dummy_app/app/models/post_with_status.rb
529
+ - spec/dummy_app/app/models/quotation.rb
530
+ - spec/dummy_app/app/models/section.rb
531
+ - spec/dummy_app/app/models/skipper.rb
532
+ - spec/dummy_app/app/models/song.rb
533
+ - spec/dummy_app/app/models/thing.rb
534
+ - spec/dummy_app/app/models/translation.rb
535
+ - spec/dummy_app/app/models/truck.rb
536
+ - spec/dummy_app/app/models/vehicle.rb
537
+ - spec/dummy_app/app/models/whatchamajigger.rb
538
+ - spec/dummy_app/app/models/widget.rb
539
+ - spec/dummy_app/app/models/wotsit.rb
540
+ - spec/dummy_app/app/versions/custom_primary_key_record_version.rb
541
+ - spec/dummy_app/app/versions/joined_version.rb
542
+ - spec/dummy_app/app/versions/json_version.rb
543
+ - spec/dummy_app/app/versions/kitchen/banana_version.rb
544
+ - spec/dummy_app/app/versions/post_version.rb
545
+ - spec/dummy_app/config.ru
546
+ - spec/dummy_app/config/application.rb
547
+ - spec/dummy_app/config/boot.rb
548
+ - spec/dummy_app/config/database.mysql.yml
549
+ - spec/dummy_app/config/database.postgres.yml
550
+ - spec/dummy_app/config/database.sqlite.yml
551
+ - spec/dummy_app/config/environment.rb
552
+ - spec/dummy_app/config/environments/development.rb
553
+ - spec/dummy_app/config/environments/production.rb
554
+ - spec/dummy_app/config/environments/test.rb
555
+ - spec/dummy_app/config/initializers/backtrace_silencers.rb
556
+ - spec/dummy_app/config/initializers/inflections.rb
557
+ - spec/dummy_app/config/initializers/mime_types.rb
558
+ - spec/dummy_app/config/initializers/paper_trail.rb
559
+ - spec/dummy_app/config/initializers/secret_token.rb
560
+ - spec/dummy_app/config/initializers/session_store.rb
561
+ - spec/dummy_app/config/locales/en.yml
562
+ - spec/dummy_app/config/routes.rb
563
+ - spec/dummy_app/db/migrate/20110208155312_set_up_test_tables.rb
564
+ - spec/dummy_app/db/schema.rb
494
565
  - spec/generators/install_generator_spec.rb
495
566
  - spec/models/animal_spec.rb
567
+ - spec/models/article_spec.rb
496
568
  - spec/models/boolit_spec.rb
497
569
  - spec/models/callback_modifier_spec.rb
498
570
  - spec/models/car_spec.rb
@@ -502,10 +574,16 @@ test_files:
502
574
  - spec/models/joined_version_spec.rb
503
575
  - spec/models/json_version_spec.rb
504
576
  - spec/models/kitchen/banana_spec.rb
577
+ - spec/models/legacy_widget_spec.rb
505
578
  - spec/models/not_on_update_spec.rb
579
+ - spec/models/on/create_spec.rb
580
+ - spec/models/on/destroy_spec.rb
581
+ - spec/models/on/empty_array_spec.rb
582
+ - spec/models/on/update_spec.rb
506
583
  - spec/models/post_with_status_spec.rb
507
584
  - spec/models/skipper_spec.rb
508
585
  - spec/models/thing_spec.rb
586
+ - spec/models/translation_spec.rb
509
587
  - spec/models/vehicle_spec.rb
510
588
  - spec/models/version_spec.rb
511
589
  - spec/models/widget_spec.rb
@@ -517,9 +595,11 @@ test_files:
517
595
  - spec/paper_trail/config_spec.rb
518
596
  - spec/paper_trail/model_spec.rb
519
597
  - spec/paper_trail/serializer_spec.rb
598
+ - spec/paper_trail/serializers/custom_json_serializer_spec.rb
520
599
  - spec/paper_trail/serializers/custom_yaml_serializer_spec.rb
521
600
  - spec/paper_trail/serializers/json_spec.rb
522
601
  - spec/paper_trail/serializers/yaml_spec.rb
602
+ - spec/paper_trail/thread_safety_spec.rb
523
603
  - spec/paper_trail/version_limit_spec.rb
524
604
  - spec/paper_trail/version_spec.rb
525
605
  - spec/paper_trail_spec.rb
@@ -527,84 +607,3 @@ test_files:
527
607
  - spec/spec_helper.rb
528
608
  - spec/support/alt_db_init.rb
529
609
  - spec/support/custom_json_serializer.rb
530
- - test/dummy/Rakefile
531
- - test/dummy/app/controllers/application_controller.rb
532
- - test/dummy/app/controllers/articles_controller.rb
533
- - test/dummy/app/controllers/test_controller.rb
534
- - test/dummy/app/controllers/widgets_controller.rb
535
- - test/dummy/app/models/animal.rb
536
- - test/dummy/app/models/article.rb
537
- - test/dummy/app/models/authorship.rb
538
- - test/dummy/app/models/bar_habtm.rb
539
- - test/dummy/app/models/book.rb
540
- - test/dummy/app/models/boolit.rb
541
- - test/dummy/app/models/callback_modifier.rb
542
- - test/dummy/app/models/car.rb
543
- - test/dummy/app/models/cat.rb
544
- - test/dummy/app/models/chapter.rb
545
- - test/dummy/app/models/citation.rb
546
- - test/dummy/app/models/custom_primary_key_record.rb
547
- - test/dummy/app/models/customer.rb
548
- - test/dummy/app/models/document.rb
549
- - test/dummy/app/models/dog.rb
550
- - test/dummy/app/models/editor.rb
551
- - test/dummy/app/models/editorship.rb
552
- - test/dummy/app/models/elephant.rb
553
- - test/dummy/app/models/fluxor.rb
554
- - test/dummy/app/models/foo_habtm.rb
555
- - test/dummy/app/models/foo_widget.rb
556
- - test/dummy/app/models/fruit.rb
557
- - test/dummy/app/models/gadget.rb
558
- - test/dummy/app/models/kitchen/banana.rb
559
- - test/dummy/app/models/legacy_widget.rb
560
- - test/dummy/app/models/line_item.rb
561
- - test/dummy/app/models/not_on_update.rb
562
- - test/dummy/app/models/on/create.rb
563
- - test/dummy/app/models/on/destroy.rb
564
- - test/dummy/app/models/on/empty_array.rb
565
- - test/dummy/app/models/on/update.rb
566
- - test/dummy/app/models/order.rb
567
- - test/dummy/app/models/paragraph.rb
568
- - test/dummy/app/models/person.rb
569
- - test/dummy/app/models/post.rb
570
- - test/dummy/app/models/post_with_status.rb
571
- - test/dummy/app/models/quotation.rb
572
- - test/dummy/app/models/section.rb
573
- - test/dummy/app/models/skipper.rb
574
- - test/dummy/app/models/song.rb
575
- - test/dummy/app/models/thing.rb
576
- - test/dummy/app/models/translation.rb
577
- - test/dummy/app/models/truck.rb
578
- - test/dummy/app/models/vehicle.rb
579
- - test/dummy/app/models/whatchamajigger.rb
580
- - test/dummy/app/models/widget.rb
581
- - test/dummy/app/models/wotsit.rb
582
- - test/dummy/app/versions/custom_primary_key_record_version.rb
583
- - test/dummy/app/versions/joined_version.rb
584
- - test/dummy/app/versions/json_version.rb
585
- - test/dummy/app/versions/kitchen/banana_version.rb
586
- - test/dummy/app/versions/post_version.rb
587
- - test/dummy/config.ru
588
- - test/dummy/config/application.rb
589
- - test/dummy/config/boot.rb
590
- - test/dummy/config/database.mysql.yml
591
- - test/dummy/config/database.postgres.yml
592
- - test/dummy/config/database.sqlite.yml
593
- - test/dummy/config/environment.rb
594
- - test/dummy/config/environments/development.rb
595
- - test/dummy/config/environments/production.rb
596
- - test/dummy/config/environments/test.rb
597
- - test/dummy/config/initializers/backtrace_silencers.rb
598
- - test/dummy/config/initializers/inflections.rb
599
- - test/dummy/config/initializers/mime_types.rb
600
- - test/dummy/config/initializers/paper_trail.rb
601
- - test/dummy/config/initializers/secret_token.rb
602
- - test/dummy/config/initializers/session_store.rb
603
- - test/dummy/config/locales/en.yml
604
- - test/dummy/config/routes.rb
605
- - test/dummy/db/migrate/20110208155312_set_up_test_tables.rb
606
- - test/dummy/db/schema.rb
607
- - test/functional/controller_test.rb
608
- - test/functional/thread_safety_test.rb
609
- - test/test_helper.rb
610
- - test/unit/serializers/mixin_json_test.rb