Module: Sts::NisoSts::ContentGroups

Extended by:
ContentGroups::Helpers
Defined in:
lib/sts/niso_sts/content_groups.rb,
lib/sts/niso_sts/content_groups/p_elements.rb,
lib/sts/niso_sts/content_groups/para_level.rb,
lib/sts/niso_sts/content_groups/inside_cell.rb,
lib/sts/niso_sts/content_groups/body_elements.rb,
lib/sts/niso_sts/content_groups/emphasized_text.rb,
lib/sts/niso_sts/content_groups/citation_elements.rb,
lib/sts/niso_sts/content_groups/highlight_elements.rb,
lib/sts/niso_sts/content_groups/table_group_attributes.rb,
lib/sts/niso_sts/content_groups/styled_content_elements.rb

Constant Summary collapse

P_ELEMENTS_EXTRA =
[
  [:ref_list, "Sts::NisoSts::ReferenceList", "ref-list"],
  [:citation_alternatives, "Sts::NisoSts::CitationAlternatives",
   "citation-alternatives"],
  [:element_citation, "Sts::NisoSts::ElementCitation",
   "element-citation"],
  [:mixed_citation, "Sts::NisoSts::MixedCitation", "mixed-citation"],
  [:award_id, "Sts::NisoSts::AwardId", "award-id"],
  [:funding_source, "Sts::NisoSts::FundingSource", "funding-source"],
  [:open_access, "Sts::NisoSts::OpenAccess", "open-access"],
].freeze
PARA_LEVEL_ELEMENTS =
[
  [:p, "Sts::NisoSts::Paragraph", "p"],
  [:array, "Sts::NisoSts::SectionArray", "array"],
  [:list, "Sts::NisoSts::List", "list"],
  [:def_list, "Sts::NisoSts::DefList", "def-list"],
  [:preformat, "Sts::NisoSts::Preformat", "preformat"],
  [:fig, "Sts::NisoSts::Figure", "fig"],
  [:fig_group, "Sts::NisoSts::FigGroup", "fig-group"],
  [:graphic, "Sts::NisoSts::Graphic", "graphic"],
  [:media, "Sts::NisoSts::Media", "media"],
  [:table_wrap, "Sts::TbxIsoTml::TableWrap", "table-wrap"],
  [:disp_formula, "Sts::NisoSts::DisplayFormula", "disp-formula"],
  [:disp_formula_group, "Sts::NisoSts::DispFormulaGroup",
   "disp-formula-group"],
  [:disp_quote, "Sts::NisoSts::DispQuote", "disp-quote"],
  [:chem_struct_wrap, "Sts::NisoSts::ChemStructWrap", "chem-struct-wrap"],
  [:supplementary_material, "Sts::NisoSts::SupplementaryMaterial",
   "supplementary-material"],
  [:editing_instruction, "Sts::NisoSts::EditingInstruction",
   "editing-instruction"],
  [:address, "Sts::NisoSts::Address", "address"],
  [:alternatives, "Sts::NisoSts::Alternatives", "alternatives"],
  [:non_normative_note, "Sts::NisoSts::NonNormativeNote",
   "non-normative-note"],
  [:non_normative_example, "Sts::NisoSts::NonNormativeExample",
   "non-normative-example"],
  [:normative_note, "Sts::NisoSts::NormativeNote", "normative-note"],
  [:normative_example, "Sts::NisoSts::NormativeExample",
   "normative-example"],
  [:notes_group, "Sts::NisoSts::NotesGroup", "notes-group"],
  [:related_article, "Sts::NisoSts::RelatedArticle", "related-article"],
  [:related_object, "Sts::NisoSts::RelatedObject", "related-object"],
  [:speech, "Sts::NisoSts::Speech", "speech"],
  [:statement, "Sts::NisoSts::Statement", "statement"],
  [:verse_group, "Sts::NisoSts::VerseGroup", "verse-group"],
  [:math, "Sts::TbxIsoTml::Math", "math"],
  [:tex_math, "Sts::NisoSts::TexMath", "tex-math"],
].freeze
INSIDE_CELL_ELEMENTS =
[
  [:bold, "Sts::TbxIsoTml::Bold", "bold"],
  [:italic, "Sts::TbxIsoTml::Italic", "italic"],
  [:xref, "Sts::TbxIsoTml::Xref", "xref"],
  [:std, "Sts::NisoSts::ReferenceStandard", "std"],
  [:list, "Sts::NisoSts::List", "list"],
  [:inline_formula, "Sts::NisoSts::InlineFormula", "inline-formula"],
  [:non_normative_note, "Sts::NisoSts::NonNormativeNote",
   "non-normative-note"],
  [:non_normative_example, "Sts::NisoSts::NonNormativeExample",
   "non-normative-example"],
  [:normative_note, "Sts::NisoSts::NormativeNote", "normative-note"],
  [:normative_example, "Sts::NisoSts::NormativeExample",
   "normative-example"],
  [:notes_group, "Sts::NisoSts::NotesGroup", "notes-group"],
  [:graphic, "Sts::NisoSts::Graphic", "graphic"],
  [:def_list, "Sts::NisoSts::DefList", "def-list"],
  [:p, "Sts::NisoSts::Paragraph", "p"],
  [:fn, "Sts::TbxIsoTml::Fn", "fn"],
  [:styled_content, "Sts::NisoSts::StyledContent", "styled-content"],
  [:monospace, "Sts::NisoSts::Monospace", "monospace"],
  [:underline, "Sts::NisoSts::Underline", "underline"],
  [:sup, "Sts::NisoSts::Sup", "sup"],
  [:sub, "Sts::NisoSts::Sub", "sub"],
  [:break, "Sts::TbxIsoTml::TableBreak", "break"],
  [:array, "Sts::NisoSts::SectionArray", "array"],
  [:fig, "Sts::NisoSts::Figure", "fig"],
  [:fig_group, "Sts::NisoSts::FigGroup", "fig-group"],
  [:media, "Sts::NisoSts::Media", "media"],
  [:disp_formula, "Sts::NisoSts::DisplayFormula", "disp-formula"],
  [:disp_formula_group, "Sts::NisoSts::DispFormulaGroup",
   "disp-formula-group"],
  [:math, "Sts::TbxIsoTml::Math", "math"],
  [:tex_math, "Sts::NisoSts::TexMath", "tex-math"],
  [:chem_struct, "Sts::NisoSts::ChemStruct", "chem-struct"],
  [:ext_link, "Sts::NisoSts::ExtLink", "ext-link"],
  [:uri, "Sts::NisoSts::Uri", "uri"],
  [:email, "Sts::NisoSts::Email", "email"],
  [:sc, "Sts::NisoSts::Sc", "sc"],
  [:overline, "Sts::NisoSts::Overline", "overline"],
  [:roman, "Sts::NisoSts::Roman", "roman"],
  [:sans_serif, "Sts::NisoSts::SansSerif", "sans-serif"],
  [:strike, "Sts::NisoSts::Strike", "strike"],
  [:ruby, "Sts::NisoSts::Ruby", "ruby"],
  [:named_content, "Sts::NisoSts::NamedContent", "named-content"],
  [:target, "Sts::NisoSts::Target", "target"],
  [:entailed_term, "Sts::TbxIsoTml::EntailedTerm", "entailedTerm"],
  [:inline_graphic, "Sts::NisoSts::InlineGraphic", "inline-graphic"],
  [:private_char, "Sts::NisoSts::PrivateChar", "private-char"],
  [:preformat, "Sts::NisoSts::Preformat", "preformat"],
  [:alternatives, "Sts::NisoSts::Alternatives", "alternatives"],
  [:address, "Sts::NisoSts::Address", "address"],
  [:related_article, "Sts::NisoSts::RelatedArticle", "related-article"],
  [:related_object, "Sts::NisoSts::RelatedObject", "related-object"],
  [:index_term, "Sts::NisoSts::IndexTerm", "index-term"],
  [:milestone_end, "Sts::NisoSts::MilestoneEnd", "milestone-end"],
  [:milestone_start, "Sts::NisoSts::MilestoneStart", "milestone-start"],
].freeze
INSIDE_CELL_ATTRIBUTES =
%i[id content_type style abbr axis headers scope
rowspan colspan align char charoff valign].freeze
INSIDE_CELL_ATTR_XML =
{
  id: "id", content_type: "content-type", style: "style",
  abbr: "abbr", axis: "axis", headers: "headers", scope: "scope",
  rowspan: "rowspan", colspan: "colspan", align: "align",
  char: "char", charoff: "charoff", valign: "valign"
}.freeze
BODY_ELEMENTS =
[
  [:sec, "Sts::NisoSts::Section", "sec"],
  [:term_sec, "Sts::NisoSts::TermSection", "term-sec"],
  [:p, "Sts::NisoSts::Paragraph", "p"],
  [:list, "Sts::NisoSts::List", "list"],
  [:def_list, "Sts::NisoSts::DefList", "def-list"],
  [:table_wrap, "Sts::TbxIsoTml::TableWrap", "table-wrap"],
  [:fig, "Sts::NisoSts::Figure", "fig"],
  [:non_normative_note, "Sts::NisoSts::NonNormativeNote",
   "non-normative-note"],
  [:non_normative_example, "Sts::NisoSts::NonNormativeExample",
   "non-normative-example"],
  [:preformat, "Sts::NisoSts::Preformat", "preformat"],
  [:styled_content, "Sts::NisoSts::StyledContent", "styled-content"],
  [:array, "Sts::NisoSts::SectionArray", "array"],
  [:disp_formula, "Sts::NisoSts::DisplayFormula", "disp-formula"],
  [:disp_formula_group, "Sts::NisoSts::DispFormulaGroup",
   "disp-formula-group"],
  [:editing_instruction, "Sts::NisoSts::EditingInstruction",
   "editing-instruction"],
  [:disp_quote, "Sts::NisoSts::DispQuote", "disp-quote"],
].freeze
EMPHASIZED_TEXT_ELEMENTS =
ruby_name, type_class_name, xml_element_name
[
  [:bold, "Sts::TbxIsoTml::Bold", "bold"],
  [:italic, "Sts::TbxIsoTml::Italic", "italic"],
  [:monospace, "Sts::NisoSts::Monospace", "monospace"],
  [:overline, "Sts::NisoSts::Overline", "overline"],
  [:roman, "Sts::NisoSts::Roman", "roman"],
  [:sans_serif, "Sts::NisoSts::SansSerif", "sans-serif"],
  [:sc, "Sts::NisoSts::Sc", "sc"],
  [:strike, "Sts::NisoSts::Strike", "strike"],
  [:underline, "Sts::NisoSts::Underline", "underline"],
  [:ruby, "Sts::NisoSts::Ruby", "ruby"],
  [:sub, "Sts::NisoSts::Sub", "sub"],
  [:sup, "Sts::NisoSts::Sup", "sup"],
  [:styled_content, "Sts::NisoSts::StyledContent", "styled-content"],
  [:named_content, "Sts::NisoSts::NamedContent", "named-content"],
  [:target, "Sts::NisoSts::Target", "target"],
  [:fn, "Sts::NisoSts::Fn", "fn"],
  [:xref, "Sts::TbxIsoTml::Xref", "xref"],
  [:ext_link, "Sts::NisoSts::ExtLink", "ext-link"],
  [:uri, "Sts::NisoSts::Uri", "uri"],
  [:email, "Sts::NisoSts::Email", "email"],
  [:inline_graphic, "Sts::NisoSts::InlineGraphic", "inline-graphic"],
  [:private_char, "Sts::NisoSts::PrivateChar", "private-char"],
  [:inline_formula, "Sts::NisoSts::InlineFormula", "inline-formula"],
  [:chem_struct, "Sts::NisoSts::ChemStruct", "chem-struct"],
  [:tex_math, "Sts::NisoSts::TexMath", "tex-math"],
  [:math, "Sts::TbxIsoTml::Math", "math"],
  [:std, "Sts::NisoSts::ReferenceStandard", "std"],
  [:std_ref, "Sts::NisoSts::StandardRef", "std-ref"],
  [:related_article, "Sts::NisoSts::RelatedArticle", "related-article"],
  [:related_object, "Sts::NisoSts::RelatedObject", "related-object"],
  [:inline_supplementary_material,
   "Sts::NisoSts::InlineSupplementaryMaterial", "inline-supplementary-material"],
].freeze
CITATION_ELEMENTS =

