audited 4.2.0 → 4.3.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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +11 -9
  3. data/Appraisals +10 -3
  4. data/Gemfile +1 -1
  5. data/README.md +57 -44
  6. data/Rakefile +3 -18
  7. data/gemfiles/rails40.gemfile +1 -1
  8. data/gemfiles/rails41.gemfile +1 -1
  9. data/gemfiles/rails42.gemfile +1 -1
  10. data/gemfiles/rails50.gemfile +8 -0
  11. data/lib/audited/audit.rb +97 -57
  12. data/lib/audited/auditor.rb +86 -43
  13. data/lib/audited/rspec_matchers.rb +6 -2
  14. data/lib/audited/sweeper.rb +10 -19
  15. data/lib/audited/version.rb +1 -1
  16. data/lib/audited-rspec.rb +4 -0
  17. data/lib/audited.rb +15 -2
  18. data/lib/generators/audited/install_generator.rb +20 -0
  19. data/lib/generators/audited/migration.rb +15 -0
  20. data/lib/generators/audited/templates/add_association_to_audits.rb +11 -0
  21. data/lib/generators/audited/templates/add_comment_to_audits.rb +9 -0
  22. data/lib/generators/audited/templates/add_remote_address_to_audits.rb +10 -0
  23. data/lib/generators/audited/templates/add_request_uuid_to_audits.rb +10 -0
  24. data/lib/generators/audited/templates/install.rb +30 -0
  25. data/lib/generators/audited/templates/rename_association_to_associated.rb +23 -0
  26. data/lib/generators/audited/templates/rename_changes_to_audited_changes.rb +9 -0
  27. data/lib/generators/audited/templates/rename_parent_to_association.rb +11 -0
  28. data/lib/generators/audited/upgrade_generator.rb +57 -0
  29. data/spec/audited/audit_spec.rb +199 -0
  30. data/spec/audited/auditor_spec.rb +607 -0
  31. data/spec/audited/sweeper_spec.rb +106 -0
  32. data/spec/audited_spec_helpers.rb +6 -22
  33. data/spec/rails_app/config/environments/test.rb +7 -4
  34. data/spec/rails_app/config/initializers/secret_token.rb +1 -1
  35. data/spec/rails_app/config/routes.rb +1 -4
  36. data/spec/spec_helper.rb +7 -9
  37. data/spec/support/active_record/models.rb +23 -13
  38. data/spec/support/active_record/schema.rb +37 -12
  39. data/test/db/version_1.rb +4 -4
  40. data/test/db/version_2.rb +4 -4
  41. data/test/db/version_3.rb +4 -4
  42. data/test/db/version_4.rb +4 -4
  43. data/test/db/version_5.rb +2 -2
  44. data/test/db/version_6.rb +2 -2
  45. data/test/install_generator_test.rb +1 -1
  46. data/test/upgrade_generator_test.rb +10 -10
  47. metadata +56 -76
  48. data/lib/audited/active_record/version.rb +0 -5
  49. data/lib/audited/mongo_mapper/version.rb +0 -5
  50. data/spec/support/mongo_mapper/connection.rb +0 -4
  51. data/spec/support/mongo_mapper/models.rb +0 -214
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.2.0
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandon Keepers
@@ -13,148 +13,132 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2015-03-31 00:00:00.000000000 Z
16
+ date: 2016-09-17 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
- name: rails-observers
19
+ name: activerecord
20
20
  requirement: !ruby/object:Gem::Requirement
21
21
  requirements:
22
- - - "~>"
22
+ - - ">="
23
23
  - !ruby/object:Gem::Version
24
- version: 0.1.2
24
+ version: '4.0'
25
+ - - "<"
26
+ - !ruby/object:Gem::Version
27
+ version: '5.1'
25
28
  type: :runtime
26
29
  prerelease: false
27
30
  version_requirements: !ruby/object:Gem::Requirement
28
- requirements:
29
- - - "~>"
30
- - !ruby/object:Gem::Version
31
- version: 0.1.2
32
- - !ruby/object:Gem::Dependency
33
- name: protected_attributes
34
- requirement: !ruby/object:Gem::Requirement
35
31
  requirements:
36
32
  - - ">="
37
33
  - !ruby/object:Gem::Version
38
- version: '0'
39
- type: :development
40
- prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- requirements:
43
- - - ">="
34
+ version: '4.0'
35
+ - - "<"
44
36
  - !ruby/object:Gem::Version
45
- version: '0'
37
+ version: '5.1'
46
38
  - !ruby/object:Gem::Dependency
47
- name: appraisal
39
+ name: rails-observers
48
40
  requirement: !ruby/object:Gem::Requirement
49
41
  requirements:
50
42
  - - "~>"
