module Rakismet module Controller def self.included(base) base.class_eval do extend ClassMethods around_filter :rakismet end end def rakismet(&block) Rakismet::Base.rakismet_binding = binding yield Rakismet::Base.rakismet_binding = nil end private :rakismet module ClassMethods def rakismet_filter(opts={}) skip_filter :rakismet # in case we're inheriting from another Rakismeted controller opts.assert_valid_keys(:only, :except) self.around_filter :rakismet, opts end end end end