audited 3.0.0.rc1

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.
Files changed (44) hide show
  1. data/.gitignore +11 -0
  2. data/.travis.yml +13 -0
  3. data/.yardopts +3 -0
  4. data/Appraisals +11 -0
  5. data/CHANGELOG +34 -0
  6. data/Gemfile +3 -0
  7. data/LICENSE +19 -0
  8. data/README.md +206 -0
  9. data/Rakefile +24 -0
  10. data/audited-activerecord.gemspec +19 -0
  11. data/audited-mongo_mapper.gemspec +19 -0
  12. data/audited.gemspec +25 -0
  13. data/gemfiles/rails30.gemfile +7 -0
  14. data/gemfiles/rails31.gemfile +7 -0
  15. data/gemfiles/rails32.gemfile +7 -0
  16. data/lib/audited.rb +11 -0
  17. data/lib/audited/audit.rb +105 -0
  18. data/lib/audited/auditor.rb +272 -0
  19. data/lib/audited/sweeper.rb +45 -0
  20. data/spec/audited_spec_helpers.rb +31 -0
  21. data/spec/rails_app/config/application.rb +5 -0
  22. data/spec/rails_app/config/database.yml +24 -0
  23. data/spec/rails_app/config/environment.rb +5 -0
  24. data/spec/rails_app/config/environments/development.rb +19 -0
  25. data/spec/rails_app/config/environments/production.rb +33 -0
  26. data/spec/rails_app/config/environments/test.rb +33 -0
  27. data/spec/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  28. data/spec/rails_app/config/initializers/inflections.rb +2 -0
  29. data/spec/rails_app/config/initializers/secret_token.rb +2 -0
  30. data/spec/rails_app/config/routes.rb +6 -0
  31. data/spec/spec_helper.rb +23 -0
  32. data/spec/support/active_record/models.rb +84 -0
  33. data/spec/support/active_record/schema.rb +54 -0
  34. data/spec/support/mongo_mapper/connection.rb +4 -0
  35. data/spec/support/mongo_mapper/models.rb +174 -0
  36. data/test/db/version_1.rb +17 -0
  37. data/test/db/version_2.rb +18 -0
  38. data/test/db/version_3.rb +19 -0
  39. data/test/db/version_4.rb +20 -0
  40. data/test/db/version_5.rb +18 -0
  41. data/test/install_generator_test.rb +17 -0
  42. data/test/test_helper.rb +19 -0
  43. data/test/upgrade_generator_test.rb +65 -0
  44. metadata +220 -0
