Class: Metanorma::Html::BaseRenderer::RendererContext
- Inherits:
-
Object
- Object
- Metanorma::Html::BaseRenderer::RendererContext
- Defined in:
- lib/metanorma/html/base_renderer.rb
Overview
Facade object for Drops to call renderer methods without exposing the full private interface. Delegates via method_missing with an explicit allowlist — adding new delegations only requires updating DELEGATED_METHODS, not writing a new one-liner.
Constant Summary collapse
- DELEGATED_METHODS =
%i[ safe_attr escape_html extract_block_label extract_plain_text capture_output render_paragraph render_mixed_inline render_inline_element render_unordered_list render_ordered_list render_definition_list render_sourcecode render_table render_figure render_quote render_formula render_note render_image render_stem_content register_figure_entry render_liquid ].freeze
Instance Method Summary collapse
-
#initialize(renderer) ⇒ RendererContext
constructor
A new instance of RendererContext.
- #respond_to_missing?(method_name, include_private = false) ⇒ Boolean
Constructor Details
#initialize(renderer) ⇒ RendererContext
Returns a new instance of RendererContext.
100 101 102 |
# File 'lib/metanorma/html/base_renderer.rb', line 100 def initialize(renderer) @renderer = renderer end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, **kwargs, &block) ⇒ Object (private)
110 111 112 113 114 115 116 |
# File 'lib/metanorma/html/base_renderer.rb', line 110 def method_missing(method_name, *args, **kwargs, &block) if DELEGATED_METHODS.include?(method_name) @renderer.send(method_name, *args, **kwargs, &block) else super end end |
Instance Method Details
#respond_to_missing?(method_name, include_private = false) ⇒ Boolean
104 105 106 |
# File 'lib/metanorma/html/base_renderer.rb', line 104 def respond_to_missing?(method_name, include_private = false) DELEGATED_METHODS.include?(method_name) || super end |