4-tuple: [ruby_name, type_class_name, xml_element_name, collection?]

[
  [:publisher, "Sts::NisoSts::Publisher", "publisher", false],
  [:person_group, "Sts::NisoSts::PersonGroup", "person-group", true],
  [:article_title, "Sts::NisoSts::ArticleTitle", "article-title", false],
  [:source, "Sts::NisoSts::Source", "source", false],
  [:trans_source, "Sts::NisoSts::TransSource", "trans-source", false],
  [:chapter_title, "Sts::NisoSts::ChapterTitle", "chapter-title", false],
  [:data_title, "Sts::NisoSts::DataTitle", "data-title", false],
  [:trans_title, "Sts::NisoSts::TransTitle", "trans-title", false],
  [:trans_title_group, "Sts::NisoSts::TransTitleGroup",
   "trans-title-group", false],
  [:edition, "Sts::NisoSts::Edition", "edition", false],
  [:volume, "Sts::NisoSts::Volume", "volume", false],
  [:issue, "Sts::NisoSts::Issue", "issue", false],
  [:pub_id, "Sts::NisoSts::PubId", "pub-id", true],
  [:isbn, "Sts::NisoSts::Isbn", "isbn", false],
  [:issn, "Sts::NisoSts::Issn", "issn", false],
  [:issn_l, "Sts::NisoSts::IssnL", "issn-l", false],
  [:fpage, "Sts::NisoSts::Fpage", "fpage", false],
  [:lpage, "Sts::NisoSts::Lpage", "lpage", false],
  [:page_range, "Sts::NisoSts::PageRange", "page-range", false],
  [:elocation_id, "Sts::NisoSts::ElocationId", "elocation-id", false],
  [:date, "Sts::NisoSts::Date", "date", false],
  [:date_in_citation, "Sts::NisoSts::DateInCitation", "date-in-citation",
   false],
  [:access_date, "Sts::NisoSts::AccessDate", "access-date", false],
  [:time_stamp, "Sts::NisoSts::TimeStamp", "time-stamp", false],
  [:conf_name, "Sts::NisoSts::ConfName", "conf-name", false],
  [:conf_date, "Sts::NisoSts::ConfDate", "conf-date", false],
  [:conf_loc, "Sts::NisoSts::ConfLoc", "conf-loc", false],
  [:conference, "Sts::NisoSts::Conference", "conference", false],
  [:size, "Sts::NisoSts::Size", "size", false],
  [:series, "Sts::NisoSts::Series", "series", false],
  [:series_title, "Sts::NisoSts::SeriesTitle", "series-title", false],
  [:series_text, "Sts::NisoSts::SeriesText", "series-text", false],
  [:comment, "Sts::NisoSts::Comment", "comment", false],
  [:annotation, "Sts::NisoSts::Annotation", "annotation", false],
  [:patent, "Sts::NisoSts::Patent", "patent", false],
  [:gov, "Sts::NisoSts::Gov", "gov", false],
  [:aff, "Sts::NisoSts::Aff", "aff", true],
  [:aff_alternatives, "Sts::NisoSts::AffAlternatives",
   "aff-alternatives", false],
  [:collab, "Sts::NisoSts::Collab", "collab", true],
  [:etal, "Sts::NisoSts::Etal", "etal", false],
  [:ext_link, "Sts::NisoSts::ExtLink", "ext-link", true],
].freeze
HIGHLIGHT_ELEMENTS =
[
  [:sub, "Sts::NisoSts::Sub", "sub"],
  [:sup, "Sts::NisoSts::Sup", "sup"],
  [:monospace, "Sts::NisoSts::Monospace", "monospace"],
  [:sc, "Sts::NisoSts::Sc", "sc"],
  [:std_ref, "Sts::NisoSts::StandardRef", "std-ref"],
  [:underline, "Sts::NisoSts::Underline", "underline"],
  [:strike, "Sts::NisoSts::Strike", "strike"],
  [:xref, "Sts::TbxIsoTml::Xref", "xref"],
  [:ext_link, "Sts::NisoSts::ExtLink", "ext-link"],
  [:fn, "Sts::NisoSts::Fn", "fn"],
  [:styled_content, "Sts::NisoSts::StyledContent", "styled-content"],
  [:array, "Sts::NisoSts::SectionArray", "array"],
  [:break, "Sts::TbxIsoTml::TableBreak", "break"],
  [:target, "Sts::NisoSts::Target", "target"],
  [:overline, "Sts::NisoSts::Overline", "overline"],
  [:roman, "Sts::NisoSts::Roman", "roman"],
  [:sans_serif, "Sts::NisoSts::SansSerif", "sans-serif"],
  [:ruby, "Sts::NisoSts::Ruby", "ruby"],
  [:named_content, "Sts::NisoSts::NamedContent", "named-content"],
  [:uri, "Sts::NisoSts::Uri", "uri"],
  [:inline_formula, "Sts::NisoSts::InlineFormula", "inline-formula"],
].freeze
TABLE_GROUP_ATTRS =
%i[id content_type style align char charoff
valign].freeze
TABLE_GROUP_ATTR_XML =
{
  id: "id", content_type: "content-type", style: "style",
  align: "align", char: "char", charoff: "charoff", valign: "valign"
}.freeze
TABLE_COL_EXTRA_ATTRS =
%i[span width].freeze
TABLE_COL_EXTRA_ATTR_XML =
{ span: "span", width: "width" }.freeze
STYLED_CONTENT_ELEMENTS =
[
  [:bold, "Sts::TbxIsoTml::Bold", "bold"],
  [:italic, "Sts::TbxIsoTml::Italic", "italic"],
  [:sub, "Sts::NisoSts::Sub", "sub"],
  [:sup, "Sts::NisoSts::Sup", "sup"],
  [:sc, "Sts::NisoSts::Sc", "sc"],
  [:monospace, "Sts::NisoSts::Monospace", "monospace"],
  [:underline, "Sts::NisoSts::Underline", "underline"],
  [:overline, "Sts::NisoSts::Overline", "overline"],
  [:roman, "Sts::NisoSts::Roman", "roman"],
  [:sans_serif, "Sts::NisoSts::SansSerif", "sans-serif"],
  [:strike, "Sts::NisoSts::Strike", "strike"],
  [:xref, "Sts::TbxIsoTml::Xref", "xref"],
  [:ext_link, "Sts::NisoSts::ExtLink", "ext-link"],
  [:uri, "Sts::NisoSts::Uri", "uri"],
  [:fn, "Sts::NisoSts::Fn", "fn"],
  [:inline_formula, "Sts::NisoSts::InlineFormula", "inline-formula"],
  [:break, "Sts::NisoSts::Break", "break"],
  [:target, "Sts::NisoSts::Target", "target"],
  [:named_content, "Sts::NisoSts::NamedContent", "named-content"],
  [:styled_content, "Sts::NisoSts::StyledContent", "styled-content"],
  [:array, "Sts::NisoSts::SectionArray", "array"],
  [:std, "Sts::NisoSts::ReferenceStandard", "std"],
  [:graphic, "Sts::NisoSts::Graphic", "graphic"],
  [:inline_graphic, "Sts::NisoSts::InlineGraphic", "inline-graphic"],
  [:private_char, "Sts::NisoSts::PrivateChar", "private-char"],
  [:preformat, "Sts::NisoSts::Preformat", "preformat"],
  [:fig, "Sts::NisoSts::Figure", "fig"],
  [:fig_group, "Sts::NisoSts::FigGroup", "fig-group"],
  [:media, "Sts::NisoSts::Media", "media"],
  [:table_wrap, "Sts::TbxIsoTml::TableWrap", "table-wrap"],
  [:boxed_text, "Sts::NisoSts::BoxedText", "boxed-text"],
  [:chem_struct_wrap, "Sts::NisoSts::ChemStructWrap", "chem-struct-wrap"],
  [:chem_struct, "Sts::NisoSts::ChemStruct", "chem-struct"],
  [:list, "Sts::NisoSts::List", "list"],
  [:def_list, "Sts::NisoSts::DefList", "def-list"],
  [:disp_formula, "Sts::NisoSts::DisplayFormula", "disp-formula"],
  [:disp_formula_group, "Sts::NisoSts::DispFormulaGroup",
   "disp-formula-group"],
  [:disp_quote, "Sts::NisoSts::DispQuote", "disp-quote"],
  [:speech, "Sts::NisoSts::Speech", "speech"],
  [:statement, "Sts::NisoSts::Statement", "statement"],
  [:verse_group, "Sts::NisoSts::VerseGroup", "verse-group"],
  [:non_normative_note, "Sts::NisoSts::NonNormativeNote",
   "non-normative-note"],
  [:non_normative_example, "Sts::NisoSts::NonNormativeExample",
   "non-normative-example"],
  [:normative_note, "Sts::NisoSts::NormativeNote", "normative-note"],
  [:normative_example, "Sts::NisoSts::NormativeExample",
   "normative-example"],
  [:notes_group, "Sts::NisoSts::NotesGroup", "notes-group"],
  [:supplementary_material, "Sts::NisoSts::SupplementaryMaterial",
   "supplementary-material"],
  [:address, "Sts::NisoSts::Address", "address"],
  [:alternatives, "Sts::NisoSts::Alternatives", "alternatives"],
  [:related_article, "Sts::NisoSts::RelatedArticle", "related-article"],
  [:related_object, "Sts::NisoSts::RelatedObject", "related-object"],
  [:math, "Sts::TbxIsoTml::Math", "math"],
  [:tex_math, "Sts::NisoSts::TexMath", "tex-math"],
  [:ruby, "Sts::NisoSts::Ruby", "ruby"],
  [:email, "Sts::NisoSts::Email", "email"],
  [:entailed_term, "Sts::TbxIsoTml::EntailedTerm", "entailedTerm"],
  [:index_term, "Sts::NisoSts::IndexTerm", "index-term"],
  [:milestone_end, "Sts::NisoSts::MilestoneEnd", "milestone-end"],
  [:milestone_start, "Sts::NisoSts::MilestoneStart", "milestone-start"],
].freeze

