audited 4.5.0 → 4.10.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.
- checksums.yaml +5 -5
- data/.gitignore +0 -1
- data/.rubocop.yml +25 -0
- data/.travis.yml +37 -16
- data/Appraisals +33 -11
- data/CHANGELOG.md +151 -0
- data/README.md +125 -39
- data/gemfiles/rails42.gemfile +4 -1
- data/gemfiles/rails50.gemfile +4 -1
- data/gemfiles/rails51.gemfile +5 -2
- data/gemfiles/rails52.gemfile +10 -0
- data/gemfiles/rails60.gemfile +10 -0
- data/gemfiles/rails61.gemfile +10 -0
- data/lib/audited.rb +4 -2
- data/lib/audited/audit.rb +39 -14
- data/lib/audited/auditor.rb +223 -72
- data/lib/audited/rspec_matchers.rb +70 -21
- data/lib/audited/version.rb +1 -1
- data/lib/generators/audited/templates/add_version_to_auditable_index.rb +21 -0
- data/lib/generators/audited/templates/install.rb +2 -2
- data/lib/generators/audited/templates/revert_polymorphic_indexes_order.rb +20 -0
- data/lib/generators/audited/upgrade_generator.rb +9 -0
- data/spec/audited/audit_spec.rb +93 -4
- data/spec/audited/auditor_spec.rb +473 -57
- data/spec/audited/rspec_matchers_spec.rb +69 -0
- data/spec/audited/sweeper_spec.rb +15 -6
- data/spec/audited_spec_helpers.rb +16 -2
- data/spec/rails_app/app/assets/config/manifest.js +1 -0
- data/spec/rails_app/app/controllers/application_controller.rb +2 -0
- data/spec/rails_app/config/application.rb +5 -0
- data/spec/rails_app/config/database.yml +1 -0
- data/spec/spec_helper.rb +4 -1
- data/spec/support/active_record/models.rb +51 -4
- data/spec/support/active_record/schema.rb +4 -2
- data/test/db/version_6.rb +2 -0
- data/test/test_helper.rb +1 -2
- data/test/upgrade_generator_test.rb +10 -0
- metadata +62 -22
- data/gemfiles/rails40.gemfile +0 -9
- data/gemfiles/rails41.gemfile +0 -8
@@ -0,0 +1,69 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Models::ActiveRecord::UserExceptPassword do
|
4
|
+
let(:non_audited_columns) { subject.class.non_audited_columns }
|
5
|
+
|
6
|
+
it { should_not be_audited.only(non_audited_columns) }
|
7
|
+
it { should be_audited.except(:password) }
|
8
|
+
it { should_not be_audited.requires_comment }
|
9
|
+
it { should be_audited.on(:create, :update, :destroy) }
|
10
|
+
# test chaining
|
11
|
+
it { should be_audited.except(:password).on(:create, :update, :destroy) }
|
12
|
+
end
|
13
|
+
|
14
|
+
describe Models::ActiveRecord::UserOnlyPassword do
|
15
|
+
let(:audited_columns) { subject.class.audited_columns }
|
16
|
+
|
17
|
+
it { should be_audited.only(:password) }
|
18
|
+
it { should_not be_audited.except(audited_columns) }
|
19
|
+
it { should_not be_audited.requires_comment }
|
20
|
+
it { should be_audited.on(:create, :update, :destroy) }
|
21
|
+
it { should be_audited.only(:password).on(:create, :update, :destroy) }
|
22
|
+
end
|
23
|
+
|
24
|
+
describe Models::ActiveRecord::CommentRequiredUser do
|
25
|
+
let(:audited_columns) { subject.class.audited_columns }
|
26
|
+
let(:non_audited_columns) { subject.class.non_audited_columns }
|
27
|
+
|
28
|
+
it { should_not be_audited.only(non_audited_columns) }
|
29
|
+
it { should_not be_audited.except(audited_columns) }
|
30
|
+
it { should be_audited.requires_comment }
|
31
|
+
it { should be_audited.on(:create, :update, :destroy) }
|
32
|
+
it { should be_audited.requires_comment.on(:create, :update, :destroy) }
|
33
|
+
end
|
34
|
+
|
35
|
+
describe Models::ActiveRecord::OnCreateCommentRequiredUser do
|
36
|
+
let(:audited_columns) { subject.class.audited_columns }
|
37
|
+
let(:non_audited_columns) { subject.class.non_audited_columns }
|
38
|
+
|
39
|
+
it { should_not be_audited.only(non_audited_columns) }
|
40
|
+
it { should_not be_audited.except(audited_columns) }
|
41
|
+
it { should be_audited.requires_comment }
|
42
|
+
it { should be_audited.on(:create) }
|
43
|
+
it { should_not be_audited.on(:update, :destroy) }
|
44
|
+
it { should be_audited.requires_comment.on(:create) }
|
45
|
+
end
|
46
|
+
|
47
|
+
describe Models::ActiveRecord::OnUpdateCommentRequiredUser do
|
48
|
+
let(:audited_columns) { subject.class.audited_columns }
|
49
|
+
let(:non_audited_columns) { subject.class.non_audited_columns }
|
50
|
+
|
51
|
+
it { should_not be_audited.only(non_audited_columns) }
|
52
|
+
it { should_not be_audited.except(audited_columns) }
|
53
|
+
it { should be_audited.requires_comment }
|
54
|
+
it { should be_audited.on(:update) }
|
55
|
+
it { should_not be_audited.on(:create, :destroy) }
|
56
|
+
it { should be_audited.requires_comment.on(:update) }
|
57
|
+
end
|
58
|
+
|
59
|
+
describe Models::ActiveRecord::OnDestroyCommentRequiredUser do
|
60
|
+
let(:audited_columns) { subject.class.audited_columns }
|
61
|
+
let(:non_audited_columns) { subject.class.non_audited_columns }
|
62
|
+
|
63
|
+
it { should_not be_audited.only(non_audited_columns) }
|
64
|
+
it { should_not be_audited.except(audited_columns) }
|
65
|
+
it { should be_audited.requires_comment }
|
66
|
+
it { should be_audited.on(:destroy) }
|
67
|
+
it { should_not be_audited.on(:create, :update) }
|
68
|
+
it { should be_audited.requires_comment.on(:destroy) }
|
69
|
+
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
+
SingleCov.covered! uncovered: 2 # 2 conditional on_load conditions
|
4
|
+
|
3
5
|
class AuditsController < ActionController::Base
|
4
6
|
before_action :populate_user
|
5
7
|
|
@@ -11,7 +13,7 @@ class AuditsController < ActionController::Base
|
|
11
13
|
end
|
12
14
|
|
13
15
|
def update
|
14
|
-
current_user.
|
16
|
+
current_user.update!(password: 'foo')
|
15
17
|
head :ok
|
16
18
|
end
|
17
19
|
|
@@ -27,14 +29,13 @@ describe AuditsController do
|
|
27
29
|
include RSpec::Rails::ControllerExampleGroup
|
28
30
|
render_views
|
29
31
|
|
30
|
-
before
|
32
|
+
before do
|
31
33
|
Audited.current_user_method = :current_user
|
32
34
|
end
|
33
35
|
|
34
36
|
let(:user) { create_user }
|
35
37
|
|
36
38
|
describe "POST audit" do
|
37
|
-
|
38
39
|
it "should audit user" do
|
39
40
|
controller.send(:current_user=, user)
|
40
41
|
expect {
|
@@ -44,6 +45,15 @@ describe AuditsController do
|
|
44
45
|
expect(controller.company.audits.last.user).to eq(user)
|
45
46
|
end
|
46
47
|
|
48
|
+
it "does not audit when method is not found" do
|
49
|
+
controller.send(:current_user=, user)
|
50
|
+
Audited.current_user_method = :nope
|
51
|
+
expect {
|
52
|
+
post :create
|
53
|
+
}.to change( Audited::Audit, :count )
|
54
|
+
expect(controller.company.audits.last.user).to eq(nil)
|
55
|
+
end
|
56
|
+
|
47
57
|
it "should support custom users for sweepers" do
|
48
58
|
controller.send(:custom_user=, user)
|
49
59
|
Audited.current_user_method = :custom_user
|
@@ -84,7 +94,6 @@ describe AuditsController do
|
|
84
94
|
|
85
95
|
expect(controller.company.audits.last.user).to eq(user)
|
86
96
|
end
|
87
|
-
|
88
97
|
end
|
89
98
|
|
90
99
|
describe "PUT update" do
|
@@ -92,13 +101,13 @@ describe AuditsController do
|
|
92
101
|
controller.send(:current_user=, user)
|
93
102
|
|
94
103
|
expect {
|
95
|
-
|
104
|
+
params = Rails::VERSION::MAJOR == 4 ? {id: 123} : {params: {id: 123}}
|
105
|
+
put :update, **params
|
96
106
|
}.to_not change( Audited::Audit, :count )
|
97
107
|
end
|
98
108
|
end
|
99
109
|
end
|
100
110
|
|
101
|
-
|
102
111
|
describe Audited::Sweeper do
|
103
112
|
|
104
113
|
it "should be thread-safe" do
|
@@ -8,8 +8,8 @@ module AuditedSpecHelpers
|
|
8
8
|
Models::ActiveRecord::User.new({name: 'darth', username: 'darth', password: 'noooooooo'}.merge(attrs))
|
9
9
|
end
|
10
10
|
|
11
|
-
def create_versions(n = 2)
|
12
|
-
Models::ActiveRecord::User.create(name: 'Foobar 1').tap do |u|
|
11
|
+
def create_versions(n = 2, attrs = {})
|
12
|
+
Models::ActiveRecord::User.create(name: 'Foobar 1', **attrs).tap do |u|
|
13
13
|
(n - 1).times do |i|
|
14
14
|
u.update_attribute :name, "Foobar #{i + 2}"
|
15
15
|
end
|
@@ -17,4 +17,18 @@ module AuditedSpecHelpers
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
+
def run_migrations(direction, migrations_paths, target_version = nil)
|
21
|
+
if rails_below?('5.2.0.rc1')
|
22
|
+
ActiveRecord::Migrator.send(direction, migrations_paths, target_version)
|
23
|
+
elsif rails_below?('6.0.0.rc1')
|
24
|
+
ActiveRecord::MigrationContext.new(migrations_paths).send(direction, target_version)
|
25
|
+
else
|
26
|
+
ActiveRecord::MigrationContext.new(migrations_paths, ActiveRecord::SchemaMigration).send(direction, target_version)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def rails_below?(rails_version)
|
31
|
+
Gem::Version.new(Rails::VERSION::STRING) < Gem::Version.new(rails_version)
|
32
|
+
end
|
33
|
+
|
20
34
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{}
|
@@ -6,3 +6,8 @@ module RailsApp
|
|
6
6
|
config.i18n.enforce_available_locales = true
|
7
7
|
end
|
8
8
|
end
|
9
|
+
|
10
|
+
require 'active_record/connection_adapters/sqlite3_adapter'
|
11
|
+
if ActiveRecord::ConnectionAdapters::SQLite3Adapter.respond_to?(:represent_boolean_as_integer)
|
12
|
+
ActiveRecord::ConnectionAdapters::SQLite3Adapter.represent_boolean_as_integer = true
|
13
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
ENV['RAILS_ENV'] = 'test'
|
2
|
+
require 'bundler/setup'
|
3
|
+
require 'single_cov'
|
4
|
+
SingleCov.setup :rspec
|
2
5
|
|
3
6
|
if Bundler.definition.dependencies.map(&:name).include?('protected_attributes')
|
4
7
|
require 'protected_attributes'
|
@@ -6,9 +9,9 @@ end
|
|
6
9
|
require 'rails_app/config/environment'
|
7
10
|
require 'rspec/rails'
|
8
11
|
require 'audited'
|
12
|
+
require 'audited-rspec'
|
9
13
|
require 'audited_spec_helpers'
|
10
14
|
require 'support/active_record/models'
|
11
|
-
load "audited/sweeper.rb" # force to reload sweeper
|
12
15
|
|
13
16
|
SPEC_ROOT = Pathname.new(File.expand_path('../', __FILE__))
|
14
17
|
|
@@ -4,19 +4,40 @@ require File.expand_path('../schema', __FILE__)
|
|
4
4
|
module Models
|
5
5
|
module ActiveRecord
|
6
6
|
class User < ::ActiveRecord::Base
|
7
|
-
audited
|
8
|
-
|
7
|
+
audited except: :password
|
8
|
+
attribute :non_column_attr if Rails.version >= '5.1'
|
9
9
|
attr_protected :logins if respond_to?(:attr_protected)
|
10
|
+
enum status: { active: 0, reliable: 1, banned: 2 }
|
10
11
|
|
11
12
|
def name=(val)
|
12
13
|
write_attribute(:name, CGI.escapeHTML(val))
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
17
|
+
class UserExceptPassword < ::ActiveRecord::Base
|
18
|
+
self.table_name = :users
|
19
|
+
audited except: :password
|
20
|
+
end
|
21
|
+
|
16
22
|
class UserOnlyPassword < ::ActiveRecord::Base
|
17
23
|
self.table_name = :users
|
18
24
|
attribute :non_column_attr if Rails.version >= '5.1'
|
19
|
-
audited
|
25
|
+
audited only: :password
|
26
|
+
end
|
27
|
+
|
28
|
+
class UserRedactedPassword < ::ActiveRecord::Base
|
29
|
+
self.table_name = :users
|
30
|
+
audited redacted: :password
|
31
|
+
end
|
32
|
+
|
33
|
+
class UserMultipleRedactedAttributes < ::ActiveRecord::Base
|
34
|
+
self.table_name = :users
|
35
|
+
audited redacted: [:password, :ssn]
|
36
|
+
end
|
37
|
+
|
38
|
+
class UserRedactedPasswordCustomRedaction < ::ActiveRecord::Base
|
39
|
+
self.table_name = :users
|
40
|
+
audited redacted: :password, redaction_value: ["My", "Custom", "Value", 7]
|
20
41
|
end
|
21
42
|
|
22
43
|
class CommentRequiredUser < ::ActiveRecord::Base
|
@@ -24,6 +45,26 @@ module Models
|
|
24
45
|
audited comment_required: true
|
25
46
|
end
|
26
47
|
|
48
|
+
class OnCreateCommentRequiredUser < ::ActiveRecord::Base
|
49
|
+
self.table_name = :users
|
50
|
+
audited comment_required: true, on: :create
|
51
|
+
end
|
52
|
+
|
53
|
+
class OnUpdateCommentRequiredUser < ::ActiveRecord::Base
|
54
|
+
self.table_name = :users
|
55
|
+
audited comment_required: true, on: :update
|
56
|
+
end
|
57
|
+
|
58
|
+
class OnDestroyCommentRequiredUser < ::ActiveRecord::Base
|
59
|
+
self.table_name = :users
|
60
|
+
audited comment_required: true, on: :destroy
|
61
|
+
end
|
62
|
+
|
63
|
+
class NoUpdateWithCommentOnlyUser < ::ActiveRecord::Base
|
64
|
+
self.table_name = :users
|
65
|
+
audited update_with_comment_only: false
|
66
|
+
end
|
67
|
+
|
27
68
|
class AccessibleAfterDeclarationUser < ::ActiveRecord::Base
|
28
69
|
self.table_name = :users
|
29
70
|
audited
|
@@ -38,7 +79,7 @@ module Models
|
|
38
79
|
|
39
80
|
class NoAttributeProtectionUser < ::ActiveRecord::Base
|
40
81
|
self.table_name = :users
|
41
|
-
audited
|
82
|
+
audited
|
42
83
|
end
|
43
84
|
|
44
85
|
class UserWithAfterAudit < ::ActiveRecord::Base
|
@@ -57,6 +98,11 @@ module Models
|
|
57
98
|
end
|
58
99
|
end
|
59
100
|
|
101
|
+
class MaxAuditsUser < ::ActiveRecord::Base
|
102
|
+
self.table_name = :users
|
103
|
+
audited max_audits: 5
|
104
|
+
end
|
105
|
+
|
60
106
|
class Company < ::ActiveRecord::Base
|
61
107
|
audited
|
62
108
|
end
|
@@ -66,6 +112,7 @@ module Models
|
|
66
112
|
|
67
113
|
class Owner < ::ActiveRecord::Base
|
68
114
|
self.table_name = 'users'
|
115
|
+
audited
|
69
116
|
has_associated_audits
|
70
117
|
has_many :companies, class_name: "OwnedCompany", dependent: :destroy
|
71
118
|
end
|
@@ -15,10 +15,10 @@ begin
|
|
15
15
|
db_config[:configure_connection] = false
|
16
16
|
end
|
17
17
|
adapter = ActiveRecord::Base.send("#{db_type}_connection", db_config)
|
18
|
-
adapter.recreate_database db_name
|
18
|
+
adapter.recreate_database db_name, db_config.slice('charset').symbolize_keys
|
19
19
|
adapter.disconnect!
|
20
20
|
end
|
21
|
-
rescue
|
21
|
+
rescue => e
|
22
22
|
Kernel.warn e
|
23
23
|
end
|
24
24
|
|
@@ -35,11 +35,13 @@ ActiveRecord::Schema.define do
|
|
35
35
|
t.column :username, :string
|
36
36
|
t.column :password, :string
|
37
37
|
t.column :activated, :boolean
|
38
|
+
t.column :status, :integer, default: 0
|
38
39
|
t.column :suspended_at, :datetime
|
39
40
|
t.column :logins, :integer, default: 0
|
40
41
|
t.column :created_at, :datetime
|
41
42
|
t.column :updated_at, :datetime
|
42
43
|
t.column :favourite_device, :string
|
44
|
+
t.column :ssn, :integer
|
43
45
|
end
|
44
46
|
|
45
47
|
create_table :companies do |t|
|
data/test/db/version_6.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
ENV['RAILS_ENV'] = 'test'
|
2
2
|
|
3
|
-
|
3
|
+
$LOAD_PATH.unshift File.dirname(__FILE__)
|
4
4
|
|
5
5
|
require File.expand_path('../../spec/rails_app/config/environment', __FILE__)
|
6
6
|
require 'rails/test_help'
|
@@ -8,7 +8,6 @@ require 'rails/test_help'
|
|
8
8
|
require 'audited'
|
9
9
|
|
10
10
|
class ActiveSupport::TestCase
|
11
|
-
|
12
11
|
setup do
|
13
12
|
ActiveRecord::Migration.verbose = false
|
14
13
|
end
|
@@ -79,6 +79,16 @@ class UpgradeGeneratorTest < Rails::Generators::TestCase
|
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
82
|
+
test "should add 'version' to auditable_index" do
|
83
|
+
load_schema 6
|
84
|
+
|
85
|
+
run_generator %w(upgrade)
|
86
|
+
|
87
|
+
assert_migration "db/migrate/add_version_to_auditable_index.rb" do |content|
|
88
|
+
assert_match(/add_index :audits, \[:auditable_type, :auditable_id, :version\]/, content)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
82
92
|
test "generate migration with correct AR migration parent" do
|
83
93
|
load_schema 1
|
84
94
|
|
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.
|
4
|
+
version: 4.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Keepers
|
@@ -10,10 +10,10 @@ authors:
|
|
10
10
|
- Brian Ryckbost
|
11
11
|
- Steve Richert
|
12
12
|
- Ryan Glover
|
13
|
-
autorequire:
|
13
|
+
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date:
|
16
|
+
date: 2021-01-08 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.
|
24
|
+
version: '4.2'
|
25
25
|
- - "<"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '6.2'
|
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.
|
34
|
+
version: '4.2'
|
35
35
|
- - "<"
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: '
|
37
|
+
version: '6.2'
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: appraisal
|
40
40
|
requirement: !ruby/object:Gem::Requirement
|
@@ -55,20 +55,34 @@ dependencies:
|
|
55
55
|
requirements:
|
56
56
|
- - ">="
|
57
57
|
- !ruby/object:Gem::Version
|
58
|
-
version: '4.
|
58
|
+
version: '4.2'
|
59
59
|
- - "<"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '6.2'
|
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.
|
68
|
+
version: '4.2'
|
69
69
|
- - "<"
|
70
70
|
- !ruby/object:Gem::Version
|
71
|
-
version: '
|
71
|
+
version: '6.2'
|
72
|
+
- !ruby/object:Gem::Dependency
|
73
|
+
name: rubocop
|
74
|
+
requirement: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - "~>"
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 0.54.0
|
79
|
+
type: :development
|
80
|
+
prerelease: false
|
81
|
+
version_requirements: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - "~>"
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 0.54.0
|
72
86
|
- !ruby/object:Gem::Dependency
|
73
87
|
name: rspec-rails
|
74
88
|
requirement: !ruby/object:Gem::Requirement
|
@@ -83,6 +97,20 @@ dependencies:
|
|
83
97
|
- - "~>"
|
84
98
|
- !ruby/object:Gem::Version
|
85
99
|
version: '3.5'
|
100
|
+
- !ruby/object:Gem::Dependency
|
101
|
+
name: single_cov
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '0'
|
107
|
+
type: :development
|
108
|
+
prerelease: false
|
109
|
+
version_requirements: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '0'
|
86
114
|
- !ruby/object:Gem::Dependency
|
87
115
|
name: sqlite3
|
88
116
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,30 +129,36 @@ dependencies:
|
|
101
129
|
name: mysql2
|
102
130
|
requirement: !ruby/object:Gem::Requirement
|
103
131
|
requirements:
|
104
|
-
- - "
|
132
|
+
- - ">="
|
105
133
|
- !ruby/object:Gem::Version
|
106
134
|
version: 0.3.20
|
107
135
|
type: :development
|
108
136
|
prerelease: false
|
109
137
|
version_requirements: !ruby/object:Gem::Requirement
|
110
138
|
requirements:
|
111
|
-
- - "
|
139
|
+
- - ">="
|
112
140
|
- !ruby/object:Gem::Version
|
113
141
|
version: 0.3.20
|
114
142
|
- !ruby/object:Gem::Dependency
|
115
143
|
name: pg
|
116
144
|
requirement: !ruby/object:Gem::Requirement
|
117
145
|
requirements:
|
118
|
-
- - "
|
146
|
+
- - ">="
|
119
147
|
- !ruby/object:Gem::Version
|
120
148
|
version: '0.18'
|
149
|
+
- - "<"
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '2.0'
|
121
152
|
type: :development
|
122
153
|
prerelease: false
|
123
154
|
version_requirements: !ruby/object:Gem::Requirement
|
124
155
|
requirements:
|
125
|
-
- - "
|
156
|
+
- - ">="
|
126
157
|
- !ruby/object:Gem::Version
|
127
158
|
version: '0.18'
|
159
|
+
- - "<"
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '2.0'
|
128
162
|
description: Log all changes to your models
|
129
163
|
email: info@collectiveidea.com
|
130
164
|
executables: []
|
@@ -132,6 +166,7 @@ extensions: []
|
|
132
166
|
extra_rdoc_files: []
|
133
167
|
files:
|
134
168
|
- ".gitignore"
|
169
|
+
- ".rubocop.yml"
|
135
170
|
- ".travis.yml"
|
136
171
|
- ".yardopts"
|
137
172
|
- Appraisals
|
@@ -140,11 +175,12 @@ files:
|
|
140
175
|
- LICENSE
|
141
176
|
- README.md
|
142
177
|
- Rakefile
|
143
|
-
- gemfiles/rails40.gemfile
|
144
|
-
- gemfiles/rails41.gemfile
|
145
178
|
- gemfiles/rails42.gemfile
|
146
179
|
- gemfiles/rails50.gemfile
|
147
180
|
- gemfiles/rails51.gemfile
|
181
|
+
- gemfiles/rails52.gemfile
|
182
|
+
- gemfiles/rails60.gemfile
|
183
|
+
- gemfiles/rails61.gemfile
|
148
184
|
- lib/audited-rspec.rb
|
149
185
|
- lib/audited.rb
|
150
186
|
- lib/audited/audit.rb
|
@@ -159,15 +195,20 @@ files:
|
|
159
195
|
- lib/generators/audited/templates/add_comment_to_audits.rb
|
160
196
|
- lib/generators/audited/templates/add_remote_address_to_audits.rb
|
161
197
|
- lib/generators/audited/templates/add_request_uuid_to_audits.rb
|
198
|
+
- lib/generators/audited/templates/add_version_to_auditable_index.rb
|
162
199
|
- lib/generators/audited/templates/install.rb
|
163
200
|
- lib/generators/audited/templates/rename_association_to_associated.rb
|
164
201
|
- lib/generators/audited/templates/rename_changes_to_audited_changes.rb
|
165
202
|
- lib/generators/audited/templates/rename_parent_to_association.rb
|
203
|
+
- lib/generators/audited/templates/revert_polymorphic_indexes_order.rb
|
166
204
|
- lib/generators/audited/upgrade_generator.rb
|
167
205
|
- spec/audited/audit_spec.rb
|
168
206
|
- spec/audited/auditor_spec.rb
|
207
|
+
- spec/audited/rspec_matchers_spec.rb
|
169
208
|
- spec/audited/sweeper_spec.rb
|
170
209
|
- spec/audited_spec_helpers.rb
|
210
|
+
- spec/rails_app/app/assets/config/manifest.js
|
211
|
+
- spec/rails_app/app/controllers/application_controller.rb
|
171
212
|
- spec/rails_app/config/application.rb
|
172
213
|
- spec/rails_app/config/database.yml
|
173
214
|
- spec/rails_app/config/environment.rb
|
@@ -196,7 +237,7 @@ homepage: https://github.com/collectiveidea/audited
|
|
196
237
|
licenses:
|
197
238
|
- MIT
|
198
239
|
metadata: {}
|
199
|
-
post_install_message:
|
240
|
+
post_install_message:
|
200
241
|
rdoc_options: []
|
201
242
|
require_paths:
|
202
243
|
- lib
|
@@ -204,16 +245,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
204
245
|
requirements:
|
205
246
|
- - ">="
|
206
247
|
- !ruby/object:Gem::Version
|
207
|
-
version:
|
248
|
+
version: 2.3.0
|
208
249
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
209
250
|
requirements:
|
210
251
|
- - ">="
|
211
252
|
- !ruby/object:Gem::Version
|
212
253
|
version: '0'
|
213
254
|
requirements: []
|
214
|
-
|
215
|
-
|
216
|
-
signing_key:
|
255
|
+
rubygems_version: 3.1.4
|
256
|
+
signing_key:
|
217
257
|
specification_version: 4
|
218
258
|
summary: Log all changes to your models
|
219
259
|
test_files: []
|