Class: Charming::Presentation::Markdown::InlineRenderer
- Inherits:
-
Object
- Object
- Charming::Presentation::Markdown::InlineRenderer
- Defined in:
- lib/charming/presentation/markdown/inline_renderers.rb
Overview
InlineRenderer dispatches Kramdown inline-level elements (text, strong, em, codespan, link, line break, HTML entity) to their individual rendering handlers. Handlers are built once at construction as a frozen hash of element-type symbols to callables.
Instance Method Summary collapse
-
#initialize(renderer:) ⇒ InlineRenderer
constructor
renderer is the parent Renderer (used to render nested inlines and look up styles).
-
#render(element, context:) ⇒ Object
Renders element using the handler registered for ‘element.type`.
Constructor Details
#initialize(renderer:) ⇒ InlineRenderer
renderer is the parent Renderer (used to render nested inlines and look up styles).
12 13 14 15 |
# File 'lib/charming/presentation/markdown/inline_renderers.rb', line 12 def initialize(renderer:) @renderer = renderer build_handlers end |
Instance Method Details
#render(element, context:) ⇒ Object
Renders element using the handler registered for ‘element.type`. Unknown types fall through to `render_unknown`.
19 20 21 22 |
# File 'lib/charming/presentation/markdown/inline_renderers.rb', line 19 def render(element, context:) handler = @handlers[element.type] || method(:render_unknown) handler.call(element, context) end |