audited 4.10.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of audited might be problematic. Click here for more details.

Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/buildlight.yml +15 -0
  3. data/.github/workflows/ci.yml +128 -0
  4. data/.standard.yml +5 -0
  5. data/Appraisals +20 -18
  6. data/CHANGELOG.md +90 -1
  7. data/Gemfile +1 -1
  8. data/README.md +52 -14
  9. data/Rakefile +6 -6
  10. data/gemfiles/rails50.gemfile +1 -0
  11. data/gemfiles/rails51.gemfile +1 -0
  12. data/gemfiles/rails52.gemfile +2 -1
  13. data/gemfiles/rails70.gemfile +10 -0
  14. data/lib/audited/audit.rb +24 -25
  15. data/lib/audited/auditor.rb +91 -56
  16. data/lib/audited/railtie.rb +16 -0
  17. data/lib/audited/rspec_matchers.rb +5 -3
  18. data/lib/audited/sweeper.rb +3 -10
  19. data/lib/audited/version.rb +3 -1
  20. data/lib/audited-rspec.rb +3 -1
  21. data/lib/audited.rb +33 -9
  22. data/lib/generators/audited/install_generator.rb +9 -7
  23. data/lib/generators/audited/migration.rb +12 -2
  24. data/lib/generators/audited/migration_helper.rb +3 -1
  25. data/lib/generators/audited/templates/add_association_to_audits.rb +2 -0
  26. data/lib/generators/audited/templates/add_comment_to_audits.rb +2 -0
  27. data/lib/generators/audited/templates/add_remote_address_to_audits.rb +2 -0
  28. data/lib/generators/audited/templates/add_request_uuid_to_audits.rb +2 -0
  29. data/lib/generators/audited/templates/add_version_to_auditable_index.rb +2 -0
  30. data/lib/generators/audited/templates/install.rb +2 -0
  31. data/lib/generators/audited/templates/rename_association_to_associated.rb +2 -0
  32. data/lib/generators/audited/templates/rename_changes_to_audited_changes.rb +2 -0
  33. data/lib/generators/audited/templates/rename_parent_to_association.rb +2 -0
  34. data/lib/generators/audited/templates/revert_polymorphic_indexes_order.rb +2 -0
  35. data/lib/generators/audited/upgrade_generator.rb +16 -14
  36. data/spec/audited/audit_spec.rb +68 -46
  37. data/spec/audited/auditor_spec.rb +310 -253
  38. data/spec/audited/sweeper_spec.rb +19 -19
  39. data/spec/audited_spec.rb +18 -0
  40. data/spec/audited_spec_helpers.rb +5 -7
  41. data/spec/rails_app/app/assets/config/manifest.js +2 -1
  42. data/spec/rails_app/config/application.rb +9 -3
  43. data/spec/rails_app/config/database.yml +3 -2
  44. data/spec/rails_app/config/environment.rb +1 -1
  45. data/spec/rails_app/config/environments/test.rb +10 -5
  46. data/spec/rails_app/config/initializers/secret_token.rb +2 -2
  47. data/spec/spec_helper.rb +14 -14
  48. data/spec/support/active_record/models.rb +24 -12
  49. data/spec/support/active_record/postgres/1_change_audited_changes_type_to_json.rb +1 -2
  50. data/spec/support/active_record/postgres/2_change_audited_changes_type_to_jsonb.rb +1 -2
  51. data/spec/support/active_record/schema.rb +25 -19
  52. data/test/db/version_1.rb +2 -2
  53. data/test/db/version_2.rb +2 -2
  54. data/test/db/version_3.rb +2 -3
  55. data/test/db/version_4.rb +2 -3
  56. data/test/db/version_5.rb +0 -1
  57. data/test/db/version_6.rb +1 -1
  58. data/test/install_generator_test.rb +18 -19
  59. data/test/test_helper.rb +5 -5
  60. data/test/upgrade_generator_test.rb +13 -18
  61. metadata +31 -31
  62. data/.rubocop.yml +0 -25
  63. data/.travis.yml +0 -63
  64. data/gemfiles/rails42.gemfile +0 -11
  65. data/spec/rails_app/app/controllers/application_controller.rb +0 -2
  66. data/spec/rails_app/config/environments/development.rb +0 -21
  67. data/spec/rails_app/config/environments/production.rb +0 -35