Class Method Summary collapse

Methods included from ContentGroups::Helpers

inject_element_mappings, inject_elements

Class Method Details

.body_elements(klass) ⇒ Object



41
42
43
# File 'lib/sts/niso_sts/content_groups/body_elements.rb', line 41

def self.body_elements(klass)
  inject_elements(klass, BODY_ELEMENTS)
end

.body_elements_mappings(klass) ⇒ Object



45
46
47
# File 'lib/sts/niso_sts/content_groups/body_elements.rb', line 45

def self.body_elements_mappings(klass)
  inject_element_mappings(klass, BODY_ELEMENTS)
end

.citation_elements(klass) ⇒ Object



65
66
67
# File 'lib/sts/niso_sts/content_groups/citation_elements.rb', line 65

def self.citation_elements(klass)
  inject_elements(klass, CITATION_ELEMENTS)
end

.citation_elements_mappings(klass) ⇒ Object



69
70
71
# File 'lib/sts/niso_sts/content_groups/citation_elements.rb', line 69

def self.citation_elements_mappings(klass)
  inject_element_mappings(klass, CITATION_ELEMENTS)
end

.emphasized_text(klass) ⇒ Object



58
59
60
# File 'lib/sts/niso_sts/content_groups/emphasized_text.rb', line 58

