Class: Metanorma::Html::Component::Base

Inherits:
Object
  • Object
show all
Includes:
RendererDelegation
Defined in:
lib/metanorma/html/component/base.rb

Direct Known Subclasses

IndexSection

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from RendererDelegation

#escape_html, #extract_block_label, #extract_plain_text, #render_liquid, #render_mixed_inline, #safe_attr

Constructor Details

#initialize(renderer) ⇒ Base

Returns a new instance of Base.



11
12
13
# File 'lib/metanorma/html/component/base.rb', line 11

def initialize(renderer)
  @renderer = renderer
end

Instance Attribute Details

#rendererObject (readonly)

Returns the value of attribute renderer.



9
10
11
# File 'lib/metanorma/html/component/base.rb', line 9

def renderer
  @renderer
end

Class Method Details

.css_dependenciesObject



27
28
29
# File 'lib/metanorma/html/component/base.rb', line 27

def self.css_dependencies
  @css_deps || []
end

.handled_classesObject



19
20
21
# File 'lib/metanorma/html/component/base.rb', line 19

def self.handled_classes
  @handled_classes || []
end

.handles(*model_classes) ⇒ Object



15
16
17
# File 'lib/metanorma/html/component/base.rb', line 15

def self.handles(*model_classes)
  @handled_classes = model_classes
end

.js_dependenciesObject



35
36
37
# File 'lib/metanorma/html/component/base.rb', line 35

def self.js_dependencies
  @js_deps || []
end

.register_in(registry) ⇒ Object



47
48
49
50
51
# File 'lib/metanorma/html/component/base.rb', line 47

def self.register_in(registry)
  handled_classes.each do |klass|
    registry.register(klass, self)
  end
end

.requires_css(*names) ⇒ Object



23
24
25
# File 'lib/metanorma/html/component/base.rb', line 23

def self.requires_css(*names)
  @css_deps = names
end

.requires_js(*names) ⇒ Object



31
32
33
# File 'lib/metanorma/html/component/base.rb', line 31

def self.requires_js(*names)
  @js_deps = names
end

Instance Method Details

#element_attrsObject



44
# File 'lib/metanorma/html/component/base.rb', line 44

def element_attrs(...) = renderer.element_attrs(...)

#extract_text_value(val) ⇒ Object



45
# File 'lib/metanorma/html/component/base.rb', line 45

def extract_text_value(val) = renderer.extract_text_value(val)

#render(node, **opts) ⇒ Object

Raises:

  • (NotImplementedError)


39
40
41
# File 'lib/metanorma/html/component/base.rb', line 39

def render(node, **opts)
  raise NotImplementedError, "#{self.class}#render not implemented"
end

#render_mixed_content_in_orderObject



43
# File 'lib/metanorma/html/component/base.rb', line 43

def render_mixed_content_in_order(...) = renderer.render_mixed_content_in_order(...)