@@ -0,0 +1,18 @@
1
+ ActiveRecord::Schema.define do
2
+ create_table :audits, :force => true do |t|
3
+ t.column :auditable_id, :integer
4
+ t.column :auditable_type, :string
5
+ t.column :user_id, :integer
6
+ t.column :user_type, :string
7
+ t.column :username, :string
8
+ t.column :action, :string
9
+ t.column :audited_changes, :text
10
+ t.column :version, :integer, :default => 0
11
+ t.column :comment, :string
12
+ t.column :created_at, :datetime
13
+ t.column :remote_address, :string
14
+ t.column :association_id, :integer
15
+ t.column :association_type, :string
16
+ end
17
+ end
18
+
@@ -0,0 +1,17 @@
1
+ require 'test_helper'
2
+
3
+ require 'generators/audited/install_generator'
4
+
5
+ class InstallGeneratorTest < Rails::Generators::TestCase
6
+ destination File.expand_path('../../tmp', __FILE__)
7
+ setup :prepare_destination
8
+ tests Audited::Generators::InstallGenerator
9
+
10
+ test "should generate a migration" do
11
+ run_generator %w(install)
12
+
13
+ assert_migration "db/migrate/install_audited.rb" do |content|
14
+ assert_match /class InstallAudited/, content
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,19 @@
1
+ ENV['RAILS_ENV'] = 'test'
2
+
3
+ $:.unshift File.dirname(__FILE__)
4
+
5
+ require File.expand_path('../../spec/rails_app/config/environment', __FILE__)
6
+ require 'rails/test_help'
7
+
8
+ require 'audited'
9
+
10
+ class ActiveSupport::TestCase
11
+
12
+ setup do
13
+ ActiveRecord::Migration.verbose = false
14
+ end
15
+
16
+ def load_schema( version )
17
+ load File.dirname(__FILE__) + "/db/version_#{version}.rb"
18
+ end
19
+ end
@@ -0,0 +1,65 @@
1
+ require 'test_helper'
2
+
3
+ require 'generators/audited/upgrade_generator'
4
+
5
+ class UpgradeGeneratorTest < Rails::Generators::TestCase
6
+ destination File.expand_path('../../tmp', __FILE__)
7
+ setup :prepare_destination
8
+ tests Audited::Generators::UpgradeGenerator
9
+
10
+ test "should add 'comment' to audits table" do
11
+ load_schema 1
12
+
13
+ run_generator %w(upgrade)
14
+
15
+ assert_migration "db/migrate/add_comment_to_audits.rb" do |content|
16
+ assert_match /add_column :audits, :comment, :string/, content
17
+ end
18
+
19
+ assert_migration "db/migrate/rename_changes_to_audited_changes.rb"
20
+ end
21
+
22
+ test "should rename 'changes' to 'audited_changes'" do
23
+ load_schema 2
24
+
25
+ run_generator %w(upgrade)
26
+
27
+ assert_no_migration "db/migrate/add_comment_to_audits.rb"
28
+
29
+ assert_migration "db/migrate/rename_changes_to_audited_changes.rb" do |content|
30
+ assert_match /rename_column :audits, :changes, :audited_changes/, content
31
+ end
32
+ end
33
+
34
+ test "should add a 'remote_address' to audits table" do
35
+ load_schema 3
36
+
37
+ run_generator %w(upgrade)
38
+
39
+ assert_migration "db/migrate/add_remote_address_to_audits.rb" do |content|
40
+ assert_match /add_column :audits, :remote_address, :string/, content
41
+ end
42
+ end
43
+
44
+ test "should add 'association_id' and 'association_type' to audits table" do
45
+ load_schema 4
46
+
47
+ run_generator %w(upgrade)
48
+
49
+ assert_migration "db/migrate/add_association_to_audits.rb" do |content|
50
+ assert_match /add_column :audits, :association_id, :integer/, content
51
+ assert_match /add_column :audits, :association_type, :string/, content
52
+ end
53
+ end
54
+
55
+ test "should rename 'association_id' to 'associated_id' and 'association_type' to 'associated_type'" do
56
+ load_schema 5
57
+
58
+ run_generator %w(upgrade)
59
+
60
+ assert_migration "db/migrate/rename_association_to_associated.rb" do |content|
61
+ assert_match /rename_column :audits, :association_id, :associated_id/, content
62
+ assert_match /rename_column :audits, :association_type, :associated_type/, content
63
+ end
64
+ end
65
+ end
metadata ADDED
@@ -0,0 +1,220 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: audited
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.0.rc1
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - Brandon Keepers
9
+ - Kenneth Kalmer
10
+ - Daniel Morrison
11
+ - Brian Ryckbost
12
+ - Steve Richert
13
+ - Ryan Glover
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+ date: 2012-04-25 00:00:00.000000000 Z
18
+ dependencies:
19
+ - !ruby/object:Gem::Dependency
20
+ name: activerecord
21
+ requirement: !ruby/object:Gem::Requirement
22
+ none: false
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '3.0'
27
+ type: :development
28
+ prerelease: false
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: '3.0'
35
+ - !ruby/object:Gem::Dependency
36
+ name: appraisal
37
+ requirement: !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ~>
41
+ - !ruby/object:Gem::Version
42
+ version: '0.4'
43
+ type: :development
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ none: false
47
+ requirements:
48
+ - - ~>
49
+ - !ruby/object:Gem::Version
50
+ version: '0.4'
51
+ - !ruby/object:Gem::Dependency
52
+ name: bson_ext
53
+ requirement: !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ~>
57
+ - !ruby/object:Gem::Version
58
+ version: '1.6'
59
+ type: :development
60
+ prerelease: false
61
+ version_requirements: !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: '1.6'
67
+ - !ruby/object:Gem::Dependency
68
+ name: mongo_mapper
69
+ requirement: !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ version: '0.11'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '0.11'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ~>
89
+ - !ruby/object:Gem::Version
90
+ version: '3.0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ~>
97
+ - !ruby/object:Gem::Version
98
+ version: '3.0'
99
+ - !ruby/object:Gem::Dependency
100
+ name: rspec-rails
101
+ requirement: !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ~>
105
+ - !ruby/object:Gem::Version
106
+ version: '2.0'
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ none: false
111
+ requirements:
112
+ - - ~>
113
+ - !ruby/object:Gem::Version
114
+ version: '2.0'
115
+ - !ruby/object:Gem::Dependency
116
+ name: sqlite3
117
+ requirement: !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ~>
121
+ - !ruby/object:Gem::Version
122
+ version: '1.0'
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ none: false
127
+ requirements:
128
+ - - ~>
129
+ - !ruby/object:Gem::Version
130
+ version: '1.0'
131
+ description: Log all changes to your models
132
+ email: info@collectiveidea.com
133
+ executables: []
134
+ extensions: []
135
+ extra_rdoc_files: []
136
+ files:
137
+ - .gitignore
138
+ - .travis.yml
139
+ - .yardopts
140
+ - Appraisals
141
+ - CHANGELOG
142
+ - Gemfile
143
+ - LICENSE
144
+ - README.md
145
+ - Rakefile
146
+ - audited-activerecord.gemspec
147
+ - audited-mongo_mapper.gemspec
148
+ - audited.gemspec
149
+ - gemfiles/rails30.gemfile
150
+ - gemfiles/rails31.gemfile
151
+ - gemfiles/rails32.gemfile
152
+ - lib/audited.rb
153
+ - lib/audited/audit.rb
154
+ - lib/audited/auditor.rb
155
+ - lib/audited/sweeper.rb
156
+ - spec/audited_spec_helpers.rb
157
+ - spec/rails_app/config/application.rb
158
+ - spec/rails_app/config/database.yml
159
+ - spec/rails_app/config/environment.rb
160
+ - spec/rails_app/config/environments/development.rb
161
+ - spec/rails_app/config/environments/production.rb
162
+ - spec/rails_app/config/environments/test.rb
163
+ - spec/rails_app/config/initializers/backtrace_silencers.rb
164
+ - spec/rails_app/config/initializers/inflections.rb
165
+ - spec/rails_app/config/initializers/secret_token.rb
166
+ - spec/rails_app/config/routes.rb
167
+ - spec/spec_helper.rb
168
+ - spec/support/active_record/models.rb
169
+ - spec/support/active_record/schema.rb
170
+ - spec/support/mongo_mapper/connection.rb
171
+ - spec/support/mongo_mapper/models.rb
172
+ - test/db/version_1.rb
173
+ - test/db/version_2.rb
174
+ - test/db/version_3.rb
175
+ - test/db/version_4.rb
176
+ - test/db/version_5.rb
177
+ - test/install_generator_test.rb
178
+ - test/test_helper.rb
179
+ - test/upgrade_generator_test.rb
180
+ homepage: https://github.com/collectiveidea/audited
181
+ licenses: []
182
+ post_install_message:
183
+ rdoc_options: []
184
+ require_paths:
185
+ - lib
186
+ required_ruby_version: !ruby/object:Gem::Requirement
187
+ none: false
188
+ requirements:
189
+ - - ! '>='
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ required_rubygems_version: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>'
196
+ - !ruby/object:Gem::Version
197
+ version: 1.3.1
198
+ requirements: []
199
+ rubyforge_project:
200
+ rubygems_version: 1.8.21
201
+ signing_key:
202
+ specification_version: 3
203
+ summary: Log all changes to your models
204
+ test_files:
205
+ - spec/audited_spec_helpers.rb
206
+ - spec/rails_app/config/application.rb
207
+ - spec/rails_app/config/database.yml
208
+ - spec/rails_app/config/environment.rb
209
+ - spec/rails_app/config/environments/development.rb
210
+ - spec/rails_app/config/environments/production.rb
211
+ - spec/rails_app/config/environments/test.rb
212
+ - spec/rails_app/config/initializers/backtrace_silencers.rb
213
+ - spec/rails_app/config/initializers/inflections.rb
214
+ - spec/rails_app/config/initializers/secret_token.rb
215
+ - spec/rails_app/config/routes.rb
216
+ - spec/spec_helper.rb
217
+ - spec/support/active_record/models.rb
218
+ - spec/support/active_record/schema.rb
219
+ - spec/support/mongo_mapper/connection.rb
220
+ - spec/support/mongo_mapper/models.rb