sts 0.5.3 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. checksums.yaml +4 -4
  2. data/GAPS.guidelines.iso-sts-ed2.1/01-maintenance.md +19 -0
  3. data/GAPS.guidelines.iso-sts-ed2.1/03-general.md +75 -0
  4. data/GAPS.guidelines.iso-sts-ed2.1/04-structure.md +75 -0
  5. data/GAPS.guidelines.iso-sts-ed2.1/05-content.md +63 -0
  6. data/GAPS.guidelines.iso-sts-ed2.1/06-tables.md +53 -0
  7. data/GAPS.guidelines.iso-sts-ed2.1/07-formulae.md +41 -0
  8. data/GAPS.guidelines.iso-sts-ed2.1/08-figures.md +45 -0
  9. data/GAPS.guidelines.iso-sts-ed2.1/09-terms.md +56 -0
  10. data/GAPS.guidelines.iso-sts-ed2.1/10-references.md +56 -0
  11. data/GAPS.guidelines.iso-sts-ed2.1/annex-a-multilingual.md +79 -0
  12. data/GAPS.guidelines.niso-sts-v1.0/01-introduction-scope.md +27 -0
  13. data/GAPS.guidelines.niso-sts-v1.0/02-document-structure.md +100 -0
  14. data/GAPS.guidelines.niso-sts-v1.0/03-front-matter.md +149 -0
  15. data/GAPS.guidelines.niso-sts-v1.0/04-body-content.md +209 -0
  16. data/GAPS.guidelines.niso-sts-v1.0/05-tables-figures.md +152 -0
  17. data/GAPS.guidelines.niso-sts-v1.0/06-math-formulae.md +128 -0
  18. data/GAPS.guidelines.niso-sts-v1.0/07-references.md +113 -0
  19. data/GAPS.guidelines.niso-sts-v1.0/08-terminology.md +127 -0
  20. data/GAPS.guidelines.niso-sts-v1.0/09-metadata.md +113 -0
  21. data/GAPS.guidelines.niso-sts-v1.0/10-iso-iec-variant.md +141 -0
  22. data/GAPS.guidelines.niso-sts-v1.0/SUMMARY.md +96 -0
  23. data/GAPS.guidelines.schema-xref.md +101 -0
  24. data/Gemfile +1 -0
  25. data/TODO.sts-refactor/00-overview.md +172 -0
  26. data/TODO.sts-refactor/01-mathml-delegation.md +153 -0
  27. data/TODO.sts-refactor/02-type-resolution.md +122 -0
  28. data/TODO.sts-refactor/03-namespace-coupling.md +158 -0
  29. data/TODO.sts-refactor/04-register-versioning.md +180 -0
  30. data/TODO.sts-refactor/05-missing-elements.md +195 -0
  31. data/TODO.sts-refactor/06-missing-attributes.md +152 -0
  32. data/TODO.sts-refactor/07-incomplete-models.md +180 -0
  33. data/TODO.sts-refactor/08-isoiec-profile.md +169 -0
  34. data/TODO.sts-refactor/09-autoload-cleanup.md +88 -0
  35. data/TODO.sts-refactor/10-test-coverage.md +164 -0
  36. data/TODO.sts-refactor/11-duplicate-models.md +168 -0
  37. data/lib/sts/iso_sts/annex_type.rb +2 -0
  38. data/lib/sts/iso_sts/bold.rb +9 -9
  39. data/lib/sts/iso_sts/break.rb +3 -0
  40. data/lib/sts/iso_sts/comm_ref.rb +2 -0
  41. data/lib/sts/iso_sts/content_language.rb +22 -0
  42. data/lib/sts/iso_sts/copyright_holder.rb +4 -2
  43. data/lib/sts/iso_sts/copyright_statement.rb +4 -2
  44. data/lib/sts/iso_sts/copyright_year.rb +3 -0
  45. data/lib/sts/iso_sts/doc_ref.rb +2 -0
  46. data/lib/sts/iso_sts/document_identification.rb +2 -0
  47. data/lib/sts/iso_sts/edition.rb +2 -0
  48. data/lib/sts/iso_sts/ext_link.rb +1 -1
  49. data/lib/sts/iso_sts/front.rb +2 -0
  50. data/lib/sts/iso_sts/iso_meta.rb +2 -2
  51. data/lib/sts/iso_sts/italic.rb +9 -9
  52. data/lib/sts/iso_sts/label.rb +7 -5
  53. data/lib/sts/iso_sts/language.rb +2 -0
  54. data/lib/sts/iso_sts/meta_date.rb +20 -0
  55. data/lib/sts/iso_sts/mixed_citation.rb +5 -5
  56. data/lib/sts/iso_sts/monospace.rb +26 -0
  57. data/lib/sts/iso_sts/named_content.rb +44 -0
  58. data/lib/sts/iso_sts/nat_meta.rb +4 -4
  59. data/lib/sts/iso_sts/page_count.rb +2 -0
  60. data/lib/sts/iso_sts/paragraph.rb +8 -8
  61. data/lib/sts/iso_sts/permissions.rb +2 -0
  62. data/lib/sts/iso_sts/preformat.rb +3 -3
  63. data/lib/sts/iso_sts/reg_meta.rb +4 -4
  64. data/lib/sts/iso_sts/release_date.rb +2 -0
  65. data/lib/sts/iso_sts/sc.rb +26 -0
  66. data/lib/sts/iso_sts/sec.rb +2 -2
  67. data/lib/sts/iso_sts/secretariat.rb +2 -0
  68. data/lib/sts/iso_sts/standard_cross_reference.rb +4 -2
  69. data/lib/sts/iso_sts/standard_identification.rb +2 -0
  70. data/lib/sts/iso_sts/standard_ref.rb +16 -0
  71. data/lib/sts/iso_sts/std.rb +3 -1
  72. data/lib/sts/iso_sts/std_ref.rb +2 -0
  73. data/lib/sts/iso_sts/strike.rb +26 -0
  74. data/lib/sts/iso_sts/styled_content.rb +11 -9
  75. data/lib/sts/iso_sts/sub.rb +2 -0
  76. data/lib/sts/iso_sts/sup.rb +2 -0
  77. data/lib/sts/iso_sts/table_wrap_foot.rb +2 -0
  78. data/lib/sts/iso_sts/td.rb +7 -7
  79. data/lib/sts/iso_sts/term.rb +5 -5
  80. data/lib/sts/iso_sts/th.rb +7 -7
  81. data/lib/sts/iso_sts/title.rb +6 -4
  82. data/lib/sts/iso_sts/title_compl.rb +2 -0
  83. data/lib/sts/iso_sts/title_full.rb +2 -0
  84. data/lib/sts/iso_sts/title_intro.rb +2 -0
  85. data/lib/sts/iso_sts/title_main.rb +2 -0
  86. data/lib/sts/iso_sts/underline.rb +26 -0
  87. data/lib/sts/iso_sts/uri.rb +32 -0
  88. data/lib/sts/iso_sts/xref.rb +3 -3
  89. data/lib/sts/iso_sts.rb +9 -0
  90. data/lib/sts/mathml.rb +12 -58
  91. data/lib/sts/namespaces.rb +2 -0
  92. data/lib/sts/niso_sts/abstract.rb +2 -0
  93. data/lib/sts/niso_sts/access_date.rb +2 -0
  94. data/lib/sts/niso_sts/accrediting_organization.rb +2 -0
  95. data/lib/sts/niso_sts/addr_line.rb +2 -0
  96. data/lib/sts/niso_sts/address.rb +2 -0
  97. data/lib/sts/niso_sts/aff_alternatives.rb +3 -0
  98. data/lib/sts/niso_sts/alt_text.rb +2 -0
  99. data/lib/sts/niso_sts/alt_title.rb +2 -0
  100. data/lib/sts/niso_sts/alternatives.rb +2 -0
  101. data/lib/sts/niso_sts/anonymous.rb +3 -0
  102. data/lib/sts/niso_sts/app.rb +2 -0
  103. data/lib/sts/niso_sts/article_title.rb +2 -0
  104. data/lib/sts/niso_sts/attrib.rb +2 -0
  105. data/lib/sts/niso_sts/authorization.rb +2 -0
  106. data/lib/sts/niso_sts/award_group.rb +22 -4
  107. data/lib/sts/niso_sts/award_id.rb +6 -0
  108. data/lib/sts/niso_sts/back.rb +22 -4
  109. data/lib/sts/niso_sts/body.rb +2 -0
  110. data/lib/sts/niso_sts/boxed_text.rb +38 -4
  111. data/lib/sts/niso_sts/break.rb +3 -0
  112. data/lib/sts/niso_sts/caption.rb +8 -0
  113. data/lib/sts/niso_sts/chapter_title.rb +2 -0
  114. data/lib/sts/niso_sts/chem_struct.rb +2 -0
  115. data/lib/sts/niso_sts/citation_alternatives.rb +2 -0
  116. data/lib/sts/niso_sts/city.rb +2 -0
  117. data/lib/sts/niso_sts/code.rb +111 -0
  118. data/lib/sts/niso_sts/collab_alternatives.rb +3 -0
  119. data/lib/sts/niso_sts/comm_ref_group.rb +3 -0
  120. data/lib/sts/niso_sts/comment.rb +2 -0
  121. data/lib/sts/niso_sts/compound_subject.rb +29 -0
  122. data/lib/sts/niso_sts/compound_subject_part.rb +39 -0
  123. data/lib/sts/niso_sts/conf_acronym.rb +2 -0
  124. data/lib/sts/niso_sts/conf_date.rb +2 -0
  125. data/lib/sts/niso_sts/conf_loc.rb +2 -0
  126. data/lib/sts/niso_sts/conf_name.rb +2 -0
  127. data/lib/sts/niso_sts/conf_num.rb +2 -0
  128. data/lib/sts/niso_sts/conf_sponsor.rb +2 -0
  129. data/lib/sts/niso_sts/conf_theme.rb +2 -0
  130. data/lib/sts/niso_sts/conference.rb +2 -0
  131. data/lib/sts/niso_sts/content_language.rb +2 -0
  132. data/lib/sts/niso_sts/contrib_id.rb +2 -0
  133. data/lib/sts/niso_sts/copyright_holder.rb +2 -0
  134. data/lib/sts/niso_sts/copyright_statement.rb +2 -0
  135. data/lib/sts/niso_sts/copyright_year.rb +2 -0
  136. data/lib/sts/niso_sts/country.rb +2 -0
  137. data/lib/sts/niso_sts/counts.rb +2 -0
  138. data/lib/sts/niso_sts/custom_meta.rb +2 -0
  139. data/lib/sts/niso_sts/custom_meta_group.rb +3 -0
  140. data/lib/sts/niso_sts/data_title.rb +29 -0
  141. data/lib/sts/niso_sts/date.rb +2 -0
  142. data/lib/sts/niso_sts/date_in_citation.rb +2 -0
  143. data/lib/sts/niso_sts/day.rb +2 -0
  144. data/lib/sts/niso_sts/def.rb +3 -0
  145. data/lib/sts/niso_sts/def_head.rb +18 -0
  146. data/lib/sts/niso_sts/def_item.rb +4 -0
  147. data/lib/sts/niso_sts/def_list.rb +21 -4
  148. data/lib/sts/niso_sts/degrees.rb +2 -0
  149. data/lib/sts/niso_sts/disp_formula_group.rb +0 -2
  150. data/lib/sts/niso_sts/disp_quote.rb +2 -0
  151. data/lib/sts/niso_sts/display_formula.rb +37 -4
  152. data/lib/sts/niso_sts/doc_number.rb +2 -0
  153. data/lib/sts/niso_sts/doc_type.rb +2 -0
  154. data/lib/sts/niso_sts/editing_instruction.rb +8 -2
  155. data/lib/sts/niso_sts/edition.rb +2 -0
  156. data/lib/sts/niso_sts/elocation_id.rb +2 -0
  157. data/lib/sts/niso_sts/email.rb +2 -0
  158. data/lib/sts/niso_sts/equation_count.rb +2 -0
  159. data/lib/sts/niso_sts/era.rb +2 -0
  160. data/lib/sts/niso_sts/ext_link.rb +16 -0
  161. data/lib/sts/niso_sts/fax.rb +2 -0
  162. data/lib/sts/niso_sts/fig_count.rb +2 -0
  163. data/lib/sts/niso_sts/floats_group.rb +2 -0
  164. data/lib/sts/niso_sts/fn_group.rb +3 -0
  165. data/lib/sts/niso_sts/fpage.rb +2 -0
  166. data/lib/sts/niso_sts/front.rb +15 -0
  167. data/lib/sts/niso_sts/funding_source.rb +2 -0
  168. data/lib/sts/niso_sts/given_names.rb +2 -0
  169. data/lib/sts/niso_sts/gov.rb +2 -0
  170. data/lib/sts/niso_sts/graphic.rb +4 -0
  171. data/lib/sts/niso_sts/hr.rb +3 -0
  172. data/lib/sts/niso_sts/ics.rb +3 -0
  173. data/lib/sts/niso_sts/ics_desc.rb +2 -0
  174. data/lib/sts/niso_sts/ics_wrap.rb +9 -0
  175. data/lib/sts/niso_sts/index.rb +32 -0
  176. data/lib/sts/niso_sts/index_div.rb +30 -0
  177. data/lib/sts/niso_sts/index_entry.rb +32 -0
  178. data/lib/sts/niso_sts/index_title_group.rb +22 -0
  179. data/lib/sts/niso_sts/inline_formula.rb +29 -4
  180. data/lib/sts/niso_sts/inline_media.rb +50 -0
  181. data/lib/sts/niso_sts/institution.rb +2 -0
  182. data/lib/sts/niso_sts/institution_id.rb +2 -0
  183. data/lib/sts/niso_sts/institution_wrap.rb +2 -0
  184. data/lib/sts/niso_sts/intro.rb +2 -0
  185. data/lib/sts/niso_sts/is_proof.rb +2 -0
  186. data/lib/sts/niso_sts/isbn.rb +2 -0
  187. data/lib/sts/niso_sts/issn.rb +2 -0
  188. data/lib/sts/niso_sts/issn_l.rb +2 -0
  189. data/lib/sts/niso_sts/issue.rb +2 -0
  190. data/lib/sts/niso_sts/kwd_group.rb +8 -0
  191. data/lib/sts/niso_sts/label.rb +4 -0
  192. data/lib/sts/niso_sts/legend.rb +39 -0
  193. data/lib/sts/niso_sts/license.rb +2 -0
  194. data/lib/sts/niso_sts/license_p.rb +2 -0
  195. data/lib/sts/niso_sts/list.rb +2 -0
  196. data/lib/sts/niso_sts/list_item.rb +2 -2
  197. data/lib/sts/niso_sts/long_desc.rb +2 -0
  198. data/lib/sts/niso_sts/lpage.rb +2 -0
  199. data/lib/sts/niso_sts/main.rb +2 -0
  200. data/lib/sts/niso_sts/meta_date.rb +2 -0
  201. data/lib/sts/niso_sts/metadata_std.rb +0 -2
  202. data/lib/sts/niso_sts/mml_content.rb +0 -2
  203. data/lib/sts/niso_sts/month.rb +2 -0
  204. data/lib/sts/niso_sts/name.rb +2 -0
  205. data/lib/sts/niso_sts/name_alternatives.rb +5 -0
  206. data/lib/sts/niso_sts/named_content.rb +51 -1
  207. data/lib/sts/niso_sts/nat_meta.rb +2 -0
  208. data/lib/sts/niso_sts/nested_kwd.rb +2 -0
  209. data/lib/sts/niso_sts/non_normative_note.rb +2 -0
  210. data/lib/sts/niso_sts/normative_note.rb +2 -0
  211. data/lib/sts/niso_sts/object_id.rb +4 -0
  212. data/lib/sts/niso_sts/on_behalf_of.rb +2 -0
  213. data/lib/sts/niso_sts/open_access.rb +2 -0
  214. data/lib/sts/niso_sts/originator.rb +2 -0
  215. data/lib/sts/niso_sts/page_count.rb +2 -0
  216. data/lib/sts/niso_sts/page_range.rb +2 -0
  217. data/lib/sts/niso_sts/paragraph.rb +2 -0
  218. data/lib/sts/niso_sts/part_number.rb +2 -0
  219. data/lib/sts/niso_sts/part_of_speech.rb +2 -0
  220. data/lib/sts/niso_sts/patent.rb +2 -0
  221. data/lib/sts/niso_sts/permissions.rb +6 -1
  222. data/lib/sts/niso_sts/phone.rb +2 -0
  223. data/lib/sts/niso_sts/postal_code.rb +2 -0
  224. data/lib/sts/niso_sts/prefix.rb +2 -0
  225. data/lib/sts/niso_sts/price.rb +2 -0
  226. data/lib/sts/niso_sts/principal_award_recipient.rb +2 -0
  227. data/lib/sts/niso_sts/principal_investigator.rb +2 -0
  228. data/lib/sts/niso_sts/private_char.rb +2 -0
  229. data/lib/sts/niso_sts/processing_meta.rb +54 -0
  230. data/lib/sts/niso_sts/product.rb +2 -0
  231. data/lib/sts/niso_sts/proj_id.rb +2 -0
  232. data/lib/sts/niso_sts/pub_date.rb +2 -0
  233. data/lib/sts/niso_sts/pub_id.rb +2 -0
  234. data/lib/sts/niso_sts/publisher.rb +2 -0
  235. data/lib/sts/niso_sts/publisher_loc.rb +2 -0
  236. data/lib/sts/niso_sts/publisher_name.rb +2 -0
  237. data/lib/sts/niso_sts/ref_count.rb +2 -0
  238. data/lib/sts/niso_sts/reference_standard.rb +2 -2
  239. data/lib/sts/niso_sts/reg_meta.rb +2 -0
  240. data/lib/sts/niso_sts/related_term.rb +2 -0
  241. data/lib/sts/niso_sts/release_date.rb +2 -0
  242. data/lib/sts/niso_sts/release_version.rb +2 -0
  243. data/lib/sts/niso_sts/release_version_id.rb +2 -0
  244. data/lib/sts/niso_sts/role.rb +35 -0
  245. data/lib/sts/niso_sts/sdo.rb +2 -0
  246. data/lib/sts/niso_sts/season.rb +2 -0
  247. data/lib/sts/niso_sts/sec_meta.rb +26 -0
  248. data/lib/sts/niso_sts/secretariat.rb +2 -0
  249. data/lib/sts/niso_sts/section.rb +8 -0
  250. data/lib/sts/niso_sts/see_also_entry.rb +26 -0
  251. data/lib/sts/niso_sts/see_entry.rb +26 -0
  252. data/lib/sts/niso_sts/self_uri.rb +2 -0
  253. data/lib/sts/niso_sts/series.rb +2 -0
  254. data/lib/sts/niso_sts/series_text.rb +2 -0
  255. data/lib/sts/niso_sts/series_title.rb +2 -0
  256. data/lib/sts/niso_sts/sig.rb +2 -0
  257. data/lib/sts/niso_sts/size.rb +2 -0
  258. data/lib/sts/niso_sts/source.rb +29 -0
  259. data/lib/sts/niso_sts/speaker.rb +2 -0
  260. data/lib/sts/niso_sts/standard_identification.rb +2 -0
  261. data/lib/sts/niso_sts/state.rb +2 -0
  262. data/lib/sts/niso_sts/std_doc_meta.rb +49 -11
  263. data/lib/sts/niso_sts/std_id.rb +2 -0
  264. data/lib/sts/niso_sts/std_id_group.rb +3 -0
  265. data/lib/sts/niso_sts/std_org_abbrev.rb +2 -0
  266. data/lib/sts/niso_sts/std_org_group.rb +3 -0
  267. data/lib/sts/niso_sts/std_org_name.rb +2 -0
  268. data/lib/sts/niso_sts/std_organization.rb +2 -0
  269. data/lib/sts/niso_sts/string_conf.rb +2 -0
  270. data/lib/sts/niso_sts/string_date.rb +2 -0
  271. data/lib/sts/niso_sts/string_name.rb +2 -0
  272. data/lib/sts/niso_sts/styled_content.rb +2 -0
  273. data/lib/sts/niso_sts/subj_group.rb +11 -1
  274. data/lib/sts/niso_sts/subtitle.rb +2 -0
  275. data/lib/sts/niso_sts/suffix.rb +2 -0
  276. data/lib/sts/niso_sts/suppl_number.rb +2 -0
  277. data/lib/sts/niso_sts/suppl_type.rb +2 -0
  278. data/lib/sts/niso_sts/suppl_version.rb +2 -0
  279. data/lib/sts/niso_sts/surname.rb +2 -0
  280. data/lib/sts/niso_sts/table_count.rb +2 -0
  281. data/lib/sts/niso_sts/table_wrap_group.rb +32 -0
  282. data/lib/sts/niso_sts/term_display.rb +22 -1
  283. data/lib/sts/niso_sts/term_display_string.rb +22 -0
  284. data/lib/sts/niso_sts/term_head.rb +2 -0
  285. data/lib/sts/niso_sts/term_source.rb +2 -0
  286. data/lib/sts/niso_sts/tex_math.rb +2 -0
  287. data/lib/sts/niso_sts/textual_form.rb +2 -0
  288. data/lib/sts/niso_sts/time_stamp.rb +2 -0
  289. data/lib/sts/niso_sts/title.rb +6 -0
  290. data/lib/sts/niso_sts/title_wrap.rb +2 -0
  291. data/lib/sts/niso_sts/toc.rb +32 -0
  292. data/lib/sts/niso_sts/toc_div.rb +30 -0
  293. data/lib/sts/niso_sts/toc_entry.rb +30 -0
  294. data/lib/sts/niso_sts/toc_title_group.rb +22 -0
  295. data/lib/sts/niso_sts/trans_source.rb +2 -0
  296. data/lib/sts/niso_sts/trans_title.rb +2 -0
  297. data/lib/sts/niso_sts/trans_title_group.rb +3 -0
  298. data/lib/sts/niso_sts/uri.rb +2 -0
  299. data/lib/sts/niso_sts/urn.rb +2 -0
  300. data/lib/sts/niso_sts/verse_line.rb +2 -0
  301. data/lib/sts/niso_sts/version.rb +2 -0
  302. data/lib/sts/niso_sts/volume.rb +2 -0
  303. data/lib/sts/niso_sts/volume_id.rb +2 -0
  304. data/lib/sts/niso_sts/volume_issue_group.rb +2 -0
  305. data/lib/sts/niso_sts/volume_series.rb +2 -0
  306. data/lib/sts/niso_sts/word_count.rb +2 -0
  307. data/lib/sts/niso_sts/year.rb +2 -0
  308. data/lib/sts/niso_sts.rb +35 -10
  309. data/lib/sts/profiles/iso_iec/constraints.rb +43 -0
  310. data/lib/sts/profiles/iso_iec/validator.rb +73 -0
  311. data/lib/sts/profiles/iso_iec.rb +10 -0
  312. data/lib/sts/profiles.rb +7 -0
  313. data/lib/sts/tbx_iso_tml/bold.rb +2 -0
  314. data/lib/sts/tbx_iso_tml/caption.rb +3 -0
  315. data/lib/sts/tbx_iso_tml/cross_reference.rb +2 -0
  316. data/lib/sts/tbx_iso_tml/definition.rb +2 -0
  317. data/lib/sts/tbx_iso_tml/entailed_term.rb +2 -0
  318. data/lib/sts/tbx_iso_tml/example.rb +0 -2
  319. data/lib/sts/tbx_iso_tml/external_graphic.rb +2 -0
  320. data/lib/sts/tbx_iso_tml/external_source.rb +2 -0
  321. data/lib/sts/tbx_iso_tml/fn_group.rb +3 -0
  322. data/lib/sts/tbx_iso_tml/geographical_usage.rb +3 -0
  323. data/lib/sts/tbx_iso_tml/grammatical_gender.rb +2 -0
  324. data/lib/sts/tbx_iso_tml/grammatical_number.rb +2 -0
  325. data/lib/sts/tbx_iso_tml/italic.rb +2 -0
  326. data/lib/sts/tbx_iso_tml/lang_set.rb +2 -0
  327. data/lib/sts/tbx_iso_tml/mfenced.rb +2 -0
  328. data/lib/sts/tbx_iso_tml/mfrac.rb +2 -2
  329. data/lib/sts/tbx_iso_tml/mi.rb +3 -2
  330. data/lib/sts/tbx_iso_tml/mrow.rb +2 -2
  331. data/lib/sts/tbx_iso_tml/mspace.rb +2 -0
  332. data/lib/sts/tbx_iso_tml/mstyle.rb +2 -2
  333. data/lib/sts/tbx_iso_tml/msub.rb +2 -0
  334. data/lib/sts/tbx_iso_tml/msup.rb +2 -0
  335. data/lib/sts/tbx_iso_tml/munder.rb +3 -0
  336. data/lib/sts/tbx_iso_tml/munderover.rb +2 -0
  337. data/lib/sts/tbx_iso_tml/normative_authorization.rb +2 -0
  338. data/lib/sts/tbx_iso_tml/part_of_speech.rb +2 -0
  339. data/lib/sts/tbx_iso_tml/pronunciation.rb +3 -0
  340. data/lib/sts/tbx_iso_tml/see.rb +2 -0
  341. data/lib/sts/tbx_iso_tml/semantics.rb +2 -0
  342. data/lib/sts/tbx_iso_tml/source.rb +2 -0
  343. data/lib/sts/tbx_iso_tml/subject_field.rb +2 -0
  344. data/lib/sts/tbx_iso_tml/sup.rb +3 -2
  345. data/lib/sts/tbx_iso_tml/table_wrap.rb +0 -1
  346. data/lib/sts/tbx_iso_tml/table_wrap_foot.rb +2 -0
  347. data/lib/sts/tbx_iso_tml/td.rb +115 -24
  348. data/lib/sts/tbx_iso_tml/term_type.rb +2 -0
  349. data/lib/sts/tbx_iso_tml/th.rb +124 -30
  350. data/lib/sts/tbx_iso_tml/xref.rb +2 -2
  351. data/lib/sts/version.rb +1 -1
  352. data/lib/sts.rb +1 -12
  353. data/reference-docs/Guidelines for coding ed.2.1.pdf +0 -0
  354. data/reference-docs/NISO-STS-1-2-compare-1-0.pdf +0 -0
  355. data/reference-docs/NISOSTS-guidelines-v1.0.pdf +0 -0
  356. metadata +71 -14
  357. data/lib/sts/content_groups/helpers.rb +0 -27
  358. data/lib/sts/enum_values.rb +0 -17
  359. data/lib/sts/iso_sts/content_groups/highlight_elements.rb +0 -285
  360. data/lib/sts/niso_sts/content_groups/body_elements.rb +0 -50
  361. data/lib/sts/niso_sts/content_groups/citation_elements.rb +0 -74
  362. data/lib/sts/niso_sts/content_groups/emphasized_text.rb +0 -67
  363. data/lib/sts/niso_sts/content_groups/highlight_elements.rb +0 -51
  364. data/lib/sts/niso_sts/content_groups/inside_cell.rb +0 -116
  365. data/lib/sts/niso_sts/content_groups/p_elements.rb +0 -41
  366. data/lib/sts/niso_sts/content_groups/para_level.rb +0 -67
  367. data/lib/sts/niso_sts/content_groups/styled_content_elements.rb +0 -93
  368. data/lib/sts/niso_sts/content_groups/table_group_attributes.rb +0 -62
  369. data/lib/sts/niso_sts/content_groups.rb +0 -8
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose
@@ -69,12 +69,44 @@ files:
69
69
  - ".rubocop_todo.yml"
