paper_trail 4.0.0 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CONTRIBUTING.md +105 -0
  3. data/.github/ISSUE_TEMPLATE.md +13 -0
  4. data/.gitignore +2 -0
  5. data/.rubocop.yml +100 -0
  6. data/.rubocop_todo.yml +14 -0
  7. data/.travis.yml +11 -10
  8. data/Appraisals +37 -0
  9. data/CHANGELOG.md +173 -8
  10. data/Gemfile +1 -1
  11. data/README.md +641 -470
  12. data/Rakefile +19 -19
  13. data/doc/bug_report_template.rb +71 -0
  14. data/doc/warning_about_not_setting_whodunnit.md +32 -0
  15. data/gemfiles/ar3.gemfile +18 -0
  16. data/gemfiles/ar4.gemfile +7 -0
  17. data/gemfiles/ar5.gemfile +13 -0
  18. data/lib/generators/paper_trail/install_generator.rb +26 -18
  19. data/lib/generators/paper_trail/templates/add_object_changes_to_versions.rb +3 -1
  20. data/lib/generators/paper_trail/templates/add_transaction_id_column_to_versions.rb +2 -0
  21. data/lib/generators/paper_trail/templates/create_version_associations.rb +9 -4
  22. data/lib/generators/paper_trail/templates/create_versions.rb +53 -5
  23. data/lib/paper_trail/attribute_serializers/README.md +10 -0
  24. data/lib/paper_trail/attribute_serializers/cast_attribute_serializer.rb +58 -0
  25. data/lib/paper_trail/attribute_serializers/legacy_active_record_shim.rb +48 -0
  26. data/lib/paper_trail/attribute_serializers/object_attribute.rb +39 -0
  27. data/lib/paper_trail/attribute_serializers/object_changes_attribute.rb +42 -0
  28. data/lib/paper_trail/cleaner.rb +41 -18
  29. data/lib/paper_trail/config.rb +42 -26
  30. data/lib/paper_trail/frameworks/active_record/models/paper_trail/version.rb +5 -1
  31. data/lib/paper_trail/frameworks/active_record/models/paper_trail/version_association.rb +6 -2
  32. data/lib/paper_trail/frameworks/active_record.rb +2 -2
  33. data/lib/paper_trail/frameworks/cucumber.rb +1 -0
  34. data/lib/paper_trail/frameworks/rails/controller.rb +50 -14
  35. data/lib/paper_trail/frameworks/rails/engine.rb +6 -1
  36. data/lib/paper_trail/frameworks/rails.rb +2 -7
  37. data/lib/paper_trail/frameworks/rspec/helpers.rb +3 -1
  38. data/lib/paper_trail/frameworks/rspec.rb +5 -5
  39. data/lib/paper_trail/frameworks/sinatra.rb +8 -5
  40. data/lib/paper_trail/has_paper_trail.rb +381 -221
  41. data/lib/paper_trail/record_history.rb +57 -0
  42. data/lib/paper_trail/reifier.rb +450 -0
  43. data/lib/paper_trail/serializers/json.rb +7 -7
  44. data/lib/paper_trail/serializers/yaml.rb +31 -12
  45. data/lib/paper_trail/version_association_concern.rb +6 -2
  46. data/lib/paper_trail/version_concern.rb +200 -287
  47. data/lib/paper_trail/version_number.rb +6 -9
  48. data/lib/paper_trail.rb +169 -137
  49. data/paper_trail.gemspec +41 -43
  50. data/spec/generators/install_generator_spec.rb +24 -25
  51. data/spec/generators/paper_trail/templates/create_versions_spec.rb +51 -0
  52. data/spec/models/animal_spec.rb +23 -6
  53. data/spec/models/boolit_spec.rb +8 -8
  54. data/spec/models/callback_modifier_spec.rb +96 -0
  55. data/spec/models/car_spec.rb +13 -0
  56. data/spec/models/fluxor_spec.rb +3 -3
  57. data/spec/models/gadget_spec.rb +19 -19
  58. data/spec/models/joined_version_spec.rb +3 -3
  59. data/spec/models/json_version_spec.rb +50 -28
  60. data/spec/models/kitchen/banana_spec.rb +3 -3
  61. data/spec/models/not_on_update_spec.rb +7 -4
  62. data/spec/models/post_with_status_spec.rb +13 -3
  63. data/spec/models/skipper_spec.rb +40 -11
  64. data/spec/models/thing_spec.rb +4 -4
  65. data/spec/models/truck_spec.rb +5 -0
  66. data/spec/models/vehicle_spec.rb +5 -0
  67. data/spec/models/version_spec.rb +103 -59
  68. data/spec/models/widget_spec.rb +86 -55
  69. data/spec/modules/paper_trail_spec.rb +2 -2
  70. data/spec/modules/version_concern_spec.rb +11 -12
  71. data/spec/modules/version_number_spec.rb +3 -4
  72. data/spec/paper_trail/config_spec.rb +33 -0
  73. data/spec/paper_trail_spec.rb +16 -14
  74. data/spec/rails_helper.rb +10 -9
  75. data/spec/requests/articles_spec.rb +11 -7
  76. data/spec/spec_helper.rb +42 -17
  77. data/spec/support/alt_db_init.rb +8 -13
  78. data/test/custom_json_serializer.rb +3 -3
  79. data/test/dummy/Rakefile +2 -2
  80. data/test/dummy/app/controllers/application_controller.rb +21 -8
  81. data/test/dummy/app/controllers/articles_controller.rb +11 -8
  82. data/test/dummy/app/controllers/widgets_controller.rb +13 -12
  83. data/test/dummy/app/models/animal.rb +1 -1
  84. data/test/dummy/app/models/article.rb +19 -11
  85. data/test/dummy/app/models/authorship.rb +1 -1
  86. data/test/dummy/app/models/bar_habtm.rb +4 -0
  87. data/test/dummy/app/models/book.rb +4 -4
  88. data/test/dummy/app/models/boolit.rb +1 -1
  89. data/test/dummy/app/models/callback_modifier.rb +45 -0
  90. data/test/dummy/app/models/car.rb +3 -0
  91. data/test/dummy/app/models/chapter.rb +9 -0
  92. data/test/dummy/app/models/citation.rb +5 -0
  93. data/test/dummy/app/models/customer.rb +1 -1
  94. data/test/dummy/app/models/document.rb +2 -2
  95. data/test/dummy/app/models/editor.rb +1 -1
  96. data/test/dummy/app/models/foo_habtm.rb +5 -0
  97. data/test/dummy/app/models/fruit.rb +2 -2
  98. data/test/dummy/app/models/gadget.rb +1 -1
  99. data/test/dummy/app/models/kitchen/banana.rb +1 -1
  100. data/test/dummy/app/models/legacy_widget.rb +2 -2
  101. data/test/dummy/app/models/line_item.rb +1 -1
  102. data/test/dummy/app/models/not_on_update.rb +1 -1
  103. data/test/dummy/app/models/paragraph.rb +5 -0
  104. data/test/dummy/app/models/person.rb +6 -6
  105. data/test/dummy/app/models/post.rb +1 -1
  106. data/test/dummy/app/models/post_with_status.rb +1 -1
  107. data/test/dummy/app/models/quotation.rb +5 -0
  108. data/test/dummy/app/models/section.rb +6 -0
  109. data/test/dummy/app/models/skipper.rb +2 -2
  110. data/test/dummy/app/models/song.rb +13 -4
  111. data/test/dummy/app/models/thing.rb +2 -2
  112. data/test/dummy/app/models/translation.rb +2 -2
  113. data/test/dummy/app/models/truck.rb +4 -0
  114. data/test/dummy/app/models/vehicle.rb +4 -0
  115. data/test/dummy/app/models/whatchamajigger.rb +1 -1
  116. data/test/dummy/app/models/widget.rb +7 -6
  117. data/test/dummy/app/versions/joined_version.rb +4 -3
  118. data/test/dummy/app/versions/json_version.rb +1 -1
  119. data/test/dummy/app/versions/kitchen/banana_version.rb +1 -1
  120. data/test/dummy/app/versions/post_version.rb +2 -2
  121. data/test/dummy/config/application.rb +20 -9
  122. data/test/dummy/config/boot.rb +5 -5
  123. data/test/dummy/config/database.postgres.yml +1 -1
  124. data/test/dummy/config/environment.rb +1 -1
  125. data/test/dummy/config/environments/development.rb +4 -3
  126. data/test/dummy/config/environments/production.rb +3 -2
  127. data/test/dummy/config/environments/test.rb +15 -5
  128. data/test/dummy/config/initializers/backtrace_silencers.rb +4 -2
  129. data/test/dummy/config/initializers/paper_trail.rb +4 -3
  130. data/test/dummy/config/initializers/secret_token.rb +3 -1
  131. data/test/dummy/config/initializers/session_store.rb +1 -1
  132. data/test/dummy/config/routes.rb +2 -2
  133. data/test/dummy/config.ru +1 -1
  134. data/test/dummy/db/migrate/20110208155312_set_up_test_tables.rb +148 -68
  135. data/test/dummy/db/schema.rb +119 -31
  136. data/test/dummy/script/rails +6 -4
  137. data/test/functional/controller_test.rb +34 -35
  138. data/test/functional/enabled_for_controller_test.rb +6 -7
  139. data/test/functional/modular_sinatra_test.rb +43 -38
  140. data/test/functional/sinatra_test.rb +49 -40
  141. data/test/functional/thread_safety_test.rb +4 -6
  142. data/test/paper_trail_test.rb +15 -14
  143. data/test/test_helper.rb +78 -18
  144. data/test/time_travel_helper.rb +1 -15
  145. data/test/unit/associations_test.rb +1016 -0
  146. data/test/unit/cleaner_test.rb +66 -60
  147. data/test/unit/inheritance_column_test.rb +19 -19
  148. data/test/unit/model_test.rb +646 -1071
  149. data/test/unit/protected_attrs_test.rb +19 -14
  150. data/test/unit/serializer_test.rb +44 -43
  151. data/test/unit/serializers/json_test.rb +28 -21
  152. data/test/unit/serializers/mixin_json_test.rb +15 -14
  153. data/test/unit/serializers/mixin_yaml_test.rb +20 -16
  154. data/test/unit/serializers/yaml_test.rb +16 -14
  155. data/test/unit/timestamp_test.rb +10 -12
  156. data/test/unit/version_test.rb +88 -70
  157. metadata +166 -72
  158. data/gemfiles/3.0.gemfile +0 -52
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e6cf60ba027274553881419d2024a86547be00d2
4
- data.tar.gz: 57495d17ebfa11d24a17cf7d65ba5e67aca92816
3
+ metadata.gz: 83f408e34bbaf733c5fdab5ad37fc8c3718ab7ad
4
+ data.tar.gz: b1e73feb664e29d18946f3c526b1bb6b1ccec024
5
5
  SHA512:
