Class: Blocks::BlockWithHooksRenderer
- Inherits:
-
AbstractRenderer
- Object
- AbstractRenderer
- Blocks::BlockWithHooksRenderer
- Defined in:
- lib/blocks/renderers/block_with_hooks_renderer.rb
Overview
TODO: Make this render order customizable
Constant Summary
Constants inherited from AbstractRenderer
Instance Attribute Summary
Attributes inherited from AbstractRenderer
Instance Method Summary collapse
Methods inherited from AbstractRenderer
Constructor Details
This class inherits a constructor from Blocks::AbstractRenderer
Instance Method Details
#render(*args, &default_definition) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/blocks/renderers/block_with_hooks_renderer.rb', line 4 def render(*args, &default_definition) with_output_buffer do runtime_context = RuntimeContext.new(builder, *args, &default_definition) if !runtime_context.skip_completely adjacent_blocks_renderer.render(HookDefinition::BEFORE_ALL, runtime_context) nesting_blocks_renderer.render(HookDefinition::AROUND_ALL, runtime_context) do wrapper_renderer.render(runtime_context.wrap_all, runtime_context) do collection_renderer.render(runtime_context) do |runtime_context| wrapper_renderer.render(runtime_context.wrap_each, runtime_context) do nesting_blocks_renderer.render(HookDefinition::AROUND, runtime_context) do adjacent_blocks_renderer.render(HookDefinition::BEFORE, runtime_context) if !runtime_context.skip_content wrapper_renderer.render(runtime_context.wrap_with, runtime_context) do nesting_blocks_renderer.render(HookDefinition::SURROUND, runtime_context) do adjacent_blocks_renderer.render(HookDefinition::PREPEND, runtime_context) block_renderer.render(runtime_context) adjacent_blocks_renderer.render(HookDefinition::APPEND, runtime_context) end end end adjacent_blocks_renderer.render(HookDefinition::AFTER, runtime_context) end end end end end adjacent_blocks_renderer.render(HookDefinition::AFTER_ALL, runtime_context) end end end |