70
70
  - CLAUDE.md
71
71
  - CODE_OF_CONDUCT.md
72
+ - GAPS.guidelines.iso-sts-ed2.1/01-maintenance.md
73
+ - GAPS.guidelines.iso-sts-ed2.1/03-general.md
74
+ - GAPS.guidelines.iso-sts-ed2.1/04-structure.md
75
+ - GAPS.guidelines.iso-sts-ed2.1/05-content.md
76
+ - GAPS.guidelines.iso-sts-ed2.1/06-tables.md
77
+ - GAPS.guidelines.iso-sts-ed2.1/07-formulae.md
78
+ - GAPS.guidelines.iso-sts-ed2.1/08-figures.md
79
+ - GAPS.guidelines.iso-sts-ed2.1/09-terms.md
80
+ - GAPS.guidelines.iso-sts-ed2.1/10-references.md
81
+ - GAPS.guidelines.iso-sts-ed2.1/annex-a-multilingual.md
82
+ - GAPS.guidelines.niso-sts-v1.0/01-introduction-scope.md
83
+ - GAPS.guidelines.niso-sts-v1.0/02-document-structure.md
84
+ - GAPS.guidelines.niso-sts-v1.0/03-front-matter.md
85
+ - GAPS.guidelines.niso-sts-v1.0/04-body-content.md
86
+ - GAPS.guidelines.niso-sts-v1.0/05-tables-figures.md
87
+ - GAPS.guidelines.niso-sts-v1.0/06-math-formulae.md
88
+ - GAPS.guidelines.niso-sts-v1.0/07-references.md
89
+ - GAPS.guidelines.niso-sts-v1.0/08-terminology.md
90
+ - GAPS.guidelines.niso-sts-v1.0/09-metadata.md
91
+ - GAPS.guidelines.niso-sts-v1.0/10-iso-iec-variant.md
92
+ - GAPS.guidelines.niso-sts-v1.0/SUMMARY.md
93
+ - GAPS.guidelines.schema-xref.md
72
94
  - Gemfile