51
43
  - !ruby/object:Gem::Version
52
- version: 1.0.0
53
- type: :development
44
+ version: 0.1.2
45
+ type: :runtime
54
46
  prerelease: false
55
47
  version_requirements: !ruby/object:Gem::Requirement
56
48
  requirements:
57
49
  - - "~>"
58
50
  - !ruby/object:Gem::Version
59
- version: 1.0.0
51
+ version: 0.1.2
60
52
  - !ruby/object:Gem::Dependency
61
- name: mongo_mapper
53
+ name: appraisal
62
54
  requirement: !ruby/object:Gem::Requirement
63
55
  requirements:
64
- - - "~>"
56
+ - - ">="
65
57
  - !ruby/object:Gem::Version
66
- version: 0.13.0.beta2
58
+ version: '0'
67
59
  type: :development
68
60
  prerelease: false
69
61
  version_requirements: !ruby/object:Gem::Requirement
70
62
  requirements:
71
- - - "~>"
63
+ - - ">="
72
64
  - !ruby/object:Gem::Version
73
- version: 0.13.0.beta2
65
+ version: '0'
74
66
  - !ruby/object:Gem::Dependency
75
67
  name: rails
76
68
  requirement: !ruby/object:Gem::Requirement
77
69
  requirements:
78
- - - "~>"
70
+ - - ">="
79
71
  - !ruby/object:Gem::Version
80
- version: 4.2.0
72
+ version: '4.0'
73
+ - - "<"
74
+ - !ruby/object:Gem::Version
75
+ version: '5.1'
81
76
  type: :development
82
77
  prerelease: false
83
78
  version_requirements: !ruby/object:Gem::Requirement
84
79
  requirements:
85
- - - "~>"
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '4.0'
83
+ - - "<"
86
84
  - !ruby/object:Gem::Version
87
- version: 4.2.0
85
+ version: '5.1'
88
86
  - !ruby/object:Gem::Dependency
89
87
  name: rspec-rails
90
88
  requirement: !ruby/object:Gem::Requirement
91
89
  requirements:
92
90
  - - "~>"
93
91
  - !ruby/object:Gem::Version
94
- version: '3.0'
92
+ version: '3.5'
95
93
  type: :development
96
94
  prerelease: false
97
95
  version_requirements: !ruby/object:Gem::Requirement
98
96
  requirements:
99
97
  - - "~>"
100
98
  - !ruby/object:Gem::Version
101
- version: '3.0'
99
+ version: '3.5'
102
100
  - !ruby/object:Gem::Dependency
103
101
  name: sqlite3
104
102
  requirement: !ruby/object:Gem::Requirement
105
103
  requirements:
106
104
  - - "~>"
107
105
  - !ruby/object:Gem::Version
108
- version: '1.2'
106
+ version: '1.3'
109
107
  type: :development
110
108
  prerelease: false
111
109
  version_requirements: !ruby/object:Gem::Requirement
112
110
  requirements:
113
111
  - - "~>"
114
112
  - !ruby/object:Gem::Version
115
- version: '1.2'
113
+ version: '1.3'
116
114
  - !ruby/object:Gem::Dependency
117
115
  name: mysql2
118
116
  requirement: !ruby/object:Gem::Requirement
119
117
  requirements:
120
118
  - - "~>"
121
119
  - !ruby/object:Gem::Version
122
- version: '0.3'
120
+ version: 0.3.20
123
121
  type: :development
124
122
  prerelease: false
125
123
  version_requirements: !ruby/object:Gem::Requirement
126
124
  requirements:
127
125
  - - "~>"
128
126
  - !ruby/object:Gem::Version
129
- version: '0.3'
127
+ version: 0.3.20
130
128
  - !ruby/object:Gem::Dependency
131
129
  name: pg
132
130
  requirement: !ruby/object:Gem::Requirement
133
131
  requirements:
134
132
  - - "~>"
135
133
  - !ruby/object:Gem::Version
136
- version: '0.17'
134
+ version: '0.18'
137
135
  type: :development
138
136
  prerelease: false
139
137
  version_requirements: !ruby/object:Gem::Requirement
140
138
  requirements:
141
139
  - - "~>"
142
140
  - !ruby/object:Gem::Version
143
- version: '0.17'
144
- - !ruby/object:Gem::Dependency
145
- name: bson_ext
146
- requirement: !ruby/object:Gem::Requirement
147
- requirements:
148
- - - "~>"
149
- - !ruby/object:Gem::Version
150
- version: '1.6'
151
- type: :development
152
- prerelease: false
153
- version_requirements: !ruby/object:Gem::Requirement
154
- requirements:
155
- - - "~>"
156
- - !ruby/object:Gem::Version
157
- version: '1.6'
141
+ version: '0.18'
158
142
  description: Log all changes to your models