def self.emphasized_text(klass)
  inject_elements(klass, EMPHASIZED_TEXT_ELEMENTS)
end

.emphasized_text_mappings(klass) ⇒ Object



62
63
64
# File 'lib/sts/niso_sts/content_groups/emphasized_text.rb', line 62

def self.emphasized_text_mappings(klass)
  inject_element_mappings(klass, EMPHASIZED_TEXT_ELEMENTS)
end

.highlight_elements(klass) ⇒ Object



42
43
44
# File 'lib/sts/niso_sts/content_groups/highlight_elements.rb', line 42

def self.highlight_elements(klass)
  inject_elements(klass, HIGHLIGHT_ELEMENTS)
end

.highlight_elements_mappings(klass) ⇒ Object



46
47
48
# File 'lib/sts/niso_sts/content_groups/highlight_elements.rb', line 46

def self.highlight_elements_mappings(klass)
  inject_element_mappings(klass, HIGHLIGHT_ELEMENTS)
end

.inside_cell(klass) ⇒ Object



76
77
78
# File 'lib/sts/niso_sts/content_groups/inside_cell.rb', line 76

def self.inside_cell(klass)
  inject_elements(klass, INSIDE_CELL_ELEMENTS)
end

.inside_cell_attribute_mappings(klass, char_value_map: false) ⇒ Object