73
95
  - README.adoc
74
96
  - Rakefile
97
+ - TODO.sts-refactor/00-overview.md
98
+ - TODO.sts-refactor/01-mathml-delegation.md
99
+ - TODO.sts-refactor/02-type-resolution.md
100
+ - TODO.sts-refactor/03-namespace-coupling.md
101
+ - TODO.sts-refactor/04-register-versioning.md
102
+ - TODO.sts-refactor/05-missing-elements.md
103
+ - TODO.sts-refactor/06-missing-attributes.md
104
+ - TODO.sts-refactor/07-incomplete-models.md
105
+ - TODO.sts-refactor/08-isoiec-profile.md
106
+ - TODO.sts-refactor/09-autoload-cleanup.md
107
+ - TODO.sts-refactor/10-test-coverage.md
108
+ - TODO.sts-refactor/11-duplicate-models.md
75
109
  - lib/sts.rb
76
- - lib/sts/content_groups/helpers.rb
77
- - lib/sts/enum_values.rb
78
110
  - lib/sts/iso_sts.rb
79
111
  - lib/sts/iso_sts/annex_type.rb
80
112
  - lib/sts/iso_sts/app.rb
@@ -88,7 +120,7 @@ files:
88
120
  - lib/sts/iso_sts/col.rb
