diff options
author | José Valim <jose.valim@gmail.com> | 2009-10-28 10:33:05 -0200 |
---|---|---|
committer | Yehuda Katz <wycats@gmail.com> | 2009-11-01 02:23:49 +0100 |
commit | 976c2647240fd40a2b706ab5e41856cd47e7b212 (patch) | |
tree | 424a54f1b025cf8e3d17dcd15632d68eb62a78ef /actionpack/lib/action_controller/metal | |
parent | a107103e85a2cc294faedddbb44707fd2bc2e206 (diff) | |
download | rails-976c2647240fd40a2b706ab5e41856cd47e7b212.tar.gz rails-976c2647240fd40a2b706ab5e41856cd47e7b212.tar.bz2 rails-976c2647240fd40a2b706ab5e41856cd47e7b212.zip |
Extracted localized_cache.rb from ActionController, added it to AbstractController and made ActionMailer use it.
Diffstat (limited to 'actionpack/lib/action_controller/metal')
-rw-r--r-- | actionpack/lib/action_controller/metal/rendering_controller.rb | 41 |
1 files changed, 3 insertions, 38 deletions
diff --git a/actionpack/lib/action_controller/metal/rendering_controller.rb b/actionpack/lib/action_controller/metal/rendering_controller.rb index c5ade26702..237299cd30 100644 --- a/actionpack/lib/action_controller/metal/rendering_controller.rb +++ b/actionpack/lib/action_controller/metal/rendering_controller.rb @@ -1,39 +1,10 @@ module ActionController - class HashKey - @hash_keys = Hash.new {|h,k| h[k] = Hash.new {|h,k| h[k] = {} } } - - def self.get(klass, formats, locale) - @hash_keys[klass][formats][locale] ||= new(klass, formats, locale) - end - - attr_accessor :hash - def initialize(klass, formats, locale) - @formats, @locale = formats, locale - @hash = [formats, locale].hash - end - - alias_method :eql?, :equal? - - def inspect - "#<HashKey -- formats: #{@formats} locale: #{@locale}>" - end - end - module RenderingController extend ActiveSupport::Concern - include AbstractController::RenderingController - - module ClassMethods - def clear_template_caches! - ActionView::Partials::PartialRenderer::TEMPLATES.clear - template_cache.clear - super - end - - def template_cache - @template_cache ||= Hash.new {|h,k| h[k] = {} } - end + included do + include AbstractController::RenderingController + include AbstractController::LocalizedCache end def process_action(*) @@ -42,8 +13,6 @@ module ActionController end def render(options) - Thread.current[:format_locale_key] = HashKey.get(self.class, formats, I18n.locale) - super self.content_type ||= options[:_template].mime_type.to_s response_body @@ -78,10 +47,6 @@ module ActionController formats.first end - def with_template_cache(name) - self.class.template_cache[Thread.current[:format_locale_key]][name] ||= super - end - def _process_options(options) status, content_type, location = options.values_at(:status, :content_type, :location) self.status = status if status |