6
- metadata.gz: d9c462e7bb9dfdf1404de3fb8de7484de342ab0516e0e8eaae67e3059a51e01d0e7c9b1699433857c2045bee768256ab811783ccc8568318cf14dc39c50bd6ff
7
- data.tar.gz: 1e8c8098fa91e2cb9af8fae20268beceba18e885948a629e5fada7d84d2023159254da16875341436ce620365fb9f28432e4a37159ac7a9c8bc8883a2afef409
6
+ metadata.gz: b61edd25675bb0ea5254640920f04ff23aab1fc9dc729bc2bb27c5f4bd6774fb6e86df50d213d173a2892e7b2ef2e15240745e541d9f4fb0238c4b07574f6e56
7
+ data.tar.gz: 8b701f3921a8945fd3e7e55dbda82c7b716711e457f72caf7054dd502fd77a927ef5c5ebcf7d634f9c8465ba0bc8c44cc057220bea24cbaac1f5dbad7f2c9a96
@@ -0,0 +1,105 @@
1
+ # Contributing
2
+
3
+ Thanks for your interest in PaperTrail!
4
+
5
+ Ask usage questions on Stack Overflow:
6
+ https://stackoverflow.com/tags/paper-trail-gem
7
+
8
+ **Please do not use github issues to ask usage questions.**
9
+
10
+ On github, we appreciate bug reports, feature
11
+ suggestions, and especially pull requests.
12
+
13
+ Thanks, and happy (paper) trails :)
14
+
15
+ ## Reporting Bugs
16
+
17
+ Please use our [bug report template][1].
18
+
19
+ ## Development
20
+
21
+ Testing is a little awkward because the test suite:
22
+
23
+ 1. Supports three major versions of rails: 3, 4, 5
24
+ 1. Contains a "dummy" rails app with three databases (test, foo, and bar)
25
+ 1. Supports three different RDBMS': sqlite, mysql, and postgres
26
+
27
+ Test against rails 3:
28
+
29
+ ```
30
+ bundle exec appraisal ar3 rake
31
+ ```
32
+
33
+ Run tests with sqlite:
34
+
35
+ ```
36
+ # Create the appropriate database config. file
37
+ rm test/dummy/config/database.yml
38
+ DB=sqlite bundle exec rake prepare
39
+
40
+ # If this is the first test run ever, create databases
41
+ cd test/dummy
42
+ RAILS_ENV=test bundle exec rake db:setup
43
+ RAILS_ENV=foo bundle exec rake db:setup
44
+ RAILS_ENV=bar bundle exec rake db:setup
45
+ cd ../..
46
+
47
+ # Run tests
48
+ DB=sqlite bundle exec rake
49
+ ```
50
+
51
+ Run tests with mysql:
52
+
53
+ ```
54
+ # Create the appropriate database config. file
55
+ rm test/dummy/config/database.yml
56
+ DB=mysql bundle exec rake prepare
57
+
58
+ # If this is the first test run ever, create databases
59
+ cd test/dummy
60
+ RAILS_ENV=test bundle exec rake db:setup
61
+ RAILS_ENV=foo bundle exec rake db:setup
62
+ RAILS_ENV=bar bundle exec rake db:setup
63
+ cd ../..
64
+
65
+ # Run tests
66
+ DB=mysql bundle exec rake
67
+ ```
68
+
69
+ Run tests with postgres:
70
+
71
+ ```
72
+ # Create the appropriate database config. file
73
+ rm test/dummy/config/database.yml
74
+ DB=postgres bundle exec rake prepare
75
+
76
+ # If this is the first test run ever, create databases.
77
+ # Unlike mysql, use create/migrate instead of setup.
78
+ cd test/dummy
79
+ DB=postgres RAILS_ENV=test bundle exec rake db:create
80
+ DB=postgres RAILS_ENV=test bundle exec rake db:migrate
81
+ DB=postgres RAILS_ENV=foo bundle exec rake db:create
82
+ DB=postgres RAILS_ENV=foo bundle exec rake db:migrate
83
+ DB=postgres RAILS_ENV=bar bundle exec rake db:create
84
+ DB=postgres RAILS_ENV=bar bundle exec rake db:migrate
85
+ cd ../..
86
+
87
+ # Run tests
88
+ DB=postgres bundle exec rake
89
+ ```
90
+
91
+ ### Releases
92
+
93
+ 1. Set the version in lib/paper_trail/version_number.rb
94
+ - Set PRE to nil unless it's a pre-release (beta, rc, etc.)
95
+ 1. In the changelog, replace "Unreleased" with the date.
96
+ 1. In the readme,
97
+ - remove "unreleased" from the doc versions table
98
+ - update any other references to version number
99
+ 1. Commit
100
+ 1. Tag with `git tag -a -m "v5.0.0" "v5.0.0"`
101
+ 1. `git push --tags origin master`
102
+ 1. `gem build paper_trail.gemspec`
103
+ 1. `gem push paper_trail-5.0.0.gem`
104
+
105
+ [1]: https://github.com/airblade/paper_trail/blob/master/doc/bug_report_template.rb
@@ -0,0 +1,13 @@
1
+ Thanks for your interest in PaperTrail! Our volunteers' time is limited, so we
2
+ can only respond on GitHub to bug reports and feature requests. Please ask
3
+ *usage questions* on StackOverflow (https://stackoverflow.com/tags/paper-trail-gem)
4
+ so that the whole community has a chance to answer your question.
5
+
6
+ Please use our template
7
+ (https://github.com/airblade/paper_trail/blob/master/doc/bug_report_template.rb)
8
+ when reporting bugs.
9
+
10
+ For other questions, please see our contributing guide.
11
+ (https://github.com/airblade/paper_trail/blob/master/.github/CONTRIBUTING.md)
12
+
13
+ Thanks for your contribution!
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ gemfiles/*.lock
1
2
  NOTES
2
3
  test/debug.log
3
4
  test/paper_trail_plugin.sqlite3.db
@@ -19,3 +20,4 @@ vendor/*
19
20
  .tags_sorted_by_file
20
21
  .ruby-version
21
22
  .ruby-gemset
23
+ .rbenv-gemsets
data/.rubocop.yml ADDED
@@ -0,0 +1,100 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ # Please:
4
+ #
5
+ # - Comment any deviations from the Ruby Style Guide
6
+ # - Alphabetize cops
7
+ # - Only include permanent config; temporary goes in .rubocop_todo.yml
8
+
9
+ # We do not control `schema.rb`. Exclude it from all cops.
10
+ AllCops:
11
+ Exclude:
12
+ - test/dummy/db/schema.rb
13
+
14
+ # Migrations often contain long up/down methods, and extracting smaller methods
15
+ # from these is of questionable value.
16
+ Metrics/AbcSize:
17
+ Exclude:
18
+ - 'test/dummy/db/migrate/*'
19
+
20
+ Metrics/ClassLength:
21
+ Exclude:
22
+ - test/**/*
23
+
24
+ # The Ruby Style Guide recommends to "Limit lines to 80 characters."
25
+ # (https://github.com/bbatsov/ruby-style-guide#80-character-limits)
26
+ # but 100 is also reasonable.
27
+ Metrics/LineLength:
28
+ Max: 100
29
+
30
+ # The number of lines in a method is not a useful metric compared to `AbcSize`.
31
+ # It's common to have very long methods (> 50 lines) which are quite simple. For
32
+ # example, a method that returns a long string with only a few interpolations.
33
+ Metrics/MethodLength:
34
+ Enabled: false
35
+
36
+ Style/AlignParameters:
37
+ EnforcedStyle: with_fixed_indentation
38
+
39
+ # Please use semantic style, e.g. `do` when there's a side-effect, else `{}`.
40
+ # The semantic style is too nuanced to lint, so the cop is disabled.
41
+ Style/BlockDelimiters:
42
+ Enabled: false
43
+
44
+ Style/DotPosition:
45
+ EnforcedStyle: trailing
46
+
47
+ # Use double negation wherever it would otherwise be impractical to convert
48
+ # a value to an actual boolean.
49
+ Style/DoubleNegation:
50
+ Enabled: false
51
+
52
+ # The decision of when to use a guard clause to improve readability is subtle,
53
+ # and it's not clear that it can be linted. Certainly, the default
54
+ # `MinBodyLength` of 1 can actually hurt readability.
55
+ Style/GuardClause:
56
+ MinBodyLength: 3
57
+
58
+ # Use postfix (modifier) conditionals for one-liners, unless doing so would
59
+ # exceed 60 characters.
60
+ Style/IfUnlessModifier:
61
+ MaxLineLength: 60
62
+
63
+ # The Ruby Style Guide says:
64
+ #
65
+ # > Use \ instead of + or << to concatenate two string literals at line end.
66
+ #
67
+ # but in my experience the `\` style is rarely used and less readable. Please
68
+ # concatenate multiline strings with `+` or use a HEREDOC.
69
+ Style/LineEndConcatenation:
70
+ Enabled: false
71
+
72
+ # Using `module_function` instead of `extend self` would make the instance
73
+ # methods in these modules private. That would be a breaking change, so these
74
+ # modules are excluded. See discussion in:
75
+ # - https://github.com/airblade/paper_trail/pull/756
76
+ # - https://github.com/bbatsov/ruby-style-guide/issues/556
77
+ Style/ModuleFunction:
78
+ Exclude:
79
+ - 'lib/paper_trail/serializers/json.rb'
80
+ - 'lib/paper_trail/serializers/yaml.rb'
81
+
82
+ Style/MultilineMethodCallIndentation:
83
+ EnforcedStyle: indented
84
+
85
+ Style/MultilineOperationIndentation:
86
+ EnforcedStyle: indented
87
+
88
+ Style/PredicateName:
89
+ NameWhitelist: has_paper_trail
90
+
91
+ # The Ruby Style Guide does not prescribe a particular quote character, only
92
+ # that a project should pick one and be consistent. The decision has no
93
+ # performance implications. Double quotes are slightly easier to read.
94
+ Style/StringLiterals:
95
+ EnforcedStyle: double_quotes
96
+
97
+ # Use exactly one space on each side of an operator. Do not align operators
98
+ # because it makes the code harder to edit, and makes lines unnecessarily long.
99
+ Style/SpaceAroundOperators:
100
+ AllowForAlignment: false
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,14 @@
1
+ # Remove these configuration records
2
+ # one by one as the offenses are removed from the code base.
3
+
4
+ Metrics/AbcSize:
5
+ Max: 30 # Goal: 15
6
+
7
+ Metrics/CyclomaticComplexity:
8
+ Max: 13 # Goal: 6
9
+
10
+ Metrics/ModuleLength:
11
+ Max: 313
12
+
13
+ Metrics/PerceivedComplexity:
14
+ Max: 16 # Goal: 7
data/.travis.yml CHANGED
@@ -1,10 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.0.0
3
+ - 2.3.0
4
4
  - 1.9.3
5
- - 1.8.7
6
5
  - jruby-19mode
7
- - jruby-18mode
8
6
  env:
9
7
  global:
10
8
  - TRAVIS=true
@@ -16,24 +14,27 @@ env:
16
14
  sudo: false
17
15
 
18
16
  before_script:
17
+ - mysql --version
19
18
  - sh -c "if [ \"$DB\" = 'mysql' ]; then mysql -e 'create database paper_trail_test;'; fi"
20
19
  - sh -c "if [ \"$DB\" = 'mysql' ]; then mysql -e 'create database paper_trail_bar; '; fi"
21
20
  - sh -c "if [ \"$DB\" = 'mysql' ]; then mysql -e 'create database paper_trail_foo; '; fi"
21
+ - psql --version
22
22
  - sh -c "if [ \"$DB\" = 'postgres' ]; then psql -c 'create database paper_trail_test;' -U postgres; fi"
23
23
  - sh -c "if [ \"$DB\" = 'postgres' ]; then psql -c 'create database paper_trail_bar;' -U postgres; fi"
24
24
  - sh -c "if [ \"$DB\" = 'postgres' ]; then psql -c 'create database paper_trail_foo;' -U postgres; fi"
25
25
 
26
26
  gemfile:
27
- - Gemfile
28
- - gemfiles/3.0.gemfile
27
+ - gemfiles/ar3.gemfile
28
+ - gemfiles/ar4.gemfile
29
+ - gemfiles/ar5.gemfile
29
30
 
30
31
  matrix:
31
32
  fast_finish: true
32
- allow_failures:
33
- - rvm: jruby-18mode
34
- gemfile: Gemfile
35
- - rvm: 1.8.7
36
- gemfile: Gemfile
33
+ exclude:
34
+ - gemfile: gemfiles/ar5.gemfile
35
+ rvm: 1.9.3
36
+ - gemfile: gemfiles/ar5.gemfile
37
+ rvm: jruby-19mode
37
38
 
38
39
  addons:
39
40
  postgresql: "9.4"
data/Appraisals ADDED
@@ -0,0 +1,37 @@
1
+ # Specify here only version constraints that differ from
2
+ # `paper_trail.gemspec`.
3
+ #
4
+ # > The dependencies in your Appraisals file are combined with dependencies in
5
+ # > your Gemfile, so you don't need to repeat anything that's the same for each
6
+ # > appraisal. If something is specified in both the Gemfile and an appraisal,
7
+ # > the version from the appraisal takes precedence.
8
+ # > https://github.com/thoughtbot/appraisal
9
+
10
+ appraise "ar3" do
11
+ gem "activerecord", "~> 3.2.22"
12
+ gem "i18n", "~> 0.6.11"
13
+ gem "request_store", "~> 1.1.0"
14
+
15
+ group :development, :test do
16
+ gem 'railties', '~> 3.2.22'
17
+ gem 'test-unit', '~> 3.1.5'
18
+ platforms :ruby do
19
+ gem 'mysql2', '~> 0.3.20'
20
+ end
21
+ end
22
+ end
23
+
24
+ appraise "ar4" do
25
+ gem "activerecord", "~> 4.2"
26
+ end
27
+
28
+ appraise "ar5" do
29
+ gem "activerecord", "5.0.0.beta3"
30
+ gem "activemodel", "5.0.0.beta3"
31
+ gem "actionpack", "5.0.0.beta3"
32
+ gem "railties", "5.0.0.beta3"
33
+ gem "rspec-rails", "3.5.0.beta3"
34
+ gem 'rails-controller-testing'
35
+ # Sinatra stable conflicts with AR5's rack dependency
36
+ gem 'sinatra', github: 'sinatra/sinatra'
37
+ end
data/CHANGELOG.md CHANGED
@@ -1,11 +1,169 @@
1
- ## 4.0.0
1
+ ## 5.?.? (Unreleased)
2
+
3
+ ### Breaking Changes
4
+
5
+ - None
6
+
7
+ ### Added
8
+
9
+ - None
10
+
11
+ ### Fixed
12
+
13
+ - None
14
+
15
+ ## 5.1.0 (2016-05-20)
16
+
17
+ ### Breaking Changes
18
+
19
+ - None
20
+
21
+ ### Added
22
+
23
+ - [#809](https://github.com/airblade/paper_trail/pull/809) -
24
+ Print warning if version cannot be saved.
25
+
26
+ ### Fixed
27
+
28
+ - [#812](https://github.com/airblade/paper_trail/pull/812) -
29
+ Issue with saving HABTM associated objects using accepts_nested_attributes_for
30
+ - [#811](https://github.com/airblade/paper_trail/pull/811) -
31
+ Avoid unnecessary query in #record_destroy
32
+ - Improvements to documentation
33
+
34
+ ## 5.0.1 (2016-05-04)
35
+
36
+ ### Breaking Changes
37
+
38
+ - None
39
+
40
+ ### Added
41
+
42
+ - None
43
+
44
+ ### Fixed
45
+
46
+ - [#791](https://github.com/airblade/paper_trail/issues/791) -
47
+ A rare issue in applications that override `warn`.
48
+ - [#789](https://github.com/airblade/paper_trail/issues/789) -
49
+ A potentially common issue, in applications with initializers that use
50
+ versioned models.
51
+
52
+ ## 5.0.0 (2016-05-02)
53
+
54
+ ### Breaking Changes
55
+
56
+ - [#758](https://github.com/airblade/paper_trail/pull/758) -
57
+ `PaperTrail.config.track_associations` getter method removed,
58
+ use `track_associations?` instead.
59
+ - [#740](https://github.com/airblade/paper_trail/issues/740) -
60
+ `PaperTrail.config.track_associations?` now defaults to false
61
+ - [#723](https://github.com/airblade/paper_trail/pull/723) -
62
+ `PaperTrail.enabled=` now affects all threads
63
+ - [#556](https://github.com/airblade/paper_trail/pull/556) /
64
+ [#301](https://github.com/airblade/paper_trail/issues/301) -
65
+ If you are tracking who is responsible for changes with `whodunnit`, be aware
66
+ that PaperTrail no longer adds the `set_paper_trail_whodunnit` before_filter
67
+ for you. Please add this before_filter to your ApplicationController to
68
+ continue recording whodunnit. See the readme for an example.
69
+ - [#683](https://github.com/airblade/paper_trail/pull/683) /
70
+ [#682](https://github.com/airblade/paper_trail/issues/682) -
71
+ Destroy callback default changed to :before to accommodate ActiveRecord 5
72
+ option `belongs_to_required_by_default` and new Rails 5 default.
73
+
74
+ ### Added
75
+
76
+ - [#771](https://github.com/airblade/paper_trail/pull/771) -
77
+ Added support for has_and_belongs_to_many associations
78
+ - [#741](https://github.com/airblade/paper_trail/issues/741) /
79
+ [#681](https://github.com/airblade/paper_trail/pull/681)
80
+ MySQL unicode support in migration generator
81
+ - [#689](https://github.com/airblade/paper_trail/pull/689) -
82
+ Rails 5 compatibility
83
+ - Added a rails config option: `config.paper_trail.enabled`
84
+ - [#503](https://github.com/airblade/paper_trail/pull/730) -
85
+ Support for reifying belongs_to associations.
86
+
87
+ ### Fixed
88
+
89
+ - [#777](https://github.com/airblade/paper_trail/issues/777) -
90
+ Support HMT associations with `:source` option.
91
+ - [#738](https://github.com/airblade/paper_trail/issues/738) -
92
+ Rare bug where a non-versioned STI parent caused `changeset` to
93
+ return an empty hash.
94
+ - [#731](https://github.com/airblade/paper_trail/pull/731) -
95
+ Map enums to database values before storing in `object_changes` column.
96
+ - [#715](https://github.com/airblade/paper_trail/issues/715) -
97
+ Optimize post-rollback association reset.
98
+ - [#701](https://github.com/airblade/paper_trail/pull/701) /
99
+ [#699](https://github.com/airblade/paper_trail/issues/699) -
100
+ Cleaning old versions explicitly preserves the most recent
101
+ versions instead of relying on database result ordering.
102
+ - [#635](https://github.com/airblade/paper_trail/issues/635) -
103
+ A bug where it was not possible to disable PT when using a multi-threaded
104
+ webserver.
105
+ - [#584](https://github.com/airblade/paper_trail/issues/584) -
106
+ Fixed deprecation warning for Active Record after_callback / after_commit
107
+
108
+ ## 4.1.0 (2016-01-30)
109
+
110
+ ### Breaking Changes
111
+
112
+ - None
113
+
114
+ ### Added
115
+
116
+ - A way to control the order of AR callbacks.
117
+ [#614](https://github.com/airblade/paper_trail/pull/614)
118
+ - Added `unversioned_attributes` option to `reify`.
119
+ [#579](https://github.com/airblade/paper_trail/pull/579)
120
+
121
+ ### Fixed
122
+
123
+ - None
124
+
125
+ ## 4.0.2 (2016-01-19)
126
+
127
+ ### Breaking Changes
128
+
129
+ - None
130
+
131
+ ### Added
132
+
133
+ - None
134
+
135
+ ### Fixed
136
+
137
+ - [#696](https://github.com/airblade/paper_trail/issues/696) /
138
+ [#697](https://github.com/airblade/paper_trail/pull/697)
139
+ Bind JSON query parameters in `where_object` and `where_object_changes`.
140
+
141
+ ## 4.0.1 (2015-12-14)
142
+
143
+ ### Breaking Changes
144
+
145
+ - None
146
+
147
+ ### Added
148
+
149
+ - None
150
+
151
+ ### Fixed
152
+
153
+ - [#636](https://github.com/airblade/paper_trail/issues/636) -
154
+ Should compile assets without a db connection
155
+ - [#589](https://github.com/airblade/paper_trail/pull/589) /
156
+ [#588](https://github.com/airblade/paper_trail/issues/588) -
157
+ Fixes timestamp for "create" versions
158
+
159
+ ## 4.0.0 (2015-07-30)
2
160
 
3
161
  This major release adds JSON column support in PostgreSQL, limited support for
4
162
  versioning associations, various new configuration options, and a year's worth
5
163
  of bug fixes. Thanks to everyone who helped test the two betas and two release
6
164
  candidates.
7
165
 
8
- ### Changed
166
+ ### Breaking Changes
9
167
 
10
168
  - Using a Rails initializer to reopen PaperTrail::Version or otherwise extend
11
169
  PaperTrail is no longer recommended. An alternative is described in the
@@ -13,6 +171,9 @@ candidates.
13
171
  https://github.com/airblade/paper_trail/pull/492.
14
172
  - If you depend on the `RSpec` or `Cucumber` helpers, you must
15
173
  [require them in your test helper](https://github.com/airblade/paper_trail#testing).
174
+ - [#566](https://github.com/airblade/paper_trail/pull/566) - Removed deprecated
175
+ methods `paper_trail_on` and `paper_trail_off`. Use `paper_trail_on!` and
176
+ `paper_trail_off!` instead.
16
177
  - [#458](https://github.com/airblade/paper_trail/pull/458) - Version metadata
17
178
  (the `:meta` option) from AR attributes for `create` events will now save the
18
179
  current value instead of `nil`.
@@ -29,12 +190,6 @@ candidates.
29
190
  - `3da1f104` - `PaperTrail.config` and `PaperTrail.configure` are now
30
191
  identical: both return the `PaperTrail::Config` instance and also
31
192
  yield it if a block is provided.
32
-
33
- ### Removed
34
-
35
- - [#566](https://github.com/airblade/paper_trail/pull/566) - Removed deprecated
36
- methods `paper_trail_on` and `paper_trail_off`. Use `paper_trail_on!` and
37
- `paper_trail_off!` instead.
38
193
 
39
194
  ### Added
40
195
 
@@ -121,6 +276,16 @@ candidates.
121
276
  - [#479](https://github.com/airblade/paper_trail/issues/479) - Deprecated
122
277
  `originator` method, use `paper_trail_originator`.
123
278
 
279
+ ## 3.0.9
280
+
281
+ - [#479](https://github.com/airblade/paper_trail/issues/479) - Deprecated
282
+ `originator` method in favor of `paper_trail_originator` Deprecation warning
283
+ informs users that the `originator` of the methods will be removed in
284
+ version `4.0`. (Backported from v4)
285
+ - Updated deprecation warnings for `Model.paper_trail_on` and
286
+ `Model.paper_trail_off` to have display correct version number the methods
287
+ will be removed (`4.0`)
288
+
124
289
  ## 3.0.8
125
290
 
126
291
  - [#525](https://github.com/airblade/paper_trail/issues/525) / [#512](https://github.com/airblade/paper_trail/pull/512) -
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
  gemspec