105
106
107
108
109
110
111
112
113
# File 'lib/sts/niso_sts/content_groups/inside_cell.rb', line 105

def self.inside_cell_attribute_mappings(klass, char_value_map: false)
  INSIDE_CELL_ATTR_XML.each do |name, xml_name|
    opts = {}
    if char_value_map && name == :char
      opts[:value_map] = { to: { empty: :empty } }
    end
    klass.map_attribute xml_name, to: name, **opts
  end
end

.inside_cell_attributes(klass) ⇒ Object



93
94
95
96
97
98
99
100
101
102
103
# File 'lib/sts/niso_sts/content_groups/inside_cell.rb', line 93

def self.inside_cell_attributes(klass)
  INSIDE_CELL_ATTRIBUTES.each do |name|
    opts = case name
           when :align then { values: EnumValues::ALIGN }
           when :valign then { values: EnumValues::VALIGN }
           when :scope then { values: EnumValues::SCOPE }
           else {}
           end
    klass.attribute name, :string, **opts
  end
end

.inside_cell_mappings(klass) ⇒ Object



80
81
82
# File 'lib/sts/niso_sts/content_groups/inside_cell.rb', line 80

def self.inside_cell_mappings(klass)
  inject_element_mappings(klass, INSIDE_CELL_ELEMENTS)