data/test/test_helper.rb CHANGED
@@ -1,18 +1,18 @@
1
- ENV['RAILS_ENV'] = 'test'
1
+ ENV["RAILS_ENV"] = "test"
2
2
 
3
3
  $LOAD_PATH.unshift File.dirname(__FILE__)
4
4
 
5
- require File.expand_path('../../spec/rails_app/config/environment', __FILE__)
6
- require 'rails/test_help'
5
+ require File.expand_path("../../spec/rails_app/config/environment", __FILE__)
6
+ require "rails/test_help"
7
7
 
8
- require 'audited'
8
+ require "audited"
9
9
 
10
10
  class ActiveSupport::TestCase
11
11
  setup do
12
12
  ActiveRecord::Migration.verbose = false
13
13
  end
14
14
 
15
- def load_schema( version )
15
+ def load_schema(version)
16
16
  load File.dirname(__FILE__) + "/db/version_#{version}.rb"
17
17
  end
18
18
  end
@@ -1,21 +1,17 @@
1
- require 'test_helper'
1
+ require "test_helper"
2
2
 
3
- require 'generators/audited/upgrade_generator'
3
+ require "generators/audited/upgrade_generator"
4
4
 
5
5
  class UpgradeGeneratorTest < Rails::Generators::TestCase
6
- destination File.expand_path('../../tmp', __FILE__)
6
+ destination File.expand_path("../../tmp", __FILE__)
7
7
  setup :prepare_destination
8
8
  tests Audited::Generators::UpgradeGenerator
9
- if Rails::VERSION::MAJOR == 4
10
- self.use_transactional_fixtures = false
11
- else
12
- self.use_transactional_tests = false
13
- end
9
+ self.use_transactional_tests = false
14
10
 
15
11
  test "should add 'comment' to audits table" do
16
12
  load_schema 1
17
13
 
18
- run_generator %w(upgrade)
14
+ run_generator %w[upgrade]
19
15
 
20
16
  assert_migration "db/migrate/add_comment_to_audits.rb" do |content|
21
17
  assert_match(/add_column :audits, :comment, :string/, content)
@@ -27,7 +23,7 @@ class UpgradeGeneratorTest < Rails::Generators::TestCase
27
23
  test "should rename 'changes' to 'audited_changes'" do
28
24
  load_schema 2
29
25
 
30
- run_generator %w(upgrade)
26
+ run_generator %w[upgrade]
31
27
 
32
28
  assert_no_migration "db/migrate/add_comment_to_audits.rb"
33
29
 
@@ -39,7 +35,7 @@ class UpgradeGeneratorTest < Rails::Generators::TestCase
39
35
  test "should add a 'remote_address' to audits table" do
40
36
  load_schema 3
41
37
 
42
- run_generator %w(upgrade)
38
+ run_generator %w[upgrade]
43
39
 
44
40
  assert_migration "db/migrate/add_remote_address_to_audits.rb" do |content|
45
41
  assert_match(/add_column :audits, :remote_address, :string/, content)
@@ -49,7 +45,7 @@ class UpgradeGeneratorTest < Rails::Generators::TestCase
49
45
  test "should add 'association_id' and 'association_type' to audits table" do
50
46
  load_schema 4
51
47
 
52
- run_generator %w(upgrade)
48
+ run_generator %w[upgrade]
53
49
 
54
50
  assert_migration "db/migrate/add_association_to_audits.rb" do |content|
55
51
  assert_match(/add_column :audits, :association_id, :integer/, content)
@@ -60,7 +56,7 @@ class UpgradeGeneratorTest < Rails::Generators::TestCase
60
56
  test "should rename 'association_id' to 'associated_id' and 'association_type' to 'associated_type'" do
61
57
  load_schema 5
62
58
 
63
- run_generator %w(upgrade)
59
+ run_generator %w[upgrade]
64
60
 
65
61
  assert_migration "db/migrate/rename_association_to_associated.rb" do |content|
66
62
  assert_match(/rename_column :audits, :association_id, :associated_id/, content)
@@ -71,7 +67,7 @@ class UpgradeGeneratorTest < Rails::Generators::TestCase
71
67
  test "should add 'request_uuid' to audits table" do
72
68
  load_schema 6
73
69
 
74
- run_generator %w(upgrade)
70
+ run_generator %w[upgrade]
75
71
 