159
143
  email: info@collectiveidea.com
160
144
  executables: []
@@ -173,14 +157,28 @@ files:
173
157
  - gemfiles/rails40.gemfile
174
158
  - gemfiles/rails41.gemfile
175
159
  - gemfiles/rails42.gemfile
160
+ - gemfiles/rails50.gemfile
161
+ - lib/audited-rspec.rb
176
162
  - lib/audited.rb
177
- - lib/audited/active_record/version.rb
178
163
  - lib/audited/audit.rb
179
164
  - lib/audited/auditor.rb
180
- - lib/audited/mongo_mapper/version.rb
181
165
  - lib/audited/rspec_matchers.rb
182
166
  - lib/audited/sweeper.rb
183
167
  - lib/audited/version.rb
168
+ - lib/generators/audited/install_generator.rb
169
+ - lib/generators/audited/migration.rb
170
+ - lib/generators/audited/templates/add_association_to_audits.rb
171
+ - lib/generators/audited/templates/add_comment_to_audits.rb
172
+ - lib/generators/audited/templates/add_remote_address_to_audits.rb
173
+ - lib/generators/audited/templates/add_request_uuid_to_audits.rb
174
+ - lib/generators/audited/templates/install.rb
175
+ - lib/generators/audited/templates/rename_association_to_associated.rb
176
+ - lib/generators/audited/templates/rename_changes_to_audited_changes.rb
177
+ - lib/generators/audited/templates/rename_parent_to_association.rb
178
+ - lib/generators/audited/upgrade_generator.rb
179
+ - spec/audited/audit_spec.rb
180
+ - spec/audited/auditor_spec.rb
181
+ - spec/audited/sweeper_spec.rb
184
182
  - spec/audited_spec_helpers.rb
185
183
  - spec/rails_app/config/application.rb
186
184
  - spec/rails_app/config/database.yml
@@ -195,8 +193,6 @@ files:
195
193
  - spec/spec_helper.rb
196
194
  - spec/support/active_record/models.rb
197
195
  - spec/support/active_record/schema.rb
198
- - spec/support/mongo_mapper/connection.rb
199
- - spec/support/mongo_mapper/models.rb
200
196
  - test/db/version_1.rb
201
197
  - test/db/version_2.rb
202
198
  - test/db/version_3.rb
@@ -226,24 +222,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
226
222
  version: '0'
227
223
  requirements: []
228
224
  rubyforge_project:
229
- rubygems_version: 2.4.6
225
+ rubygems_version: 2.6.6
230
226
  signing_key:
231
227
  specification_version: 4
232
228
  summary: Log all changes to your models
