Sha256: 0910290b71cfbb8ac6af4842a7d4d57e20d1fdd80ddd90f9c4aab5a73b14f750
Contents?: true
Size: 1.13 KB
Versions: 1
Compression:
Stored size: 1.13 KB
Contents
module AbstractController class HashKey @hash_keys = Hash.new {|h,k| h[k] = Hash.new {|sh,sk| sh[sk] = {} } } 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.inspect} locale: #{@locale.inspect}>" end end module LocalizedCache extend ActiveSupport::Concern 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 end def render(*args) Thread.current[:format_locale_key] = HashKey.get(self.class, formats, I18n.locale) super end private def with_template_cache(name) self.class.template_cache[Thread.current[:format_locale_key]][name] ||= super end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
actionpack-3.0.0.beta | lib/abstract_controller/localized_cache.rb |