Module: Metanorma::Mirror::Handlers::Structural

Defined in:
lib/metanorma/mirror/handlers/structural.rb

Class Method Summary collapse

Class Method Details

.bibliography(element, context:) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/metanorma/mirror/handlers/structural.rb', line 51

def self.bibliography(element, context:)
  attrs = {}
  attrs[:semx_id] = SafeAttr.read(element, :semx_id)

  content = []
  refs = SafeAttr.read(element, :references)
  Array(refs).each do |ref|
    result = context.registry.handle(ref, context: context)
    result.append_to(content)
  end

  Handlers.build_node("bibliography", attrs: attrs.compact,
                                      content: content)
end

.preface(element, context:) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/metanorma/mirror/handlers/structural.rb', line 7

def self.preface(element, context:)
  attrs = {}
  attrs[:semx_id] = SafeAttr.read(element, :semx_id)
  attrs[:displayorder] = SafeAttr.read(element, :displayorder)

  content = []
  %i[abstract foreword introduction acknowledgements
     executivesummary].each do |attr|
    child = SafeAttr.read(element, attr)
    next unless child

    result = context.registry.handle(child, context: context)
    result.append_to(content)
  end

  element_content = SafeAttr.read(element, :content)
  Array(element_content).each do |child|
    result = context.registry.handle(child, context: context)
    result.append_to(content)
  end

  Handlers.build_node("preface", attrs: attrs.compact, content: content)
end

.sections(element, context:) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/metanorma/mirror/handlers/structural.rb', line 31

def self.sections(element, context:)
  attrs = {}
  attrs[:semx_id] = SafeAttr.read(element, :semx_id)
  attrs[:displayorder] = SafeAttr.read(element, :displayorder)

  content = []
  %i[clause terms definitions references floating_title].each do |attr|
    collection = SafeAttr.read(element, attr)
    next unless collection

    Array(collection).each do |child|
      result = context.registry.handle(child, context: context)
      result.append_to(content)
    end
  end

  Handlers.build_node("sections", attrs: attrs.compact,
                                  content: content)
end