aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/renderer/partial_renderer.rb
diff options
context:
space:
mode:
authorKasper Timm Hansen <kaspth@gmail.com>2015-02-15 20:34:18 +0100
committerKasper Timm Hansen <kaspth@gmail.com>2015-02-20 20:07:50 +0100
commite56c63542780fe2fb804636a875f95cae08ab3f4 (patch)
tree770d129fff282d798e80779f6a44ff048fec1621 /actionview/lib/action_view/renderer/partial_renderer.rb
parent66a30dc3225589d8aba6c10fee7bfa68da444e49 (diff)
downloadrails-e56c63542780fe2fb804636a875f95cae08ab3f4.tar.gz
rails-e56c63542780fe2fb804636a875f95cae08ab3f4.tar.bz2
rails-e56c63542780fe2fb804636a875f95cae08ab3f4.zip
Merge multi_fetch_fragments.
Makes caching a collection of template partials faster using `read_multi` on the Rails cache store. Some caching implementations have optimized `read_multi` so we don't have to check in the cache store for every template.
Diffstat (limited to 'actionview/lib/action_view/renderer/partial_renderer.rb')
-rw-r--r--actionview/lib/action_view/renderer/partial_renderer.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/actionview/lib/action_view/renderer/partial_renderer.rb b/actionview/lib/action_view/renderer/partial_renderer.rb
index 5ff15411cf..56b8ab1e2d 100644
--- a/actionview/lib/action_view/renderer/partial_renderer.rb
+++ b/actionview/lib/action_view/renderer/partial_renderer.rb
@@ -1,3 +1,4 @@
+require 'action_view/renderer/partial_renderer/collection_caching'
require 'thread_safe'
module ActionView
@@ -280,6 +281,8 @@ module ActionView
# <%- end -%>
# <% end %>
class PartialRenderer < AbstractRenderer
+ include CollectionCaching
+
PREFIXED_PARTIAL_NAMES = ThreadSafe::Cache.new do |h, k|
h[k] = ThreadSafe::Cache.new
end
@@ -321,8 +324,9 @@ module ActionView
spacer = find_template(@options[:spacer_template], @locals.keys).render(@view, @locals)
end
- result = @template ? collection_with_template : collection_without_template
- result.join(spacer).html_safe
+ cache_collection_render do
+ @template ? collection_with_template : collection_without_template
+ end.join(spacer).html_safe
end
def render_partial