From 40599d1d7468e8d13932ada859987d9d2f32cb18 Mon Sep 17 00:00:00 2001 From: Kasper Timm Hansen Date: Fri, 12 Feb 2016 23:25:03 +0100 Subject: Stop mutating return value. `PartialRenderer.render_collection_with/without_template` returns an array of rendered partials. Avoid dup'ing and shifting it by indexing into the collection instead. --- .../lib/action_view/renderer/partial_renderer/collection_caching.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'actionview/lib/action_view') diff --git a/actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb b/actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb index e13943499c..e6d57b802e 100644 --- a/actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb +++ b/actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb @@ -18,11 +18,12 @@ module ActionView cached_partials = collection_cache.read_multi(*keyed_collection.keys) @collection = keyed_collection.reject { |key, _| cached_partials.key?(key) }.values - rendered_partials = @collection.any? ? yield.dup : [] + rendered_partials = @collection.any? ? yield : [] + index = 0 keyed_collection.map do |cache_key, _| cached_partials.fetch(cache_key) do - rendered_partials.shift + rendered_partials[index].tap { index += 1 } end end end -- cgit v1.2.3