diff options
author | Yehuda Katz <wycats@gmail.com> | 2009-08-14 12:00:52 -0700 |
---|---|---|
committer | Yehuda Katz <wycats@gmail.com> | 2009-08-15 12:32:01 -0700 |
commit | 9b552fb300c4606fe517eadaa30708e9d75498a6 (patch) | |
tree | bdf53599767b72628e5ce49fa701cd953c69175c /actionpack/lib/abstract_controller/layouts.rb | |
parent | 9f5cd0156ab907d8097fc9c588823a9b09038b93 (diff) | |
download | rails-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.rb | 13 |
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 |