aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/abstract_controller/layouts.rb
diff options
context:
space:
mode:
authorYehuda Katz <wycats@gmail.com>2009-08-14 12:00:52 -0700
committerYehuda Katz <wycats@gmail.com>2009-08-15 12:32:01 -0700
commit9b552fb300c4606fe517eadaa30708e9d75498a6 (patch)
treebdf53599767b72628e5ce49fa701cd953c69175c /actionpack/lib/abstract_controller/layouts.rb
parent9f5cd0156ab907d8097fc9c588823a9b09038b93 (diff)
downloadrails-9b552fb300c4606fe517eadaa30708e9d75498a6.tar.gz
rails-9b552fb300c4606fe517eadaa30708e9d75498a6.tar.bz2
rails-9b552fb300c4606fe517eadaa30708e9d75498a6.zip
Caches and cache clearing seems to actually work, but the actual architecture is kind of messy. Next: CLEAN UP.
Diffstat (limited to 'actionpack/lib/abstract_controller/layouts.rb')
-rw-r--r--actionpack/lib/abstract_controller/layouts.rb13
1 files changed, 9 insertions, 4 deletions
diff --git a/actionpack/lib/abstract_controller/layouts.rb b/actionpack/lib/abstract_controller/layouts.rb
index ac2154dffc..a8bd2b80e1 100644
--- a/actionpack/lib/abstract_controller/layouts.rb
+++ b/actionpack/lib/abstract_controller/layouts.rb
@@ -19,15 +19,20 @@ module AbstractController
end
end
+ def clear_template_caches!
+ @found_layouts.clear if @found_layouts
+ super
+ end
+
def cache_layout(details)
layout = @found_layouts
- values = details.values_at(:formats, :locale)
+ key = Thread.current[:format_locale_key]
# Cache nil
- if layout.key?(values)
- return layout[values]
+ if layout.key?(key)
+ return layout[key]
else
- layout[values] = yield
+ layout[key] = yield
end
end