89
121
  - lib/sts/iso_sts/colgroup.rb
90
122
  - lib/sts/iso_sts/comm_ref.rb
91
- - lib/sts/iso_sts/content_groups/highlight_elements.rb
123
+ - lib/sts/iso_sts/content_language.rb
92
124
  - lib/sts/iso_sts/copyright_holder.rb
93
125
  - lib/sts/iso_sts/copyright_statement.rb
94
126
  - lib/sts/iso_sts/copyright_year.rb
@@ -114,7 +146,10 @@ files:
114
146
  - lib/sts/iso_sts/list_item.rb
115
147
  - lib/sts/iso_sts/mathml2.rb
116
148
  - lib/sts/iso_sts/mathml2/math.rb
149
+ - lib/sts/iso_sts/meta_date.rb
117
150
  - lib/sts/iso_sts/mixed_citation.rb
151
+ - lib/sts/iso_sts/monospace.rb
152
+ - lib/sts/iso_sts/named_content.rb
118
153
  - lib/sts/iso_sts/nat_meta.rb
119
154
  - lib/sts/iso_sts/non_normative_example.rb
120
155
  - lib/sts/iso_sts/non_normative_note.rb
@@ -126,13 +161,16 @@ files:
126
161
  - lib/sts/iso_sts/ref_list.rb
