From bed876819207e3ae84a285470b39544c2850f38b Mon Sep 17 00:00:00 2001 From: simon Date: Mon, 9 Feb 2009 21:55:02 +0100 Subject: * here comes da wicked sick auditing observer hack --- lib/auditing.rb | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 lib/auditing.rb (limited to 'lib') 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 @@ + module Auditing + def self.included(base) + ActiveRecord::Base.observers.each do |observer| + observer = if observer.respond_to?(:to_sym) + observer.to_s.camelize.constantize.instance + elsif observer.respond_to?(:instance) + observer.instance + else + raise ArgumentError, "#{observer} is an invalid class name" + end + base.around_filter(observer) if observer.is_a?(Auditing::Observer) + end + end + + class Observer < ActiveRecord::Observer + attr_accessor :controller + + def before(controller) + self.controller = controller + end + + def after(controller) + self.controller = nil + end + end +end \ No newline at end of file -- cgit v1.3