Class: Metanorma::Html::Generator
- Inherits:
-
Object
- Object
- Metanorma::Html::Generator
- Defined in:
- lib/metanorma/html/generator.rb
Class Method Summary collapse
-
.flavors ⇒ Object
Returns the full FlavorRegistry built from setup!.
- .generate(document) ⇒ Object
-
.register_taste(model_class, publisher_abbrev, renderer_class) ⇒ Object
Register a taste: same document model, different renderer based on publisher.
- .renderer_for(document) ⇒ Object
Class Method Details
.flavors ⇒ Object
Returns the full FlavorRegistry built from setup!. Read-only access for BaseRenderer, PubidRenderer, and any consumer that needs flavor identity.
13 14 15 16 |
# File 'lib/metanorma/html/generator.rb', line 13 def flavors setup! unless @setup @flavors end |
.generate(document) ⇒ Object
26 27 28 29 |
# File 'lib/metanorma/html/generator.rb', line 26 def generate(document, **) setup! unless @setup renderer_for(document).new.generate_full_document(document, **) end |
.register_taste(model_class, publisher_abbrev, renderer_class) ⇒ Object
Register a taste: same document model, different renderer based on publisher. When the document's first author publisher abbreviation matches, the taste renderer takes precedence over the model-based renderer.
22 23 24 |
# File 'lib/metanorma/html/generator.rb', line 22 def register_taste(model_class, publisher_abbrev, renderer_class) @tastes << [model_class, publisher_abbrev, renderer_class] end |
.renderer_for(document) ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'lib/metanorma/html/generator.rb', line 31 def renderer_for(document) setup! unless @setup taste_renderer = find_taste(document) return taste_renderer if taste_renderer flavor = @flavors.find_for(document.class) flavor&.renderer_class || BaseRenderer end |