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

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

Direct Known Subclasses

IndexSection

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(renderer) ⇒ Base

Returns a new instance of Base.



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

def initialize(renderer)
  @renderer = renderer
end

Instance Attribute Details

#rendererObject (readonly)

Returns the value of attribute renderer.



7
8
9
# File 'lib/metanorma/html/component/base.rb', line 7

def renderer
  @renderer
end

Class Method Details

.css_dependenciesObject



25
26
27
# File 'lib/metanorma/html/component/base.rb', line 25

def self.css_dependencies
  @css_deps || []
end

.handled_classesObject



17
18
19
# File 'lib/metanorma/html/component/base.rb', line 17

def self.handled_classes
  @handled_classes || []
end

.handles(*model_classes) ⇒ Object



13
14
15
# File 'lib/metanorma/html/component/base.rb', line 13

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

.js_dependenciesObject



33
34
35
# File 'lib/metanorma/html/component/base.rb', line 33

def self.js_dependencies
  @js_deps || []
end

.register_in(registry) ⇒ Object



55
56
57
58
59
# File 'lib/metanorma/html/component/base.rb', line 55

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

.requires_css(*names) ⇒ Object



21
22
23
# File 'lib/metanorma/html/component/base.rb', line 21

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

.requires_js(*names) ⇒ Object



29
30
31
# File 'lib/metanorma/html/component/base.rb', line 29

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

Instance Method Details

#element_attrsObject



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

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

#escape_htmlObject



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

def escape_html(...) = renderer.escape_html(...)

#extract_block_label(block, default) ⇒ Object



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

def extract_block_label(block, default) = renderer.extract_block_label(block, default)

#extract_plain_text(node) ⇒ Object



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

def extract_plain_text(node) = renderer.extract_plain_text(node)

#extract_text_value(val) ⇒ Object



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

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

#outputObject



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

def output
  renderer.instance_variable_get(:@output)
end

#render(node, **opts) ⇒ Object

Raises:

  • (NotImplementedError)


37
38
39
# File 'lib/metanorma/html/component/base.rb', line 37

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

#render_mixed_content_in_orderObject



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

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

#render_mixed_inlineObject



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

def render_mixed_inline(...) = renderer.render_mixed_inline(...)

#safe_attr(obj, method_name) ⇒ Object



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

def safe_attr(obj, method_name) = renderer.safe_attr(obj, method_name)

#tagObject



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

def tag(...) = renderer.tag(...)