127
162
  - lib/sts/iso_sts/reg_meta.rb
128
163
  - lib/sts/iso_sts/release_date.rb
164
+ - lib/sts/iso_sts/sc.rb
129
165
  - lib/sts/iso_sts/sec.rb
130
166
  - lib/sts/iso_sts/secretariat.rb
131
167
  - lib/sts/iso_sts/standard.rb
132
168
  - lib/sts/iso_sts/standard_cross_reference.rb
133
169
  - lib/sts/iso_sts/standard_identification.rb
170
+ - lib/sts/iso_sts/standard_ref.rb
134
171
  - lib/sts/iso_sts/std.rb
135
172
  - lib/sts/iso_sts/std_ref.rb
173
+ - lib/sts/iso_sts/strike.rb
136
174
  - lib/sts/iso_sts/styled_content.rb
137
175
  - lib/sts/iso_sts/sub.rb
138
176
  - lib/sts/iso_sts/sup.rb
@@ -153,6 +191,8 @@ files:
153
191
  - lib/sts/iso_sts/title_main.rb
154
192
  - lib/sts/iso_sts/title_wrap.rb
155
193
  - lib/sts/iso_sts/tr.rb
194
+ - lib/sts/iso_sts/underline.rb
195
+ - lib/sts/iso_sts/uri.rb
156
196
  - lib/sts/iso_sts/xref.rb
157
197
  - lib/sts/mathml.rb
158
198
  - lib/sts/namespaces.rb
@@ -196,12 +236,15 @@ files:
196
236
  - lib/sts/niso_sts/chem_struct_wrap.rb
197
237
  - lib/sts/niso_sts/citation_alternatives.rb
198
238
  - lib/sts/niso_sts/city.rb
239
+ - lib/sts/niso_sts/code.rb
199
240
  - lib/sts/niso_sts/collab.rb
200
241
  - lib/sts/niso_sts/collab_alternatives.rb
201
242
  - lib/sts/niso_sts/comm_ref_group.rb
202
243
  - lib/sts/niso_sts/comment.rb
203
244
  - lib/sts/niso_sts/compound_kwd.rb
204
245
  - lib/sts/niso_sts/compound_kwd_part.rb
246
+ - lib/sts/niso_sts/compound_subject.rb
247
+ - lib/sts/niso_sts/compound_subject_part.rb
205
248
  - lib/sts/niso_sts/conf_acronym.rb
206
249
  - lib/sts/niso_sts/conf_date.rb
207
250
  - lib/sts/niso_sts/conf_loc.rb
@@ -210,16 +253,6 @@ files:
210
253
  - lib/sts/niso_sts/conf_sponsor.rb
211
254
  - lib/sts/niso_sts/conf_theme.rb
212
255
  - lib/sts/niso_sts/conference.rb
213
- - lib/sts/niso_sts/content_groups.rb
214
- - lib/sts/niso_sts/content_groups/body_elements.rb
215
- - lib/sts/niso_sts/content_groups/citation_elements.rb
216
- - lib/sts/niso_sts/content_groups/emphasized_text.rb
217
- - lib/sts/niso_sts/content_groups/highlight_elements.rb
218
- - lib/sts/niso_sts/content_groups/inside_cell.rb
219
- - lib/sts/niso_sts/content_groups/p_elements.rb
220
- - lib/sts/niso_sts/content_groups/para_level.rb
221
- - lib/sts/niso_sts/content_groups/styled_content_elements.rb
222
- - lib/sts/niso_sts/content_groups/table_group_attributes.rb
223
256
  - lib/sts/niso_sts/content_language.rb
224
257
  - lib/sts/niso_sts/contrib.rb
225
258
  - lib/sts/niso_sts/contrib_group.rb
@@ -237,6 +270,7 @@ files:
237
270
  - lib/sts/niso_sts/date_in_citation.rb
238
271
  - lib/sts/niso_sts/day.rb
239
272
  - lib/sts/niso_sts/def.rb
273
+ - lib/sts/niso_sts/def_head.rb
240
274
  - lib/sts/niso_sts/def_item.rb
241
275
  - lib/sts/niso_sts/def_list.rb
242
276
  - lib/sts/niso_sts/degrees.rb
@@ -276,10 +310,15 @@ files:
276
310
  - lib/sts/niso_sts/ics.rb
277
311
  - lib/sts/niso_sts/ics_desc.rb
278
312
  - lib/sts/niso_sts/ics_wrap.rb
313
+ - lib/sts/niso_sts/index.rb
314
+ - lib/sts/niso_sts/index_div.rb
315
+ - lib/sts/niso_sts/index_entry.rb
279
316
  - lib/sts/niso_sts/index_term.rb
280
317
  - lib/sts/niso_sts/index_term_range_end.rb
318
+ - lib/sts/niso_sts/index_title_group.rb
281
319
  - lib/sts/niso_sts/inline_formula.rb
282
320
  - lib/sts/niso_sts/inline_graphic.rb
321
+ - lib/sts/niso_sts/inline_media.rb
283
322
  - lib/sts/niso_sts/inline_supplementary_material.rb
284
323
  - lib/sts/niso_sts/institution.rb
285
324
  - lib/sts/niso_sts/institution_id.rb
@@ -293,6 +332,7 @@ files:
293
332
  - lib/sts/niso_sts/kwd.rb
294
333
  - lib/sts/niso_sts/kwd_group.rb
295
334
  - lib/sts/niso_sts/label.rb
335
+ - lib/sts/niso_sts/legend.rb
296
336
  - lib/sts/niso_sts/license.rb
297
337
  - lib/sts/niso_sts/license_p.rb
298
338
  - lib/sts/niso_sts/list.rb
@@ -361,6 +401,7 @@ files:
361
401
  - lib/sts/niso_sts/principal_award_recipient.rb
362
402
  - lib/sts/niso_sts/principal_investigator.rb
363
403
  - lib/sts/niso_sts/private_char.rb
404
+ - lib/sts/niso_sts/processing_meta.rb
364
405
  - lib/sts/niso_sts/product.rb
365
406
  - lib/sts/niso_sts/proj_id.rb
366
407
  - lib/sts/niso_sts/pub_date.rb
@@ -389,11 +430,14 @@ files:
389
430
  - lib/sts/niso_sts/sc.rb
