A kind of monkey patch and an invitation for criticism for all you (who know this stuff better than I do)

I've often felt the need including Rails' view helpers within my
controllers, if only for some simple things like formatting my flash
notices with text helpers or html escaping. I loved this suggestion,
which helps by not cluttering the namespace of controllers:

http://snippets.dzone.com/posts/show/1799

But I wanted to generalize this a little to automatically include
whatever helper modules are included in the views. So I dreamt up 35
lines of goodness:

class Object
  def metaclass; class << self; self; end; end
end

module ActionController
  class Base
    class_inheritable_accessor :controller_helper_module
    class_inheritable_accessor :controller_helper_object
    self.controller_helper_module = Module.new
    self.controller_helper_object = Object.new

    class << self
      def add_template_helper_with_controller_helper(helper_module)
        self.controller_helper_module.send(:include, helper_module)
        recreate_controller_helper_object
        add_template_helper_without_controller_helper(helper_module)
      end
      alias_method_chain :add_template_helper, :controller_helper

      def inherited_with_controller_helper(child)
        inherited_without_controller_helper(child)
        child.controller_helper_module.send :include,
controller_helper_module
        child.recreate_controller_helper_object
      end
      alias_method_chain :inherited, :controller_helper

      def recreate_controller_helper_object
        self.controller_helper_object = Object.new
        self.controller_helper_object.metaclass.send(:include,
controller_helper_module)
      end
    end

    protected

    def help
      self.class.controller_helper_object
    end

  end
end