From d8888b94b32b28003ec247d0565e73dee731275e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Strza=C5=82kowski?= Date: Thu, 5 Dec 2013 00:17:39 +0100 Subject: [PATCH] Retain ActionPack dependency on ActionView --- actionmailer/test/i18n_with_controller_test.rb | 3 --- actionpack/actionpack.gemspec | 2 +- .../lib/abstract_controller/rendering.rb | 1 + actionpack/lib/action_controller/base.rb | 18 +++--------------- actionview/lib/action_view/railtie.rb | 1 - actionview/test/abstract_unit.rb | 2 -- 6 files changed, 5 insertions(+), 22 deletions(-) diff --git a/actionmailer/test/i18n_with_controller_test.rb b/actionmailer/test/i18n_with_controller_test.rb index ab5eaaa9d5..14a1b11b6d 100644 --- a/actionmailer/test/i18n_with_controller_test.rb +++ b/actionmailer/test/i18n_with_controller_test.rb @@ -15,9 +15,6 @@ def mail_with_i18n_subject(recipient) end end -# Emulate AV railtie -ActionController::Base.superclass.send(:include, ActionView::Layouts) - class TestController < ActionController::Base def send_mail I18nTestMailer.mail_with_i18n_subject("test@localhost").deliver diff --git a/actionpack/actionpack.gemspec b/actionpack/actionpack.gemspec index 8a85bf346a..1d6009bab8 100644 --- a/actionpack/actionpack.gemspec +++ b/actionpack/actionpack.gemspec @@ -23,7 +23,7 @@ s.add_dependency 'rack', '~> 1.5.2' s.add_dependency 'rack-test', '~> 0.6.2' + s.add_dependency 'actionview', version - s.add_development_dependency 'actionview', version s.add_development_dependency 'activemodel', version end diff --git a/actionpack/lib/abstract_controller/rendering.rb b/actionpack/lib/abstract_controller/rendering.rb index ce3a0316c4..fce61cddfd 100644 --- a/actionpack/lib/abstract_controller/rendering.rb +++ b/actionpack/lib/abstract_controller/rendering.rb @@ -13,6 +13,7 @@ def initialize(message = nil) module Rendering extend ActiveSupport::Concern + include ActionView::ViewPaths # Normalize arguments, options and then delegates render_to_body and # sticks the result in self.response_body. diff --git a/actionpack/lib/action_controller/base.rb b/actionpack/lib/action_controller/base.rb index 7f9ed54264..85f0f50807 100644 --- a/actionpack/lib/action_controller/base.rb +++ b/actionpack/lib/action_controller/base.rb @@ -2,20 +2,6 @@ require "action_controller/metal/params_wrapper" module ActionController - # The metal anonymous class was introduced to solve issue with including modules in ActionController::Base. - # Modules needs to be included in particluar order. First we need to have AbstractController::Rendering included, - # next we should include actuall implementation which would be for example ActionView::Rendering and after that - # ActionController::Rendering. This order must be preserved and as we want to have middle module included dynamicaly - # metal class was introduced. It has AbstractController::Rendering included and is parent class of - # ActionController::Base which includes ActionController::Rendering. If we include ActionView::Rendering - # beetween them to perserve the required order, we can simply do this by: - # - # ActionController::Base.superclass.send(:include, ActionView::Rendering) - # - metal = Class.new(Metal) do - include AbstractController::Rendering - end - # Action Controllers are the core of a web request in \Rails. They are made up of one or more actions that are executed # on request and then either it renders a template or redirects to another action. An action is defined as a public method # on the controller, which will automatically be made accessible to the web-server through \Rails Routes. @@ -174,7 +160,7 @@ module ActionController # render action: "overthere" # won't be called if monkeys is nil # end # - class Base < metal + class Base < Metal abstract! # We document the request and response methods here because albeit they are @@ -214,6 +200,7 @@ def self.without_modules(*modules) end MODULES = [ + AbstractController::Rendering, AbstractController::Translation, AbstractController::AssetPaths, @@ -221,6 +208,7 @@ def self.without_modules(*modules) HideActions, UrlFor, Redirecting, + ActionView::Layouts, Rendering, Renderers::All, ConditionalGet, diff --git a/actionview/lib/action_view/railtie.rb b/actionview/lib/action_view/railtie.rb index c2783f6377..7db557ff83 100644 --- a/actionview/lib/action_view/railtie.rb +++ b/actionview/lib/action_view/railtie.rb @@ -38,7 +38,6 @@ class Railtie < Rails::Railtie # :nodoc: initializer "action_view.setup_action_pack", before: :add_view_paths do |app| ActiveSupport.on_load(:action_controller) do - ActionController::Base.superclass.send(:include, ActionView::Layouts) ActionView::RoutingUrlFor.send(:include, ActionDispatch::Routing::UrlFor) end end diff --git a/actionview/test/abstract_unit.rb b/actionview/test/abstract_unit.rb index 6623b47e83..eef0abb609 100644 --- a/actionview/test/abstract_unit.rb +++ b/actionview/test/abstract_unit.rb @@ -267,8 +267,6 @@ def assert_header(name, value) end end -# Emulate AV railtie. -ActionController::Base.superclass.send(:include, ActionView::Layouts) ActionView::RoutingUrlFor.send(:include, ActionDispatch::Routing::UrlFor) module ActionController