audited 4.6.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 +35 -21
- data/Appraisals +29 -12
- data/CHANGELOG.md +108 -0
- data/README.md +125 -39
- data/gemfiles/rails42.gemfile +3 -0
- data/gemfiles/rails50.gemfile +3 -0
- data/gemfiles/rails51.gemfile +3 -0
- data/gemfiles/rails52.gemfile +4 -2
- data/gemfiles/rails60.gemfile +10 -0
- data/gemfiles/rails61.gemfile +10 -0
- data/lib/audited.rb +2 -1
- data/lib/audited/audit.rb +31 -25
- data/lib/audited/auditor.rb +199 -39
- 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 +1 -1
- data/lib/generators/audited/upgrade_generator.rb +4 -0
- data/spec/audited/audit_spec.rb +88 -21
- data/spec/audited/auditor_spec.rb +450 -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 +50 -3
- 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 +60 -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,12 +1,15 @@
|
|
1
1
|
ENV['RAILS_ENV'] = 'test'
|
2
|
+
require 'bundler/setup'
|
3
|
+
require 'single_cov'
|
4
|
+
SingleCov.setup :rspec
|
2
5
|
|
3
|
-
require 'bundler'
|
4
6
|
if Bundler.definition.dependencies.map(&:name).include?('protected_attributes')
|
5
7
|
require 'protected_attributes'
|
6
8
|
end
|
7
9
|
require 'rails_app/config/environment'
|
8
10
|
require 'rspec/rails'
|
9
11
|
require 'audited'
|
12
|
+
require 'audited-rspec'
|
10
13
|
require 'audited_spec_helpers'
|
11
14
|
require 'support/active_record/models'
|
12
15
|
|
@@ -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
|
7
|
+
audited except: :password
|
8
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,12 +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
|
148
181
|
- gemfiles/rails52.gemfile
|
182
|
+
- gemfiles/rails60.gemfile
|
183
|
+
- gemfiles/rails61.gemfile
|
149
184
|
- lib/audited-rspec.rb
|
150
185
|
- lib/audited.rb
|
151
186
|
- lib/audited/audit.rb
|
@@ -160,6 +195,7 @@ files:
|
|
160
195
|
- lib/generators/audited/templates/add_comment_to_audits.rb
|
161
196
|
- lib/generators/audited/templates/add_remote_address_to_audits.rb
|
162
197
|
- lib/generators/audited/templates/add_request_uuid_to_audits.rb
|
198
|
+
- lib/generators/audited/templates/add_version_to_auditable_index.rb
|
163
199
|
- lib/generators/audited/templates/install.rb
|
164
200
|
- lib/generators/audited/templates/rename_association_to_associated.rb
|
165
201
|
- lib/generators/audited/templates/rename_changes_to_audited_changes.rb
|
@@ -168,8 +204,11 @@ files:
|
|
168
204
|
- lib/generators/audited/upgrade_generator.rb
|
169
205
|
- spec/audited/audit_spec.rb
|
170
206
|
- spec/audited/auditor_spec.rb
|
207
|
+
- spec/audited/rspec_matchers_spec.rb
|
171
208
|
- spec/audited/sweeper_spec.rb
|
172
209
|
- spec/audited_spec_helpers.rb
|
210
|
+
- spec/rails_app/app/assets/config/manifest.js
|
211
|
+
- spec/rails_app/app/controllers/application_controller.rb
|
173
212
|
- spec/rails_app/config/application.rb
|
174
213
|
- spec/rails_app/config/database.yml
|
175
214
|
- spec/rails_app/config/environment.rb
|
@@ -198,7 +237,7 @@ homepage: https://github.com/collectiveidea/audited
|
|
198
237
|
licenses:
|
199
238
|
- MIT
|
200
239
|
metadata: {}
|
201
|
-
post_install_message:
|
240
|
+
post_install_message:
|
202
241
|
rdoc_options: []
|
203
242
|
require_paths:
|
204
243
|
- lib
|
@@ -206,16 +245,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
206
245
|
requirements:
|
207
246
|
- - ">="
|
208
247
|
- !ruby/object:Gem::Version
|
209
|
-
version:
|
248
|
+
version: 2.3.0
|
210
249
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
211
250
|
requirements:
|
212
251
|
- - ">="
|
213
252
|
- !ruby/object:Gem::Version
|
214
253
|
version: '0'
|
215
254
|
requirements: []
|
216
|
-
|
217
|
-
|
218
|
-
signing_key:
|
255
|
+
rubygems_version: 3.1.4
|
256
|
+
signing_key:
|
219
257
|
specification_version: 4
|
220
258
|
summary: Log all changes to your models
|
221
259
|
test_files: []
|