From f055bc05d515b80c89b99b775546b954f270bc5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 15 May 2010 21:55:03 +0200 Subject: [PATCH] Optimize the code added in fa99de0bd054576336c9 --- actionpack/lib/action_view/render/partials.rb | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/actionpack/lib/action_view/render/partials.rb b/actionpack/lib/action_view/render/partials.rb index 5d266c46bfee6..85f67d4f1492b 100644 --- a/actionpack/lib/action_view/render/partials.rb +++ b/actionpack/lib/action_view/render/partials.rb @@ -241,16 +241,21 @@ def render_collection end def collection_with_template(template = @template) - segments, locals, as, template = [], @locals, @options[:as] || @template.variable_name, @template + segments, locals, template = [], @locals, @template - counter_name = template.counter_name - locals[counter_name] = -1 + if @options[:as] + as = @options[:as] + counter = "#{as}_counter".to_sym + else + as = template.variable_name + counter = template.counter_name + end + + locals[counter] = -1 @collection.each do |object| - locals[counter_name] += 1 - locals["#{as.to_s}_counter".to_sym] = locals[counter_name] if as + locals[counter] += 1 locals[as] = object - segments << template.render(@view, locals) end @@ -258,13 +263,18 @@ def collection_with_template(template = @template) end def collection_without_template(collection_paths = @collection_paths) - segments, locals, as = [], @locals, @options[:as] - index, template = -1, nil + segments, locals = [], @locals + index, template = -1, nil + + if @options[:as] + as = @options[:as] + counter = "#{as}_counter" + end @collection.each_with_index do |object, i| template = find_template(collection_paths[i]) - locals[template.counter_name] = (index += 1) locals[as || template.variable_name] = object + locals[counter || template.counter_name] = (index += 1) segments << template.render(@view, locals) end