summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorsimon <simon@zagal.(none)>2009-02-09 21:55:02 +0100
committerhukl <hukl@eight.local>2009-02-15 20:22:07 +0100
commitbed876819207e3ae84a285470b39544c2850f38b (patch)
tree1ddd43697228ee6457bec9ca6cece62a602a74de /lib
parent654f1542cafb3a8fc6bcd559952ae1a14c825fc9 (diff)
* here comes da wicked sick auditing observer hack
Diffstat (limited to 'lib')
-rw-r--r--lib/auditing.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/auditing.rb b/lib/auditing.rb
new file mode 100644
index 0000000..5379148
--- /dev/null
+++ b/lib/auditing.rb
@@ -0,0 +1,26 @@
1 module Auditing
2 def self.included(base)
3 ActiveRecord::Base.observers.each do |observer|
4 observer = if observer.respond_to?(:to_sym)
5 observer.to_s.camelize.constantize.instance
6 elsif observer.respond_to?(:instance)
7 observer.instance
8 else
9 raise ArgumentError, "#{observer} is an invalid class name"
10 end
11 base.around_filter(observer) if observer.is_a?(Auditing::Observer)
12 end
13 end
14
15 class Observer < ActiveRecord::Observer
16 attr_accessor :controller
17
18 def before(controller)
19 self.controller = controller
20 end
21
22 def after(controller)
23 self.controller = nil
24 end
25 end
26end \ No newline at end of file