end

.p_elements(klass) ⇒ Object



30
31
32
33
# File 'lib/sts/niso_sts/content_groups/p_elements.rb', line 30

def self.p_elements(klass)
  styled_content_elements(klass)
  inject_elements(klass, P_ELEMENTS_EXTRA)
end

.p_elements_mappings(klass) ⇒ Object



35
36
37
38
# File 'lib/sts/niso_sts/content_groups/p_elements.rb', line 35

def self.p_elements_mappings(klass)
  styled_content_elements_mappings(klass)
  inject_element_mappings(klass, P_ELEMENTS_EXTRA)
end

.para_level(klass) ⇒ Object



58
59
60
# File 'lib/sts/niso_sts/content_groups/para_level.rb', line 58

def self.para_level(klass)
  inject_elements(klass, PARA_LEVEL_ELEMENTS)
end

.para_level_mappings(klass) ⇒ Object



62
63
64
# File 'lib/sts/niso_sts/content_groups/para_level.rb', line 62

def self.para_level_mappings(klass)
  inject_element_mappings(klass, PARA_LEVEL_ELEMENTS)
end

.styled_content_elements(klass) ⇒ Object



84
85
86
# File 'lib/sts/niso_sts/content_groups/styled_content_elements.rb', line 84

def self.styled_content_elements(klass)
  inject_elements(klass, STYLED_CONTENT_ELEMENTS)
