5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/blocks/renderers/collection_renderer.rb', line 5
def self.render(runtime_context)
collection = runtime_context.collection
if collection
original_collection_item = runtime_context.collection_item
original_collection_item_index = runtime_context.collection_item_index
original_runtime_args = runtime_context.runtime_args
collection.each_with_index do |item, index|
runtime_context.collection_item = item
runtime_context.collection_item_index = index
if Blocks.collection_item_passed_to_block_as_first_arg
runtime_context.runtime_args = [item, *original_runtime_args]
end
yield runtime_context
end
runtime_context.collection_item = original_collection_item
runtime_context.collection_item_index = original_collection_item_index
runtime_context.runtime_args = original_runtime_args
else
yield runtime_context
end
end
|