acts_as_audited 1.0.1 → 1.0.2
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.
- data/README +1 -2
- data/VERSION +1 -1
- data/acts_as_audited.gemspec +2 -2
- data/lib/acts_as_audited/audit_sweeper.rb +6 -20
- data/lib/acts_as_audited.rb +6 -6
- data/test/audit_sweeper_test.rb +11 -1
- data/test/test_helper.rb +1 -0
- metadata +2 -2
data/README
CHANGED
@@ -9,8 +9,7 @@ The purpose of this fork is to store both the previous values and the changed va
|
|
9
9
|
* acts_as_audited can be installed as a gem:
|
10
10
|
|
11
11
|
# config/environment.rb
|
12
|
-
config.gem '
|
13
|
-
:source => 'http://gems.github.com'
|
12
|
+
config.gem 'acts_as_audited', :lib => false, :source => 'http://gemcutter.org'
|
14
13
|
|
15
14
|
or a plugin:
|
16
15
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.2
|
data/acts_as_audited.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{acts_as_audited}
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Brandon Keepers"]
|
12
|
-
s.date = %q{2009-
|
12
|
+
s.date = %q{2009-10-29}
|
13
13
|
s.email = %q{brandon@opensoul.org}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"LICENSE",
|
@@ -27,7 +27,7 @@ module CollectiveIdea #:nodoc:
|
|
27
27
|
# You can also specify an options hash which will be passed on to
|
28
28
|
# Rails' cache_sweeper call:
|
29
29
|
#
|
30
|
-
# audit User, :only => [:create, :edit, :destroy]
|
30
|
+
# audit User, :only => [:create, :edit, :destroy],
|
31
31
|
#
|
32
32
|
def audit(*models)
|
33
33
|
options = models.extract_options!
|
@@ -39,16 +39,12 @@ module CollectiveIdea #:nodoc:
|
|
39
39
|
|
40
40
|
models.each do |(model, model_options)|
|
41
41
|
model.send :acts_as_audited, model_options || {}
|
42
|
-
|
43
|
-
# disable ActiveRecord callbacks, which are replaced by the AuditSweeper
|
44
|
-
model.send :disable_auditing_callbacks
|
45
|
-
|
46
|
-
# prevent observer from being registered multiple times
|
47
|
-
model.delete_observer(AuditSweeper.instance)
|
48
|
-
model.add_observer(AuditSweeper.instance)
|
49
42
|
end
|
50
43
|
|
51
44
|
class_eval do
|
45
|
+
# prevent observer from being registered multiple times
|
46
|
+
Audit.delete_observer(AuditSweeper.instance)
|
47
|
+
Audit.add_observer(AuditSweeper.instance)
|
52
48
|
cache_sweeper :audit_sweeper, options
|
53
49
|
end
|
54
50
|
end
|
@@ -59,21 +55,11 @@ module CollectiveIdea #:nodoc:
|
|
59
55
|
end
|
60
56
|
|
61
57
|
class AuditSweeper < ActionController::Caching::Sweeper #:nodoc:
|
62
|
-
|
63
|
-
|
64
|
-
record.send(:audit_create, current_user)
|
65
|
-
end
|
66
|
-
|
67
|
-
def after_destroy(record)
|
68
|
-
record.send(:audit_destroy, current_user)
|
69
|
-
end
|
70
|
-
|
71
|
-
def before_update(record)
|
72
|
-
record.send(:audit_update, current_user)
|
58
|
+
def before_create(record)
|
59
|
+
record.user ||= current_user
|
73
60
|
end
|
74
61
|
|
75
62
|
def current_user
|
76
63
|
controller.send :current_user if controller.respond_to?(:current_user, true)
|
77
64
|
end
|
78
|
-
|
79
65
|
end
|
data/lib/acts_as_audited.rb
CHANGED
@@ -183,18 +183,18 @@ module CollectiveIdea #:nodoc:
|
|
183
183
|
audits.find(:all, :conditions => ['version <= ?', version])
|
184
184
|
end
|
185
185
|
|
186
|
-
def audit_create
|
187
|
-
write_audit(:action => 'create', :changes => audited_attributes
|
186
|
+
def audit_create
|
187
|
+
write_audit(:action => 'create', :changes => audited_attributes)
|
188
188
|
end
|
189
189
|
|
190
|
-
def audit_update
|
190
|
+
def audit_update
|
191
191
|
unless (changes = audited_changes).empty?
|
192
|
-
write_audit(:action => 'update', :changes => changes
|
192
|
+
write_audit(:action => 'update', :changes => changes)
|
193
193
|
end
|
194
194
|
end
|
195
195
|
|
196
|
-
def audit_destroy
|
197
|
-
write_audit(:action => 'destroy', :
|
196
|
+
def audit_destroy
|
197
|
+
write_audit(:action => 'destroy', :changes => audited_attributes)
|
198
198
|
end
|
199
199
|
|
200
200
|
def write_audit(attrs)
|
data/test/audit_sweeper_test.rb
CHANGED
@@ -1,13 +1,18 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/test_helper')
|
2
2
|
|
3
3
|
class AuditsController < ActionController::Base
|
4
|
-
audit Company
|
4
|
+
audit Company, User
|
5
5
|
|
6
6
|
def audit
|
7
7
|
@company = Company.create
|
8
8
|
render :nothing => true
|
9
9
|
end
|
10
10
|
|
11
|
+
def update_user
|
12
|
+
current_user.update_attributes({:password => 'foo'})
|
13
|
+
render :nothing => true
|
14
|
+
end
|
15
|
+
|
11
16
|
private
|
12
17
|
attr_accessor :current_user
|
13
18
|
end
|
@@ -26,4 +31,9 @@ class AuditsControllerTest < ActionController::TestCase
|
|
26
31
|
assigns(:company).audits.last.user.should == user
|
27
32
|
end
|
28
33
|
|
34
|
+
should "not save blank audits" do
|
35
|
+
user = @controller.send(:current_user=, create_user)
|
36
|
+
lambda { post :update_user }.should_not change { Audit.count }
|
37
|
+
end
|
38
|
+
|
29
39
|
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_audited
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Keepers
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-10-29 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|