From 3fc609ee4122560357274f70f016e41e1a059968 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 12 Apr 2010 10:50:27 +0200 Subject: Fix ActionMailer test broken in 99d54599215c2a8cea7e57f609e8e578043d71b2 --- actionmailer/lib/action_mailer/base.rb | 5 +++++ actionpack/lib/abstract_controller/rendering.rb | 3 +-- actionpack/lib/action_view/lookup_context.rb | 13 ++++++++++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/actionmailer/lib/action_mailer/base.rb b/actionmailer/lib/action_mailer/base.rb index 5045a9c0ca..9c0f5d0ac3 100644 --- a/actionmailer/lib/action_mailer/base.rb +++ b/actionmailer/lib/action_mailer/base.rb @@ -375,6 +375,11 @@ module ActionMailer #:nodoc: process(method_name, *args) if method_name end + def process(*args) #:nodoc: + lookup_context.skip_default_locale! + super + end + # Allows you to pass random and unusual headers to the new +Mail::Message+ object # which will add them to itself. # diff --git a/actionpack/lib/abstract_controller/rendering.rb b/actionpack/lib/abstract_controller/rendering.rb index 98c8c5fa67..d2db366140 100644 --- a/actionpack/lib/abstract_controller/rendering.rb +++ b/actionpack/lib/abstract_controller/rendering.rb @@ -24,8 +24,7 @@ module AbstractController end def locale=(value) - @i18n_config.locale = value - @lookup_context.update_details(:locale => @i18n_config.locale) + @lookup_context.locale = value end end diff --git a/actionpack/lib/action_view/lookup_context.rb b/actionpack/lib/action_view/lookup_context.rb index 6e61d85dcc..7021342b4a 100644 --- a/actionpack/lib/action_view/lookup_context.rb +++ b/actionpack/lib/action_view/lookup_context.rb @@ -58,7 +58,7 @@ module ActionView def initialize(view_paths, details = {}) @details, @details_key = { :handlers => default_handlers }, nil - @frozen_formats = false + @frozen_formats, @skip_default_locale = false, false self.view_paths = view_paths self.update_details(details, true) end @@ -147,7 +147,13 @@ module ActionView super(value) end - # Overload locale to return a symbol instead of array + # Do not use the default locale on template lookup. + def skip_default_locale! + @skip_default_locale = true + self.locale = nil + end + + # Overload locale to return a symbol instead of array. def locale @details[:locale].first end @@ -160,7 +166,8 @@ module ActionView config = I18n.config.respond_to?(:i18n_config) ? I18n.config.i18n_config : I18n.config config.locale = value end - super(_locale_defaults) + + super(@skip_default_locale ? I18n.locale : _locale_defaults) end # Update the details keys by merging the given hash into the current -- cgit v1.2.3