390
431
  - lib/sts/niso_sts/sdo.rb
391
432
  - lib/sts/niso_sts/season.rb
433
+ - lib/sts/niso_sts/sec_meta.rb
392
434
  - lib/sts/niso_sts/secretariat.rb
393
435
  - lib/sts/niso_sts/section.rb
394
436
  - lib/sts/niso_sts/section_array.rb
395
437
  - lib/sts/niso_sts/see.rb
396
438
  - lib/sts/niso_sts/see_also.rb
439
+ - lib/sts/niso_sts/see_also_entry.rb
440
+ - lib/sts/niso_sts/see_entry.rb
397
441
  - lib/sts/niso_sts/self_uri.rb
398
442
  - lib/sts/niso_sts/series.rb
399
443
  - lib/sts/niso_sts/series_text.rb
@@ -437,9 +481,11 @@ files:
437
481
  - lib/sts/niso_sts/supplementary_material.rb
438
482
  - lib/sts/niso_sts/surname.rb
439
483
  - lib/sts/niso_sts/table_count.rb
484
+ - lib/sts/niso_sts/table_wrap_group.rb
440
485
  - lib/sts/niso_sts/target.rb
441
486
  - lib/sts/niso_sts/term.rb
442
487
  - lib/sts/niso_sts/term_display.rb
488
+ - lib/sts/niso_sts/term_display_string.rb
443
489
  - lib/sts/niso_sts/term_head.rb
444
490
  - lib/sts/niso_sts/term_section.rb
445
491
  - lib/sts/niso_sts/term_source.rb
@@ -450,6 +496,10 @@ files:
450
496
  - lib/sts/niso_sts/title_compl.rb
451
497
  - lib/sts/niso_sts/title_full.rb
452
498
  - lib/sts/niso_sts/title_wrap.rb
499
+ - lib/sts/niso_sts/toc.rb
500
+ - lib/sts/niso_sts/toc_div.rb
501
+ - lib/sts/niso_sts/toc_entry.rb
502
+ - lib/sts/niso_sts/toc_title_group.rb
453
503
  - lib/sts/niso_sts/trans_abstract.rb
454
504
  - lib/sts/niso_sts/trans_source.rb
455
505
  - lib/sts/niso_sts/trans_title.rb
@@ -470,6 +520,10 @@ files:
470
520
  - lib/sts/niso_sts/xi/include.rb
471
521
  - lib/sts/niso_sts/xi/xi.rb
472
522
  - lib/sts/niso_sts/year.rb
523
+ - lib/sts/profiles.rb
524
+ - lib/sts/profiles/iso_iec.rb
525
+ - lib/sts/profiles/iso_iec/constraints.rb
526
+ - lib/sts/profiles/iso_iec/validator.rb
473
527
  - lib/sts/tbx_iso_tml.rb
474
528
  - lib/sts/tbx_iso_tml/bold.rb
475
529
  - lib/sts/tbx_iso_tml/caption.rb
@@ -524,6 +578,8 @@ files:
524
578
  - lib/sts/tbx_iso_tml/tr.rb
525
579
  - lib/sts/tbx_iso_tml/xref.rb
526
580
  - lib/sts/version.rb
581
+ - reference-docs/Guidelines for coding ed.2.1.pdf
582
+ - reference-docs/NISO-STS-1-2-compare-1-0.pdf
527
583
  - reference-docs/NISO-STS-extended-1-MathML3-XSD/NISO-STS-extended-1-mathml3-elements.xsd
528
584
  - reference-docs/NISO-STS-extended-1-MathML3-XSD/NISO-STS-extended-1-mathml3.xsd
529
585
  - reference-docs/NISO-STS-extended-1-MathML3-XSD/module-oasis.xsd
@@ -537,6 +593,7 @@ files:
537
593
  - reference-docs/NISO-STS-extended-1-MathML3-XSD/standard-modules/module-xi.xsd
538
594
  - reference-docs/NISO-STS-extended-1-MathML3-XSD/standard-modules/xlink.xsd
539
595
  - reference-docs/NISO-STS-extended-1-MathML3-XSD/standard-modules/xml.xsd
596
+ - reference-docs/NISOSTS-guidelines-v1.0.pdf
540
597
  - reference-docs/isosts-example/feature_doc.xml
541
598
  - reference-docs/isosts-v1/ISOSTS-classes.ent