76
72
  assert_migration "db/migrate/add_request_uuid_to_audits.rb" do |content|
77
73
  assert_match(/add_column :audits, :request_uuid, :string/, content)
@@ -82,7 +78,7 @@ class UpgradeGeneratorTest < Rails::Generators::TestCase
82
78
  test "should add 'version' to auditable_index" do
83
79
  load_schema 6
84
80
 
85
- run_generator %w(upgrade)
81
+ run_generator %w[upgrade]
86
82
 
87
83
  assert_migration "db/migrate/add_version_to_auditable_index.rb" do |content|
88
84
  assert_match(/add_index :audits, \[:auditable_type, :auditable_id, :version\]/, content)
@@ -92,11 +88,10 @@ class UpgradeGeneratorTest < Rails::Generators::TestCase
92
88
  test "generate migration with correct AR migration parent" do
93
89
  load_schema 1
94
90
 
95
- run_generator %w(upgrade)
91
+ run_generator %w[upgrade]
96
92
 
97
93
  assert_migration "db/migrate/add_comment_to_audits.rb" do |content|
98
- parent = Rails::VERSION::MAJOR == 4 ? 'ActiveRecord::Migration' : "ActiveRecord::Migration[#{ActiveRecord::Migration.current_version}]"
99
- assert_includes(content, "class AddCommentToAudits < #{parent}\n")
94
+ assert_includes(content, "class AddCommentToAudits < ActiveRecord::Migration[#{ActiveRecord::Migration.current_version}]\n")
100
95
  end
101
96
  end
102
97
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: audited
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.10.0
4
+ version: 5.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandon Keepers
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2021-01-08 00:00:00.000000000 Z
16
+ date: 2023-01-23 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: activerecord
@@ -21,20 +21,20 @@ dependencies:
21
21
  requirements:
22
22
  - - ">="
23
23
  - !ruby/object:Gem::Version
24
- version: '4.2'
24
+ version: '5.0'
25
25
  - - "<"
26
26
  - !ruby/object:Gem::Version
27
- version: '6.2'
27
+ version: '7.1'
28
28
  type: :runtime
29
29
  prerelease: false
30
30
  version_requirements: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: '4.2'
34
+ version: '5.0'
35
35
  - - "<"
36
36
  - !ruby/object:Gem::Version
37
- version: '6.2'
37
+ version: '7.1'
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: appraisal
40
40
  requirement: !ruby/object:Gem::Requirement
@@ -55,48 +55,48 @@ dependencies:
55
55
  requirements:
56
56
  - - ">="
57
57
  - !ruby/object:Gem::Version
58
- version: '4.2'
58
+ version: '5.0'
59
59
  - - "<"
60
60
  - !ruby/object:Gem::Version
61
- version: '6.2'
61
+ version: '7.1'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '4.2'
68
+ version: '5.0'
69
69
  - - "<"
70
70
  - !ruby/object:Gem::Version
71
- version: '6.2'
71
+ version: '7.1'
72
72
  - !ruby/object:Gem::Dependency
73
- name: rubocop
73
+ name: rspec-rails
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - "~>"
76
+ - - ">="
77
77
  - !ruby/object:Gem::Version
78
- version: 0.54.0
78
+ version: '0'
79
79
  type: :development
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
- - - "~>"
83
+ - - ">="
84
84
  - !ruby/object:Gem::Version
85
- version: 0.54.0
85
+ version: '0'
86
86
  - !ruby/object:Gem::Dependency
87
- name: rspec-rails
87
+ name: standard
88
88
  requirement: !ruby/object:Gem::Requirement
89
89
  requirements:
90
- - - "~>"
90
+ - - ">="
91
91
  - !ruby/object:Gem::Version
92
- version: '3.5'
92
+ version: '0'
93
93
  type: :development
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
- - - "~>"
97
+ - - ">="
98
98
  - !ruby/object:Gem::Version
99
- version: '3.5'
99
+ version: '0'
100
100
  - !ruby/object:Gem::Dependency
101
101
  name: single_cov
102
102
  requirement: !ruby/object:Gem::Requirement
@@ -115,16 +115,16 @@ dependencies:
115
115
  name: sqlite3
116
116
  requirement: !ruby/object:Gem::Requirement
117
117
  requirements:
118
- - - "~>"
118
+ - - ">="
119
119
  - !ruby/object:Gem::Version