233
- test_files:
234
- - spec/audited_spec_helpers.rb
235
- - spec/rails_app/config/application.rb
236
- - spec/rails_app/config/database.yml
237
- - spec/rails_app/config/environment.rb
238
- - spec/rails_app/config/environments/development.rb
239
- - spec/rails_app/config/environments/production.rb
240
- - spec/rails_app/config/environments/test.rb
241
- - spec/rails_app/config/initializers/backtrace_silencers.rb
242
- - spec/rails_app/config/initializers/inflections.rb
243
- - spec/rails_app/config/initializers/secret_token.rb
244
- - spec/rails_app/config/routes.rb
245
- - spec/spec_helper.rb
246
- - spec/support/active_record/models.rb
247
- - spec/support/active_record/schema.rb
248
- - spec/support/mongo_mapper/connection.rb
249
- - spec/support/mongo_mapper/models.rb
229
+ test_files: []
@@ -1,5 +0,0 @@
1
- module Audited
2
- module ActiveRecord
3
- VERSION = "4.2.0"
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- module Audited
2
- module MongoMapper
3
- VERSION = "4.2.0"
4
- end
5
- end
@@ -1,4 +0,0 @@
1
- require 'mongo_mapper'
2
-
3
- MongoMapper.connection = Mongo::Connection.new
4
- MongoMapper.database = 'audited_test'
@@ -1,214 +0,0 @@
1
- require 'cgi'
2
- require 'mongo_mapper'
3
- require File.expand_path('../connection', __FILE__)
4
-
5
- module Models
6
- module MongoMapper
7
- class User
8
- include ::MongoMapper::Document
9
-
10
- key :name, String
11
- key :username, String
12
- key :password, String
13
- key :activated, Boolean
14
- key :suspended_at, Time
15
- key :logins, Integer, :default => 0
16
- timestamps!
17
-
18
- audited :allow_mass_assignment => true, :except => :password
19
-
20
- attr_protected :logins
21
-
22
- def name=(val)
23
- write_attribute(:name, CGI.escapeHTML(val))
24
- end
25
- end
26
-
27
- class CommentRequiredUser
28
- include ::MongoMapper::Document
29
-
30
- key :name, String
31
- key :username, String
32
- key :password, String
33
- key :activated, Boolean
34
- key :suspended_at, Time
35
- key :logins, Integer, :default => 0
36
- timestamps!
37
-
38
- audited :comment_required => true
39
- end
40
-
41
- class AccessibleAfterDeclarationUser
42
- include ::MongoMapper::Document
43
-
44
- key :name, String
45
- key :username, String
46
- key :password, String
47
- key :activated, Boolean
48
- key :suspended_at, Time
49
- key :logins, Integer, :default => 0
50
- timestamps!
51
-
52
- audited
53
- attr_accessible :name, :username, :password
54
- end
55
-
56
- class AccessibleBeforeDeclarationUser
57
- include ::MongoMapper::Document
58
-
59
- key :name, String
60
- key :username, String
61
- key :password, String
62
- key :activated, Boolean
63
- key :suspended_at, Time
64
- key :logins, Integer, :default => 0
65
- timestamps!
66
-
67
- attr_accessible :name, :username, :password # declare attr_accessible before calling aaa
68
- audited
69
- end
70
-
71
- class NoAttributeProtectionUser
72
- include ::MongoMapper::Document
73
-
74
- key :name, String
75
- key :username, String
76
- key :password, String
77
- key :activated, Boolean
78
- key :suspended_at, Time
79
- key :logins, Integer, :default => 0
80
- timestamps!
81
-
82
- audited :allow_mass_assignment => true
83
- end
84
-
85
- class UserWithAfterAudit
86
- include ::MongoMapper::Document
87
-
88
- key :name, String
89
- key :username, String
90
- key :password, String
91
- key :activated, Boolean
92
- key :suspended_at, Time
93
- key :logins, Integer, :default => 0
94
- timestamps!
95
-
96
- audited
97
- attr_accessor :bogus_attr, :around_attr
98
-
99
- def after_audit
100
- self.bogus_attr = "do something"
101
- end
102
-
103
- def around_audit
104
- self.around_attr = yield
105
- end
106
- end
107
-
108
- class Company
109
- include ::MongoMapper::Document
110
-
111
- key :name, String
112
- key :owner_id, ObjectId
113
-
114
- audited
115
- end
116
-
117
- class Owner
118
- include ::MongoMapper::Document
119
-
120
- key :name, String
121
- key :username, String
122
- key :password, String
123
- key :activated, Boolean
124
- key :suspended_at, Time
125
- key :logins, Integer, :default => 0
126
- timestamps!
127
-
128
- has_associated_audits
129
- end
130
-
131
- class OwnedCompany
132
- include ::MongoMapper::Document
133
-
134
- key :name, String
135
- key :owner_id, ObjectId
136
-
137
- belongs_to :owner, :class_name => "Owner"
138
- attr_accessible :name, :owner # declare attr_accessible before calling aaa
139
- audited :associated_with => :owner
140
- end
141
-
142
- class OnUpdateDestroy
143
- include ::MongoMapper::Document
144
-
145
- key :name, String
146
- key :owner_id, ObjectId
147
-
148
- audited :on => [:update, :destroy]
149
- end
150
-
151
- class OnCreateDestroy
152
- include ::MongoMapper::Document
153
-
154
- key :name, String
155
- key :owner_id, ObjectId
156
-
157
- audited :on => [:create, :destroy]
158
- end
159
-
160
- class OnCreateDestroyExceptName
161
- include ::MongoMapper::Document
162
-
163
- key :name, String
164
- key :owner_id, ObjectId
165
-
166
- audited :except => :name, :on => [:create, :destroy]
167
- end
168
-
169
- class OnCreateUpdate
170
- include ::MongoMapper::Document
171
-
172
- key :name, String
173
- key :owner_id, ObjectId
174
-
175
- audited :on => [:create, :update]
176
- end
177
-
178
- class RichObjectUser
179
- include ::MongoMapper::Document
180
-
181
- class Name
182
- attr_accessor :first_name, :last_name
183
-
184
- def self.from_mongo(value)
185
- case value
186
- when String then new(*value.split)
187
- when self then value
188
- end
189
- end
190
-
191
- def self.to_mongo(value)
192
- case value
193
- when String then value
194
- when self then value.to_s
195
- end
196
- end
197
-
198
- def initialize(first_name, last_name)
199
- self.first_name, self.last_name = first_name, last_name
200
- end
201
-
202
- def to_s
203
- [first_name, last_name].compact.join(' ')
204
- end
205
- end
206
-
207
- key :name, Name
208
-
209
- attr_accessible :name
210
-
211
- audited
212
- end
213
- end
214
- end