1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Optimize the code added in fa99de0bd0

This commit is contained in:
José Valim 2010-05-15 21:55:03 +02:00
parent c5537c1158
commit f055bc05d5

View file

@ -241,16 +241,21 @@ module ActionView
end end
def collection_with_template(template = @template) 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 if @options[:as]
locals[counter_name] = -1 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| @collection.each do |object|
locals[counter_name] += 1 locals[counter] += 1
locals["#{as.to_s}_counter".to_sym] = locals[counter_name] if as
locals[as] = object locals[as] = object
segments << template.render(@view, locals) segments << template.render(@view, locals)
end end
@ -258,13 +263,18 @@ module ActionView
end end
def collection_without_template(collection_paths = @collection_paths) def collection_without_template(collection_paths = @collection_paths)
segments, locals, as = [], @locals, @options[:as] segments, locals = [], @locals
index, template = -1, nil index, template = -1, nil
if @options[:as]
as = @options[:as]
counter = "#{as}_counter"
end
@collection.each_with_index do |object, i| @collection.each_with_index do |object, i|
template = find_template(collection_paths[i]) template = find_template(collection_paths[i])
locals[template.counter_name] = (index += 1)
locals[as || template.variable_name] = object locals[as || template.variable_name] = object
locals[counter || template.counter_name] = (index += 1)
segments << template.render(@view, locals) segments << template.render(@view, locals)
end end