Sha256: 855c66f52326d8334f630dd5417b0ee69ba1b87b7c56f62f508adb3f7aac9026
Contents?: true
Size: 1.79 KB
Versions: 1
Compression:
Stored size: 1.79 KB
Contents
module Motorhead module Helpers module UrlHelper #FIXME there has to be a better way doing this... def method_missing(meth, *args, &block) if main_app.routes.url_helpers.instance_methods.include? meth main_app.send meth, *args, &block else super end end end end module Controller extend ActiveSupport::Concern included do helper Motorhead::Helpers::UrlHelper end end module AbstractController def send_action(method_name, *args) if self.is_a?(Motorhead::Controller) begin super @_motorhead_action_successfully_finished = true env['motorhead_view_assigns'] = view_assigns rescue => e (self.class.parent::Engine.on_error || Motorhead.config.on_error).call(e) end else if env.key? 'motorhead_render_result' headers.delete 'X-Cascade' ret = env.delete 'motorhead_render_result' self.response_body = ret else super end end end end module ActionController def process_action(*args) if self.is_a?(Motorhead::Controller) headers['X-Cascade'] = 'pass' if self.class.parent::Engine.active?(self) super end else super end end def view_assigns if env.key? 'motorhead_view_assigns' super.merge env['motorhead_view_assigns'] else super end end def render_to_body(options = {}) return if (headers['X-Cascade'] == 'pass') && !defined?(@_motorhead_action_successfully_finished) env['motorhead_render_result'] = super end end end AbstractController::Base.prepend Motorhead::AbstractController ActionController::Base.prepend Motorhead::ActionController
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
motorhead-0.1.0 | lib/motorhead/abstract_controller.rb |