end

.styled_content_elements_mappings(klass) ⇒ Object



88
89
90
# File 'lib/sts/niso_sts/content_groups/styled_content_elements.rb', line 88

def self.styled_content_elements_mappings(klass)
  inject_element_mappings(klass, STYLED_CONTENT_ELEMENTS)
end

.table_col_attribute_mappings(klass, char_value_map: false) ⇒ Object



54
55
56
57
58
59
# File 'lib/sts/niso_sts/content_groups/table_group_attributes.rb', line 54

def self.table_col_attribute_mappings(klass, char_value_map: false)
  table_group_attribute_mappings(klass, char_value_map: char_value_map)
  TABLE_COL_EXTRA_ATTR_XML.each do |name, xml_name|
    klass.map_attribute xml_name, to: name
  end
end

.table_col_attributes(klass) ⇒ Object



49
50
51
52
# File 'lib/sts/niso_sts/content_groups/table_group_attributes.rb', line 49

def self.table_col_attributes(klass)
  table_group_attributes(klass)
  TABLE_COL_EXTRA_ATTRS.each { |name| klass.attribute name, :string }
end

.table_group_attribute_mappings(klass, char_value_map: false) ⇒ Object



39
40
41
42
43
44
45
46
47
# File 'lib/sts/niso_sts/content_groups/table_group_attributes.rb', line 39

def self.table_group_attribute_mappings(klass, char_value_map: false)
  TABLE_GROUP_ATTR_XML.each do |name, xml_name|
    opts = {}
    if char_value_map && name == :char
      opts[:value_map] = { to: { empty: :empty } }
    end
    klass.map_attribute xml_name, to: name, **opts
  end
end

.table_group_attributes(klass) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/sts/niso_sts/content_groups/table_group_attributes.rb', line 28

def self.table_group_attributes(klass)
  TABLE_GROUP_ATTRS.each do |name|
    opts = case name
           when :align then { values: EnumValues::ALIGN }
           when :valign then { values: EnumValues::VALIGN }
           else {}
           end
    klass.attribute name, :string, **opts
  end
end