542
599
  - reference-docs/isosts-v1/ISOSTS-iso-metadata.ent
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Shared injection helpers for NisoSts and IsoSts ContentGroups.
4
- #
5
- # Element tuple formats:
6
- # 3-tuple: [name, type, xml_name] -> collection
7
- # 4-tuple: [name, type, xml_name, singular?] -> explicit
8
-
9
- module Sts
10
- module ContentGroups
11
- module Helpers
12
- def inject_elements(klass, elements)
13
- elements.each do |name, type_name, _, is_collection|
14
- type = Object.const_get(type_name)
15
- coll = is_collection.nil? || is_collection
16
- klass.attribute name, type, collection: coll
17
- end
18
- end
19
-
20
- def inject_element_mappings(klass, elements)
21
- elements.each do |name, _, xml_name, _|
22
- klass.map_element xml_name, to: name
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Sts
4
- module EnumValues
5
- ALIGN = %w[center char justify left right].freeze
6
- VALIGN = %w[baseline bottom middle top].freeze
7
- SCOPE = %w[col colgroup row rowgroup].freeze
8
- ORIENTATION = %w[landscape portrait].freeze
9
- POSITION = %w[anchor background float margin].freeze
10
- FRAME = %w[above below border box hsides lhs rhs void vsides].freeze
11
- RULES = %w[all cols groups none rows].freeze
12
- TOGGLE = %w[no yes].freeze
13
- ARRANGE = %w[stack stagger].freeze
14
- NAME_STYLE = %w[eastern given-only islensk western].freeze
15
- AUTHENTICATED = %w[false true].freeze
16
- end
17
- end
@@ -1,285 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "../../content_groups/helpers"
4
-
5
- # Shared content group methods for IsoSts models.
6
- # Mirrors NisoSts::ContentGroups but uses IsoSts-specific type references.
7
- #
8
- # Content groups defined:
9
- # - highlight_elements (21 elements) — used by Bold, Italic
10
- # - styled_content_elements (31 elements) — used by StyledContent
11
- # - p_elements (35 elements) — used by Paragraph
12
- # - para_level (28 elements) — used by Sec, App, NonNormativeNote, NonNormativeExample, TermSec
13
- # - inside_cell (40+ elements) — used by Td, Th
14
-
15
- module Sts
16
- module IsoSts
17
- module ContentGroups
18
- extend ::Sts::ContentGroups::Helpers
19
-
20
- HIGHLIGHT_ELEMENTS = [
21
- [:bold, "Sts::IsoSts::Bold", "bold"],
22
- [:italic, "Sts::IsoSts::Italic", "italic"],
23
- [:sub, "Sts::NisoSts::Sub", "sub"],
24
- [:sup, "Sts::NisoSts::Sup", "sup"],
25
- [:monospace, "Sts::NisoSts::Monospace", "monospace"],
26
- [:sc, "Sts::NisoSts::Sc", "sc"],
27
- [:std_ref, "Sts::IsoSts::StdRef", "std-ref"],
28
- [:underline, "Sts::NisoSts::Underline", "underline"],
29
- [:strike, "Sts::NisoSts::Strike", "strike"],
30
- [:xref, "Sts::TbxIsoTml::Xref", "xref"],
31
- [:ext_link, "Sts::NisoSts::ExtLink", "ext-link"],
32
- [:fn, "Sts::TbxIsoTml::Fn", "fn"],
33
- [:styled_content, "Sts::IsoSts::StyledContent", "styled-content"],
34
- [:array, "Sts::IsoSts::Array", "array"],
35
- [:break, "Sts::IsoSts::Break", "break"],
36
- [:target, "Sts::NisoSts::Target", "target"],
37
- [:overline, "Sts::NisoSts::Overline", "overline"],
38
- [:roman, "Sts::NisoSts::Roman", "roman"],
39
- [:sans_serif, "Sts::NisoSts::SansSerif", "sans-serif"],
40
- [:ruby, "Sts::NisoSts::Ruby", "ruby"],
41
- [:named_content, "Sts::NisoSts::NamedContent", "named-content"],
42
- [:uri, "Sts::NisoSts::Uri", "uri"],
43
- [:inline_formula, "Sts::IsoSts::InlineFormula", "inline-formula"],
44
- ].freeze
45
-
46
- def self.highlight_elements(klass)
47
- inject_elements(klass, HIGHLIGHT_ELEMENTS)
48
- end
49
-
50
- def self.highlight_elements_mappings(klass)
51
- inject_element_mappings(klass, HIGHLIGHT_ELEMENTS)
52
- end
53
-
54
- STYLED_CONTENT_ELEMENTS = [
55
- *HIGHLIGHT_ELEMENTS,
56
- [:disp_formula, "Sts::IsoSts::DispFormula", "disp-formula"],
57
- [:disp_formula_group, "Sts::IsoSts::DispFormula", "disp-formula-group"],
58
- [:std, "Sts::IsoSts::Std", "std"],
59
- [:graphic, "Sts::IsoSts::Graphic", "graphic"],
60
- [:list, "Sts::IsoSts::List", "list"],
61
- [:def_list, "Sts::IsoSts::DefList", "def-list"],
62
- [:fig, "Sts::IsoSts::Fig", "fig"],
63
- [:boxed_text, "Sts::NisoSts::BoxedText", "boxed-text"],
64
- [:email, "Sts::NisoSts::Email", "email"],
65
- ].freeze
66
-
67
- def self.styled_content_elements(klass)
68
- inject_elements(klass, STYLED_CONTENT_ELEMENTS)
69
- end
70
-
71
- def self.styled_content_elements_mappings(klass)
72
- inject_element_mappings(klass, STYLED_CONTENT_ELEMENTS)
73
- end
74
-
75
- P_ELEMENTS_EXTRA = [
76
- [:non_normative_note, "Sts::IsoSts::NonNormativeNote",
77
- "non-normative-note"],
78
- [:non_normative_example, "Sts::IsoSts::NonNormativeExample",
79
- "non-normative-example"],
80
- [:math, "Sts::TbxIsoTml::Math", "math"],
81
- [:preformat, "Sts::IsoSts::Preformat", "preformat"],
82
- ].freeze
83
-
84
- def self.p_elements(klass)
85
- styled_content_elements(klass)
86
- inject_elements(klass, P_ELEMENTS_EXTRA)
87
- end
88
-
89
- def self.p_elements_mappings(klass)
90
- styled_content_elements_mappings(klass)
91
- inject_element_mappings(klass, P_ELEMENTS_EXTRA)
92
- end
93
-
94
- PARA_LEVEL_ELEMENTS = [
95
- [:label, "Sts::IsoSts::Label", "label"],
96
- [:title, "Sts::IsoSts::Title", "title"],
97
- [:p, "Sts::IsoSts::Paragraph", "p"],
98
- [:list, "Sts::IsoSts::List", "list"],
99
- [:def_list, "Sts::IsoSts::DefList", "def-list"],
100
- [:disp_formula, "Sts::IsoSts::DispFormula", "disp-formula"],
101
- [:inline_formula, "Sts::IsoSts::InlineFormula", "inline-formula"],
102
- [:table_wrap, "Sts::TbxIsoTml::TableWrap", "table-wrap"],
103
- [:fig, "Sts::IsoSts::Fig", "fig"],
104
- [:non_normative_note, "Sts::IsoSts::NonNormativeNote",
105
- "non-normative-note"],
106
- [:non_normative_example, "Sts::IsoSts::NonNormativeExample",
107
- "non-normative-example"],
108
- [:preformat, "Sts::IsoSts::Preformat", "preformat"],
109
- [:styled_content, "Sts::IsoSts::StyledContent", "styled-content"],
110
- [:array, "Sts::IsoSts::Array", "array"],
111
- [:graphic, "Sts::IsoSts::Graphic", "graphic"],
112
- [:std, "Sts::IsoSts::Std", "std"],
113
- [:ref_list, "Sts::IsoSts::RefList", "ref-list"],
114
- [:fn_group, "Sts::IsoSts::FnGroup", "fn-group"],
115
- [:xref, "Sts::TbxIsoTml::Xref", "xref"],
116
- [:ext_link, "Sts::NisoSts::ExtLink", "ext-link"],
117
- [:uri, "Sts::NisoSts::Uri", "uri"],
118
- [:sec, "Sts::IsoSts::Sec", "sec"],
119
- [:term_sec, "Sts::IsoSts::TermSec", "term-sec"],
120
- [:disp_quote, "Sts::NisoSts::DispQuote", "disp-quote"],
121
- [:fn, "Sts::TbxIsoTml::Fn", "fn"],
122
- [:editing_instruction, "Sts::NisoSts::EditingInstruction",
123
- "editing-instruction"],
124
- ].freeze
125
-
126
- def self.para_level(klass)
127
- inject_elements(klass, PARA_LEVEL_ELEMENTS)
128
- end
129
-
130
- def self.para_level_mappings(klass)
131
- inject_element_mappings(klass, PARA_LEVEL_ELEMENTS)
132
- end
133
-
134
- BODY_ELEMENTS = [
135
- [:p, "Sts::IsoSts::Paragraph", "p"],
136
- [:sec, "Sts::IsoSts::Sec", "sec"],
137
- [:term_sec, "Sts::IsoSts::TermSec", "term-sec"],
138
- [:list, "Sts::IsoSts::List", "list"],
139
- [:def_list, "Sts::IsoSts::DefList", "def-list"],
140
- [:disp_formula, "Sts::IsoSts::DispFormula", "disp-formula"],
141
- [:table_wrap, "Sts::TbxIsoTml::TableWrap", "table-wrap"],
142
- [:fig, "Sts::IsoSts::Fig", "fig"],
143
- [:non_normative_note, "Sts::IsoSts::NonNormativeNote",
144
- "non-normative-note"],
145
- [:non_normative_example, "Sts::IsoSts::NonNormativeExample",
146
- "non-normative-example"],
147
- [:preformat, "Sts::IsoSts::Preformat", "preformat"],
148
- [:styled_content, "Sts::IsoSts::StyledContent", "styled-content"],
149
- [:array, "Sts::IsoSts::Array", "array"],
150
- [:ref_list, "Sts::IsoSts::RefList", "ref-list"],
151
- [:disp_quote, "Sts::NisoSts::DispQuote", "disp-quote"],
152
- [:editing_instruction, "Sts::NisoSts::EditingInstruction",
153
- "editing-instruction"],
154
- ].freeze
155
-
156
- def self.body_elements(klass)
157
- inject_elements(klass, BODY_ELEMENTS)
158
- end
159
-
160
- def self.body_elements_mappings(klass)
161
- inject_element_mappings(klass, BODY_ELEMENTS)
162
- end
163
-
164
- INSIDE_CELL_ELEMENTS = [
165
- [:bold, "Sts::IsoSts::Bold", "bold"],
166
- [:italic, "Sts::IsoSts::Italic", "italic"],
167
- [:sub, "Sts::NisoSts::Sub", "sub"],
168
- [:sup, "Sts::NisoSts::Sup", "sup"],
169
- [:monospace, "Sts::NisoSts::Monospace", "monospace"],
170
- [:sc, "Sts::NisoSts::Sc", "sc"],
171
- [:underline, "Sts::NisoSts::Underline", "underline"],
172
- [:overline, "Sts::NisoSts::Overline", "overline"],
173
- [:roman, "Sts::NisoSts::Roman", "roman"],
174
- [:sans_serif, "Sts::NisoSts::SansSerif", "sans-serif"],
175
- [:strike, "Sts::NisoSts::Strike", "strike"],
176
- [:xref, "Sts::TbxIsoTml::Xref", "xref"],
177
- [:ext_link, "Sts::NisoSts::ExtLink", "ext-link"],
178
- [:uri, "Sts::NisoSts::Uri", "uri"],
179
- [:fn, "Sts::TbxIsoTml::Fn", "fn"],
180
- [:styled_content, "Sts::IsoSts::StyledContent", "styled-content"],
181
- [:array, "Sts::IsoSts::Array", "array"],
182
- [:break, "Sts::IsoSts::Break", "break"],
183
- [:target, "Sts::NisoSts::Target", "target"],
184
- [:named_content, "Sts::NisoSts::NamedContent", "named-content"],
185
- [:graphic, "Sts::IsoSts::Graphic", "graphic"],
186
- [:list, "Sts::IsoSts::List", "list"],
187
- [:def_list, "Sts::IsoSts::DefList", "def-list"],
188
- [:p, "Sts::IsoSts::Paragraph", "p"],
189
- [:non_normative_note, "Sts::IsoSts::NonNormativeNote",
190
- "non-normative-note"],
191
- [:non_normative_example, "Sts::IsoSts::NonNormativeExample",
192
- "non-normative-example"],
193
- [:inline_formula, "Sts::IsoSts::InlineFormula", "inline-formula"],
194
- [:disp_formula, "Sts::IsoSts::DispFormula", "disp-formula"],
195
- [:disp_formula_group, "Sts::IsoSts::DispFormula", "disp-formula-group"],
196
- [:std, "Sts::IsoSts::Std", "std"],
197
- [:fig, "Sts::IsoSts::Fig", "fig"],
198
- [:math, "Sts::TbxIsoTml::Math", "math"],
199
- [:ruby, "Sts::NisoSts::Ruby", "ruby"],
200
- ].freeze
201
-
202
- INSIDE_CELL_ATTRIBUTES = %i[id content_type style abbr axis headers scope
203
- rowspan colspan align char charoff valign].freeze
204
- INSIDE_CELL_ATTR_XML = {
205
- id: "id", content_type: "content-type", style: "style",
206
- abbr: "abbr", axis: "axis", headers: "headers", scope: "scope",
207
- rowspan: "rowspan", colspan: "colspan", align: "align",
208
- char: "char", charoff: "charoff", valign: "valign"
209
- }.freeze
210
-
211
- def self.inside_cell(klass)
212
- inject_elements(klass, INSIDE_CELL_ELEMENTS)
213
- end
214
-
215
- def self.inside_cell_mappings(klass)
216
- inject_element_mappings(klass, INSIDE_CELL_ELEMENTS)
217
- end
218
-
219
- def self.inside_cell_attributes(klass)
220
- INSIDE_CELL_ATTRIBUTES.each do |name|
221
- opts = case name
222
- when :align then { values: EnumValues::ALIGN }
223
- when :valign then { values: EnumValues::VALIGN }
224
- when :scope then { values: EnumValues::SCOPE }
225
- else {}
226
- end
227
- klass.attribute name, :string, **opts
228
- end
229
- end
230
-
231
- def self.inside_cell_attribute_mappings(klass, char_value_map: false)
232
- INSIDE_CELL_ATTR_XML.each do |name, xml_name|
233
- opts = {}
234
- if char_value_map && name == :char
235
- opts[:value_map] = { to: { empty: :empty } }
236
- end
237
- klass.map_attribute xml_name, to: name, **opts
238
- end
239
- end
240
-
241
- TABLE_GROUP_ATTRS = %i[id content_type style align char charoff
242
- valign].freeze
243
- TABLE_GROUP_ATTR_XML = {
244
- id: "id", content_type: "content-type", style: "style",
245
- align: "align", char: "char", charoff: "charoff", valign: "valign"
246
- }.freeze
247
-
248
- TABLE_COL_EXTRA_ATTRS = %i[span width].freeze
249
- TABLE_COL_EXTRA_ATTR_XML = { span: "span", width: "width" }.freeze
250
-
251
- def self.table_group_attributes(klass)
252
- TABLE_GROUP_ATTRS.each do |name|
253
- opts = case name
254
- when :align then { values: EnumValues::ALIGN }
255
- when :valign then { values: EnumValues::VALIGN }
256
- else {}
257
- end
258
- klass.attribute name, :string, **opts
259
- end
260
- end
261
-
262
- def self.table_group_attribute_mappings(klass, char_value_map: false)
263
- TABLE_GROUP_ATTR_XML.each do |name, xml_name|
264
- opts = {}
265
- if char_value_map && name == :char
266
- opts[:value_map] = { to: { empty: :empty } }
267
- end
268
- klass.map_attribute xml_name, to: name, **opts
269
- end
270
- end
271
-
272
- def self.table_col_attributes(klass)
273
- table_group_attributes(klass)
274
- TABLE_COL_EXTRA_ATTRS.each { |name| klass.attribute name, :string }
275
- end
276
-
277
- def self.table_col_attribute_mappings(klass, char_value_map: false)
278
- table_group_attribute_mappings(klass, char_value_map: char_value_map)
279
- TABLE_COL_EXTRA_ATTR_XML.each do |name, xml_name|
280
- klass.map_attribute xml_name, to: name
281
- end
282
- end
283
- end
284
- end
285
- end
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Shared method to inject body-elements content group into a model class.
4
- # This is a subset of para_level containing exactly the elements allowed in <body>.
5
- # Used by Body.
6
- #
7
- # Call inside the class body:
8
- #
9
- # ContentGroups.body_elements(self)
10
- #
11
- # And inside xml do ... end:
12
- #
13
- # ContentGroups.body_elements_mappings(self)
14
-
15
- module Sts
16
- module NisoSts
17
- module ContentGroups
18
- BODY_ELEMENTS = [
19
- [:sec, "Sts::NisoSts::Section", "sec"],
20
- [:term_sec, "Sts::NisoSts::TermSection", "term-sec"],
21
- [:p, "Sts::NisoSts::Paragraph", "p"],
22
- [:list, "Sts::NisoSts::List", "list"],
23
- [:def_list, "Sts::NisoSts::DefList", "def-list"],
24
- [:table_wrap, "Sts::TbxIsoTml::TableWrap", "table-wrap"],
25
- [:fig, "Sts::NisoSts::Figure", "fig"],
26
- [:non_normative_note, "Sts::NisoSts::NonNormativeNote",
27
- "non-normative-note"],
28
- [:non_normative_example, "Sts::NisoSts::NonNormativeExample",
29
- "non-normative-example"],
30
- [:preformat, "Sts::NisoSts::Preformat", "preformat"],
31
- [:styled_content, "Sts::NisoSts::StyledContent", "styled-content"],
32
- [:array, "Sts::NisoSts::SectionArray", "array"],
33
- [:disp_formula, "Sts::NisoSts::DisplayFormula", "disp-formula"],
34
- [:disp_formula_group, "Sts::NisoSts::DispFormulaGroup",
35
- "disp-formula-group"],
36
- [:editing_instruction, "Sts::NisoSts::EditingInstruction",
37
- "editing-instruction"],
38
- [:disp_quote, "Sts::NisoSts::DispQuote", "disp-quote"],
39
- ].freeze
40
-
41
- def self.body_elements(klass)
42
- inject_elements(klass, BODY_ELEMENTS)
43
- end
44
-
45
- def self.body_elements_mappings(klass)
46
- inject_element_mappings(klass, BODY_ELEMENTS)
47
- end
48
- end
49
- end
50
- end