120
- version: '1.3'
120
+ version: 1.3.6
121
121
  type: :development
122
122
  prerelease: false
123
123
  version_requirements: !ruby/object:Gem::Requirement
124
124
  requirements:
125
- - - "~>"
125
+ - - ">="
126
126
  - !ruby/object:Gem::Version
127
- version: '1.3'
127
+ version: 1.3.6
128
128
  - !ruby/object:Gem::Dependency
129
129
  name: mysql2
130
130
  requirement: !ruby/object:Gem::Requirement
@@ -165,9 +165,10 @@ executables: []
165
165
  extensions: []
166
166
  extra_rdoc_files: []
167
167
  files:
168
+ - ".github/workflows/buildlight.yml"
169
+ - ".github/workflows/ci.yml"
168
170
  - ".gitignore"
169
- - ".rubocop.yml"
170
- - ".travis.yml"
171
+ - ".standard.yml"
171
172
  - ".yardopts"
172
173
  - Appraisals
173
174
  - CHANGELOG.md
@@ -175,16 +176,17 @@ files:
175
176
  - LICENSE
176
177
  - README.md
177
178
  - Rakefile
178
- - gemfiles/rails42.gemfile
179
179
  - gemfiles/rails50.gemfile
180
180
  - gemfiles/rails51.gemfile
181
181
  - gemfiles/rails52.gemfile
182
182
  - gemfiles/rails60.gemfile
183
183
  - gemfiles/rails61.gemfile
184
+ - gemfiles/rails70.gemfile
184
185
  - lib/audited-rspec.rb
185
186
  - lib/audited.rb
186
187
  - lib/audited/audit.rb
187
188
  - lib/audited/auditor.rb
189
+ - lib/audited/railtie.rb
188
190
  - lib/audited/rspec_matchers.rb
189
191
  - lib/audited/sweeper.rb
190
192
  - lib/audited/version.rb
@@ -206,14 +208,12 @@ files:
206
208
  - spec/audited/auditor_spec.rb
207
209
  - spec/audited/rspec_matchers_spec.rb
208
210
  - spec/audited/sweeper_spec.rb
211
+ - spec/audited_spec.rb
209
212
  - spec/audited_spec_helpers.rb
210
213
  - spec/rails_app/app/assets/config/manifest.js
211
- - spec/rails_app/app/controllers/application_controller.rb
212
214
  - spec/rails_app/config/application.rb
213
215
  - spec/rails_app/config/database.yml
214
216
  - spec/rails_app/config/environment.rb
215
- - spec/rails_app/config/environments/development.rb
216
- - spec/rails_app/config/environments/production.rb
217
217
  - spec/rails_app/config/environments/test.rb
218
218
  - spec/rails_app/config/initializers/backtrace_silencers.rb
219
219
  - spec/rails_app/config/initializers/inflections.rb
@@ -252,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
252
252
  - !ruby/object:Gem::Version
253
253
  version: '0'
254
254
  requirements: []
255
- rubygems_version: 3.1.4
255
+ rubygems_version: 3.3.7
256
256
  signing_key:
257
257
  specification_version: 4
258
258
  summary: Log all changes to your models
