Class: Metanorma::Release::DocumentFlattener

Inherits:
Object
  • Object
show all
Defined in:
lib/metanorma/release/document_flattener.rb

Instance Method Summary collapse

Constructor Details

#initialize(display_categories: []) ⇒ DocumentFlattener

Returns a new instance of DocumentFlattener.



6
7
8
# File 'lib/metanorma/release/document_flattener.rb', line 6

def initialize(display_categories: [])
  @display_categories = display_categories || []
end

Instance Method Details

#flatten(doc) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/metanorma/release/document_flattener.rb', line 10

def flatten(doc)
  bib = doc["bibliographic"] || {}
  doctype = extract_doctype(bib) || doc.fetch("doctype", "")
  formats = doc["formats"] || []
  base = {
    "slug" => doc["id"],
    "id" => resolve_doc_id(bib, doc),
    "title" => doc["title"].to_s,
    "abstract" => extract_abstract(bib),
    "stage" => (doc["stage"] || "published").to_s.downcase,
    "doctype" => doctype,
    "edition" => doc["edition"],
    "date" => extract_date(doc),
    "channels" => doc["channels"] || [],
    "formats" => formats,
    "files" => doc["files"] || [],
    "bibliographic" => bib,
  }
  add_format_flags(base, formats)
  add_display_category(base, doctype)
  add_contributors(base, bib)
  base
end