Crinja::Renderer::OutputList
=== 3. Streaming OutputList join =====================================
Upstream joins nested lists with io << node.value, which builds the
entire nested subtree (e.g. a for-loop's whole output) into an
intermediate String before copying it into the parent — every level of
nesting re-copies the page. Recurse with the IO instead so bytes are
written exactly once. BlockOutput#value must still be called eagerly
(it raises on unresolved placeholders), which else covers.
Instance methods
<<(output)
Sourceeach_block
Sourcehas_blocks?
Source