data/.rubocop.yml DELETED
@@ -1,25 +0,0 @@
1
- AllCops:
2
- DisplayCopNames: true
3
- TargetRubyVersion: 2.3
4
- Exclude:
5
- - lib/generators/audited/templates/**/*
6
- - vendor/bundle/**/*
7
- - gemfiles/vendor/bundle/**/*
8
-
9
- Bundler/OrderedGems:
10
- Enabled: false
11
-
12
- Gemspec/OrderedDependencies:
13
- Enabled: false
14
-
15
- Layout:
16
- Enabled: false
17
-
18
- Metrics:
19
- Enabled: false
20
-
21
- Naming:
22
- Enabled: false
23
-
24
- Style:
25
- Enabled: false
data/.travis.yml DELETED
@@ -1,63 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- rvm:
4
- - 2.3.7
5
- - 2.4.4
6
- - 2.5.1
7
- - 2.6.3
8
- - ruby-head
9
- env:
10
- - DB=SQLITE
11
- - DB=POSTGRES
12
- - DB=MYSQL
13
- addons:
14
- postgresql: "9.4"
15
- services:
16
- - mysql
17
- before_install:
18
- # https://github.com/travis-ci/travis-ci/issues/8978
19
- - "travis_retry gem update --system"
20
- # Rails 4.2 has a bundler 1.x requirement
21
- - if [ $BUNDLE_GEMFILE = $PWD/gemfiles/rails42.gemfile ]; then
22
- travis_retry gem install -v '1.17.3' bundler;
23
- bundle _1.17.3_ install;
24
- else
25
- travis_retry gem install bundler;
26
- fi
27
- gemfile:
28
- - gemfiles/rails42.gemfile
29
- - gemfiles/rails50.gemfile
30
- - gemfiles/rails51.gemfile
31
- - gemfiles/rails52.gemfile
32
- - gemfiles/rails60.gemfile
33
- - gemfiles/rails61.gemfile
34
- matrix:
35
- include:
36
- - rvm: 2.6.3
37
- script: bundle exec rubocop --parallel
38
- env: DB=rubocop # make travis build display nicer
39
- exclude:
40
- - rvm: 2.3.7
41
- gemfile: gemfiles/rails61.gemfile
42
- - rvm: 2.4.4
43
- gemfile: gemfiles/rails61.gemfile
44
- - rvm: 2.3.7
45
- gemfile: gemfiles/rails60.gemfile
46
- - rvm: 2.4.4
47
- gemfile: gemfiles/rails60.gemfile
48
- - rvm: 2.6.3
49
- gemfile: gemfiles/rails42.gemfile
50
- - rvm: ruby-head
51
- gemfile: gemfiles/rails42.gemfile
52
- allow_failures:
53
- - rvm: ruby-head
54
- fast_finish: true
55
- branches:
56
- only:
57
- - master
58
- - /.*-stable$/
59
- notifications:
60
- webhooks:
61
- urls:
62
- - http://buildlight.collectiveidea.com/
63
- on_start: always
@@ -1,11 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rails", "~> 4.2.0"
6
- gem "protected_attributes"
7
- gem "mysql2", ">= 0.3.13", "< 0.6.0"
8
- gem "pg", "~> 0.15"
9
- gem "sqlite3", "~> 1.3.6"
10
-
11
- gemspec name: "audited", path: "../"
@@ -1,2 +0,0 @@
1
- class ApplicationController < ActionController::Base
2
- end
@@ -1,21 +0,0 @@
1
- RailsApp::Application.configure do
2
- # Settings specified here will take precedence over those in config/environment.rb
3
-
4
- # In the development environment your application's code is reloaded on
5
- # every request. This slows down response time but is perfect for development
6
- # since you don't have to restart the webserver when you make code changes.
7
- config.cache_classes = false
8
-
9
- # Log error messages when you accidentally call methods on nil.
10
- # config.whiny_nils = true
11
-
12
- # Show full error reports and disable caching
13
- config.consider_all_requests_local = true
14
- config.action_view.debug_rjs = true
15
- config.action_controller.perform_caching = false
16
-
17
- # Don't care if the mailer can't send
18
- config.action_mailer.raise_delivery_errors = false
19
-
20
- config.eager_load = false
21
- end
@@ -1,35 +0,0 @@
1
- RailsApp::Application.configure do
2
- # Settings specified here will take precedence over those in config/environment.rb
3
-
4
- # The production environment is meant for finished, "live" apps.
5
- # Code is not reloaded between requests
6
- config.cache_classes = true
7
-
8
- # Full error reports are disabled and caching is turned on
9
- config.consider_all_requests_local = false
10
- config.action_controller.perform_caching = true
11
-
12
- # See everything in the log (default is :info)
13
- # config.log_level = :debug
14
-
15
- # Use a different logger for distributed setups
16
- # config.logger = SyslogLogger.new
17
-
18
- # Use a different cache store in production
19
- # config.cache_store = :mem_cache_store
20
-
21
- # Disable Rails's static asset server
22
- # In production, Apache or nginx will already do this
23
- config.serve_static_assets = false
24
-
25
- # Enable serving of images, stylesheets, and javascripts from an asset server
26
- # config.action_controller.asset_host = "http://assets.example.com"
27
-
28
- # Disable delivery errors, bad email addresses will be ignored
29
- # config.action_mailer.raise_delivery_errors = false
30
-
31
- # Enable threaded mode
32
- # config.threadsafe!
33
-
34
- config.eager_load = true
35
- end