omml 0.2.1 → 0.2.3

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 (282) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop_todo.yml +12 -6
  4. data/CLAUDE.md +19 -9
  5. data/Gemfile +0 -3
  6. data/TODO.uniwordfix/00-overview.md +29 -0
  7. data/TODO.uniwordfix/01-revert-contributor-changes.md +25 -0
  8. data/TODO.uniwordfix/02-models-base.md +55 -0
  9. data/TODO.uniwordfix/03-migrate-models.md +38 -0
  10. data/TODO.uniwordfix/04-autoload-conversion.md +52 -0
  11. data/TODO.uniwordfix/05-encapsulation-cleanup.md +67 -0
  12. data/TODO.uniwordfix/06-register-in-api.md +44 -0
  13. data/TODO.uniwordfix/07-spec-coverage.md +43 -0
  14. data/TODO.uniwordfix/08-spec-cross-context.md +63 -0
  15. data/TODO.uniwordfix/09-spec-cleanup.md +37 -0
  16. data/TODO.uniwordfix/10-claude-md-stale.md +34 -0
  17. data/lib/omml/configuration/context_registry.rb +36 -2
  18. data/lib/omml/configuration/model_registry.rb +6 -2
  19. data/lib/omml/configuration/type_resolver.rb +0 -2
  20. data/lib/omml/configuration.rb +5 -5
  21. data/lib/omml/models/base.rb +16 -0
  22. data/lib/omml/models/ct_acc.rb +1 -3
  23. data/lib/omml/models/ct_acc_pr.rb +1 -3
  24. data/lib/omml/models/ct_anchor.rb +1 -3
  25. data/lib/omml/models/ct_attr.rb +1 -3
  26. data/lib/omml/models/ct_bar.rb +1 -3
  27. data/lib/omml/models/ct_bar_pr.rb +1 -3
  28. data/lib/omml/models/ct_bookmark.rb +0 -2
  29. data/lib/omml/models/ct_bookmark_range.rb +0 -2
  30. data/lib/omml/models/ct_border.rb +1 -3
  31. data/lib/omml/models/ct_border_box.rb +1 -3
  32. data/lib/omml/models/ct_border_box_pr.rb +1 -3
  33. data/lib/omml/models/ct_box.rb +1 -3
  34. data/lib/omml/models/ct_box_pr.rb +1 -3
  35. data/lib/omml/models/ct_br.rb +2 -4
  36. data/lib/omml/models/ct_break_bin.rb +1 -3
  37. data/lib/omml/models/ct_break_bin_sub.rb +1 -3
  38. data/lib/omml/models/ct_calendar_type.rb +1 -3
  39. data/lib/omml/models/ct_char.rb +1 -3
  40. data/lib/omml/models/ct_color.rb +1 -3
  41. data/lib/omml/models/ct_control.rb +1 -3
  42. data/lib/omml/models/ct_ctrl_pr.rb +1 -3
  43. data/lib/omml/models/ct_custom_xml_pr.rb +1 -3
  44. data/lib/omml/models/ct_custom_xml_run.rb +1 -3
  45. data/lib/omml/models/ct_d.rb +1 -3
  46. data/lib/omml/models/ct_d_pr.rb +1 -3
  47. data/lib/omml/models/ct_data_binding.rb +1 -3
  48. data/lib/omml/models/ct_decimal_number.rb +1 -3
  49. data/lib/omml/models/ct_drawing.rb +1 -3
  50. data/lib/omml/models/ct_east_asian_layout.rb +1 -3
  51. data/lib/omml/models/ct_effect_extent.rb +1 -3
  52. data/lib/omml/models/ct_em.rb +1 -3
  53. data/lib/omml/models/ct_empty.rb +1 -3
  54. data/lib/omml/models/ct_eq_arr.rb +1 -3
  55. data/lib/omml/models/ct_eq_arr_pr.rb +1 -3
  56. data/lib/omml/models/ct_f.rb +1 -3
  57. data/lib/omml/models/ct_f_pr.rb +1 -3
  58. data/lib/omml/models/ct_f_type.rb +1 -3
  59. data/lib/omml/models/ct_ff_check_box.rb +1 -3
  60. data/lib/omml/models/ct_ff_data.rb +1 -3
  61. data/lib/omml/models/ct_ff_help_text.rb +1 -3
  62. data/lib/omml/models/ct_ff_name.rb +1 -3
  63. data/lib/omml/models/ct_ff_status_text.rb +1 -3
  64. data/lib/omml/models/ct_ff_text_input.rb +1 -3
  65. data/lib/omml/models/ct_ff_text_type.rb +1 -3
  66. data/lib/omml/models/ct_ffdd_list.rb +1 -3
  67. data/lib/omml/models/ct_fit_text.rb +1 -3
  68. data/lib/omml/models/ct_fld_char.rb +1 -3
  69. data/lib/omml/models/ct_fonts.rb +1 -3
  70. data/lib/omml/models/ct_ftn_edn_ref.rb +1 -3
  71. data/lib/omml/models/ct_func.rb +1 -3
  72. data/lib/omml/models/ct_func_pr.rb +1 -3
  73. data/lib/omml/models/ct_graphical_object.rb +1 -3
  74. data/lib/omml/models/ct_graphical_object_data.rb +1 -3
  75. data/lib/omml/models/ct_graphical_object_frame_locking.rb +1 -3
  76. data/lib/omml/models/ct_group_chr.rb +1 -3
  77. data/lib/omml/models/ct_group_chr_pr.rb +1 -3
  78. data/lib/omml/models/ct_highlight.rb +1 -3
  79. data/lib/omml/models/ct_hps_measure.rb +1 -3
  80. data/lib/omml/models/ct_hyperlink.rb +1 -3
  81. data/lib/omml/models/ct_inline.rb +1 -3
  82. data/lib/omml/models/ct_integer2.rb +1 -3
  83. data/lib/omml/models/ct_integer255.rb +1 -3
  84. data/lib/omml/models/ct_lang.rb +1 -3
  85. data/lib/omml/models/ct_language.rb +1 -3
  86. data/lib/omml/models/ct_lim_loc.rb +1 -3
  87. data/lib/omml/models/ct_lim_low.rb +1 -3
  88. data/lib/omml/models/ct_lim_low_pr.rb +1 -3
  89. data/lib/omml/models/ct_lim_upp.rb +1 -3
  90. data/lib/omml/models/ct_lim_upp_pr.rb +1 -3
  91. data/lib/omml/models/ct_lock.rb +1 -3
  92. data/lib/omml/models/ct_m.rb +1 -3
  93. data/lib/omml/models/ct_m_pr.rb +1 -3
  94. data/lib/omml/models/ct_macro_name.rb +1 -3
  95. data/lib/omml/models/ct_manual_break.rb +1 -3
  96. data/lib/omml/models/ct_markup.rb +1 -3
  97. data/lib/omml/models/ct_markup_range.rb +0 -2
  98. data/lib/omml/models/ct_math_pr.rb +1 -3
  99. data/lib/omml/models/ct_mc.rb +1 -3
  100. data/lib/omml/models/ct_mc_pr.rb +1 -3
  101. data/lib/omml/models/ct_mcs.rb +1 -3
  102. data/lib/omml/models/ct_move_bookmark.rb +0 -2
  103. data/lib/omml/models/ct_mr.rb +1 -3
  104. data/lib/omml/models/ct_nary.rb +1 -3
  105. data/lib/omml/models/ct_nary_pr.rb +1 -3
  106. data/lib/omml/models/ct_non_visual_drawing_props.rb +1 -3
  107. data/lib/omml/models/ct_non_visual_graphic_frame_properties.rb +1 -3
  108. data/lib/omml/models/ct_o_math.rb +1 -3
  109. data/lib/omml/models/ct_o_math_arg.rb +1 -3
  110. data/lib/omml/models/ct_o_math_arg_pr.rb +1 -3
  111. data/lib/omml/models/ct_o_math_jc.rb +1 -3
  112. data/lib/omml/models/ct_o_math_para.rb +1 -3
  113. data/lib/omml/models/ct_o_math_para_pr.rb +1 -3
  114. data/lib/omml/models/ct_object.rb +0 -2
  115. data/lib/omml/models/ct_office_art_extension.rb +1 -3
  116. data/lib/omml/models/ct_office_art_extension_list.rb +1 -3
  117. data/lib/omml/models/ct_on_off.rb +1 -3
  118. data/lib/omml/models/ct_p_tab.rb +1 -3
  119. data/lib/omml/models/ct_perm.rb +1 -3
  120. data/lib/omml/models/ct_perm_start.rb +0 -2
  121. data/lib/omml/models/ct_phant.rb +1 -3
  122. data/lib/omml/models/ct_phant_pr.rb +1 -3
  123. data/lib/omml/models/ct_picture.rb +0 -2
  124. data/lib/omml/models/ct_picture_base.rb +1 -3
  125. data/lib/omml/models/ct_placeholder.rb +1 -3
  126. data/lib/omml/models/ct_point2_d.rb +1 -3
  127. data/lib/omml/models/ct_pos_h.rb +1 -3
  128. data/lib/omml/models/ct_pos_v.rb +1 -3
  129. data/lib/omml/models/ct_positive_size2_d.rb +1 -3
  130. data/lib/omml/models/ct_proof_err.rb +1 -3
  131. data/lib/omml/models/ct_r.rb +3 -3
  132. data/lib/omml/models/ct_r_pr.rb +1 -3
  133. data/lib/omml/models/ct_r_pr_change.rb +0 -2
  134. data/lib/omml/models/ct_r_pr_original.rb +1 -3
  135. data/lib/omml/models/ct_rad.rb +1 -3
  136. data/lib/omml/models/ct_rad_pr.rb +1 -3
  137. data/lib/omml/models/ct_rel.rb +1 -3
  138. data/lib/omml/models/ct_rpr.rb +1 -3
  139. data/lib/omml/models/ct_ruby.rb +1 -3
  140. data/lib/omml/models/ct_ruby_align.rb +1 -3
  141. data/lib/omml/models/ct_ruby_content.rb +1 -3
  142. data/lib/omml/models/ct_ruby_pr.rb +1 -3
  143. data/lib/omml/models/ct_run_track_change.rb +0 -2
  144. data/lib/omml/models/ct_s_pre.rb +1 -3
  145. data/lib/omml/models/ct_s_pre_pr.rb +1 -3
  146. data/lib/omml/models/ct_s_sub.rb +1 -3
  147. data/lib/omml/models/ct_s_sub_pr.rb +1 -3
  148. data/lib/omml/models/ct_s_sub_sup.rb +1 -3
  149. data/lib/omml/models/ct_s_sub_sup_pr.rb +1 -3
  150. data/lib/omml/models/ct_s_sup.rb +1 -3
  151. data/lib/omml/models/ct_s_sup_pr.rb +1 -3
  152. data/lib/omml/models/ct_script.rb +1 -3
  153. data/lib/omml/models/ct_sdt_combo_box.rb +1 -3
  154. data/lib/omml/models/ct_sdt_content_run.rb +1 -3
  155. data/lib/omml/models/ct_sdt_date.rb +1 -3
  156. data/lib/omml/models/ct_sdt_date_mapping_type.rb +1 -3
  157. data/lib/omml/models/ct_sdt_doc_part.rb +1 -3
  158. data/lib/omml/models/ct_sdt_drop_down_list.rb +1 -3
  159. data/lib/omml/models/ct_sdt_end_pr.rb +1 -3
  160. data/lib/omml/models/ct_sdt_list_item.rb +1 -3
  161. data/lib/omml/models/ct_sdt_pr.rb +1 -3
  162. data/lib/omml/models/ct_sdt_run.rb +1 -3
  163. data/lib/omml/models/ct_sdt_text.rb +1 -3
  164. data/lib/omml/models/ct_shd.rb +1 -3
  165. data/lib/omml/models/ct_shp.rb +1 -3
  166. data/lib/omml/models/ct_signed_hps_measure.rb +1 -3
  167. data/lib/omml/models/ct_signed_twips_measure.rb +1 -3
  168. data/lib/omml/models/ct_simple_field.rb +1 -3
  169. data/lib/omml/models/ct_smart_tag_pr.rb +1 -3
  170. data/lib/omml/models/ct_smart_tag_run.rb +1 -3
  171. data/lib/omml/models/ct_spacing_rule.rb +1 -3
  172. data/lib/omml/models/ct_string.rb +1 -3
  173. data/lib/omml/models/ct_style.rb +1 -3
  174. data/lib/omml/models/ct_sym.rb +1 -3
  175. data/lib/omml/models/ct_text.rb +1 -3
  176. data/lib/omml/models/ct_text_effect.rb +1 -3
  177. data/lib/omml/models/ct_text_scale.rb +1 -3
  178. data/lib/omml/models/ct_top_bot.rb +1 -3
  179. data/lib/omml/models/ct_track_change.rb +0 -2
  180. data/lib/omml/models/ct_track_change_numbering.rb +0 -2
  181. data/lib/omml/models/ct_twips_measure.rb +1 -3
  182. data/lib/omml/models/ct_un_signed_integer.rb +1 -3
  183. data/lib/omml/models/ct_underline.rb +1 -3
  184. data/lib/omml/models/ct_vertical_align_run.rb +1 -3
  185. data/lib/omml/models/ct_wordprocessing_empty.rb +24 -0
  186. data/lib/omml/models/ct_wordprocessing_on_off.rb +1 -3
  187. data/lib/omml/models/ct_wordprocessing_text.rb +26 -0
  188. data/lib/omml/models/ct_wrap_none.rb +1 -3
  189. data/lib/omml/models/ct_wrap_path.rb +1 -3
  190. data/lib/omml/models/ct_wrap_square.rb +1 -3
  191. data/lib/omml/models/ct_wrap_through.rb +1 -3
  192. data/lib/omml/models/ct_wrap_tight.rb +1 -3
  193. data/lib/omml/models/ct_wrap_top_bottom.rb +1 -3
  194. data/lib/omml/models/ct_x_align.rb +1 -3
  195. data/lib/omml/models/ct_y_align.rb +1 -3
  196. data/lib/omml/models/groups/eg_content_run_content.rb +1 -3
  197. data/lib/omml/models/groups/eg_math_content.rb +1 -3
  198. data/lib/omml/models/groups/eg_o_math_elements.rb +1 -3
  199. data/lib/omml/models/groups/eg_o_math_math_elements.rb +1 -3
  200. data/lib/omml/models/groups/eg_office_art_extension_list.rb +1 -3
  201. data/lib/omml/models/groups/eg_p_content.rb +1 -3
  202. data/lib/omml/models/groups/eg_r_pr.rb +1 -3
  203. data/lib/omml/models/groups/eg_r_pr_base.rb +1 -3
  204. data/lib/omml/models/groups/eg_r_pr_content.rb +1 -3
  205. data/lib/omml/models/groups/eg_r_pr_math.rb +1 -3
  206. data/lib/omml/models/groups/eg_range_markup_elements.rb +1 -3
  207. data/lib/omml/models/groups/eg_ruby_content.rb +1 -3
  208. data/lib/omml/models/groups/eg_run_inner_content.rb +5 -68
  209. data/lib/omml/models/groups/eg_run_level_elts.rb +1 -3
  210. data/lib/omml/models/groups/eg_script_style.rb +1 -3
  211. data/lib/omml/models/groups/eg_word_r_pr.rb +1 -3
  212. data/lib/omml/models/groups/eg_word_run_inner_content.rb +91 -0
  213. data/lib/omml/models/groups/eg_wrap_type.rb +1 -3
  214. data/lib/omml/models/groups.rb +0 -18
  215. data/lib/omml/models/o_math.rb +1 -3
  216. data/lib/omml/models/o_math_para.rb +1 -3
  217. data/lib/omml/models/registerable.rb +22 -0
  218. data/lib/omml/models/simple_types/enum_string.rb +5 -0
  219. data/lib/omml/models/simple_types/hex_binary.rb +0 -1
  220. data/lib/omml/models/simple_types/st_adj_coordinate.rb +2 -1
  221. data/lib/omml/models/simple_types/st_align_h.rb +0 -2
  222. data/lib/omml/models/simple_types/st_align_v.rb +0 -2
  223. data/lib/omml/models/simple_types/st_border.rb +0 -2
  224. data/lib/omml/models/simple_types/st_br_clear.rb +0 -2
  225. data/lib/omml/models/simple_types/st_br_type.rb +0 -2
  226. data/lib/omml/models/simple_types/st_break_bin.rb +0 -2
  227. data/lib/omml/models/simple_types/st_break_bin_sub.rb +0 -2
  228. data/lib/omml/models/simple_types/st_calendar_type.rb +0 -2
  229. data/lib/omml/models/simple_types/st_combine_brackets.rb +0 -2
  230. data/lib/omml/models/simple_types/st_coordinate.rb +0 -1
  231. data/lib/omml/models/simple_types/st_displaced_by_custom_xml.rb +0 -2
  232. data/lib/omml/models/simple_types/st_ed_grp.rb +0 -2
  233. data/lib/omml/models/simple_types/st_em.rb +0 -2
  234. data/lib/omml/models/simple_types/st_f_type.rb +0 -2
  235. data/lib/omml/models/simple_types/st_ff_text_type.rb +0 -2
  236. data/lib/omml/models/simple_types/st_fld_char_type.rb +0 -2
  237. data/lib/omml/models/simple_types/st_geom_guide_name.rb +0 -2
  238. data/lib/omml/models/simple_types/st_hex_color.rb +2 -1
  239. data/lib/omml/models/simple_types/st_highlight_color.rb +0 -2
  240. data/lib/omml/models/simple_types/st_hint.rb +0 -2
  241. data/lib/omml/models/simple_types/st_info_text_type.rb +0 -2
  242. data/lib/omml/models/simple_types/st_integer2.rb +0 -1
  243. data/lib/omml/models/simple_types/st_integer255.rb +0 -1
  244. data/lib/omml/models/simple_types/st_jc.rb +0 -2
  245. data/lib/omml/models/simple_types/st_lang.rb +2 -1
  246. data/lib/omml/models/simple_types/st_lim_loc.rb +0 -2
  247. data/lib/omml/models/simple_types/st_lock.rb +0 -2
  248. data/lib/omml/models/simple_types/st_on_off.rb +0 -2
  249. data/lib/omml/models/simple_types/st_p_tab_alignment.rb +0 -2
  250. data/lib/omml/models/simple_types/st_p_tab_leader.rb +0 -2
  251. data/lib/omml/models/simple_types/st_p_tab_relative_to.rb +0 -2
  252. data/lib/omml/models/simple_types/st_positive_coordinate.rb +0 -1
  253. data/lib/omml/models/simple_types/st_proof_err.rb +0 -2
  254. data/lib/omml/models/simple_types/st_rel_from_h.rb +0 -2
  255. data/lib/omml/models/simple_types/st_rel_from_v.rb +0 -2
  256. data/lib/omml/models/simple_types/st_ruby_align.rb +0 -2
  257. data/lib/omml/models/simple_types/st_script.rb +0 -2
  258. data/lib/omml/models/simple_types/st_sdt_date_mapping_type.rb +0 -2
  259. data/lib/omml/models/simple_types/st_shd.rb +0 -2
  260. data/lib/omml/models/simple_types/st_shp.rb +0 -2
  261. data/lib/omml/models/simple_types/st_spacing_rule.rb +0 -1
  262. data/lib/omml/models/simple_types/st_style.rb +0 -2
  263. data/lib/omml/models/simple_types/st_text_effect.rb +0 -2
  264. data/lib/omml/models/simple_types/st_text_scale.rb +0 -1
  265. data/lib/omml/models/simple_types/st_theme.rb +0 -2
  266. data/lib/omml/models/simple_types/st_theme_color.rb +0 -2
  267. data/lib/omml/models/simple_types/st_top_bot.rb +0 -2
  268. data/lib/omml/models/simple_types/st_underline.rb +0 -2
  269. data/lib/omml/models/simple_types/st_vertical_align_run.rb +0 -2
  270. data/lib/omml/models/simple_types/st_wrap_text.rb +0 -2
  271. data/lib/omml/models/simple_types/st_x_align.rb +0 -2
  272. data/lib/omml/models/simple_types/st_y_align.rb +0 -2
  273. data/lib/omml/models/simple_types/token.rb +5 -0
  274. data/lib/omml/models/simple_types/unsigned_int.rb +0 -1
  275. data/lib/omml/models/simple_types/unsigned_long.rb +0 -1
  276. data/lib/omml/models/simple_types.rb +0 -59
  277. data/lib/omml/models.rb +275 -177
  278. data/lib/omml/namespace.rb +2 -0
  279. data/lib/omml/version.rb +1 -1
  280. data/lib/omml/wordprocessing_namespace.rb +2 -0
  281. data/reference-docs/shared-math.xsd +1528 -0
  282. metadata +19 -2
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Omml
4
4
  module Models
5
- class EGWordRPr < Lutaml::Model::Serializable
5
+ class EGWordRPr < Base
6
6
  attribute :word_r_pr, :ct_r_pr, collection: 0..1
7
7
 
8
8
  xml do
@@ -11,7 +11,5 @@ module Omml
11
11
  map_element :rPr, to: :word_r_pr
12
12
  end
13
13
  end
14
-
15
- Omml::Configuration.register_model(EGWordRPr)
16
14
  end
17
15
  end
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Omml
4
+ module Models
5
+ # WordprocessingML run inner content elements referenced from CT_R via
6
+ # <xsd:group ref="w:EG_RunInnerContent" /> in shared-math.xsd.
7
+ #
8
+ # Every element here belongs to the WordprocessingML namespace regardless
9
+ # of its containing parent. Per the global rule "define your own types",
10
+ # Omml owns these wordprocessing stubs so the gem is self-contained;
11
+ # consumers (e.g. Uniword) substitute their own wordprocessing classes
12
+ # via the register substitution mechanism.
13
+ class EGWordRunInnerContent < Base
14
+ choice(min: 1, max: 1) do
15
+ attribute :br, :ct_br
16
+ attribute :del_text, :ct_wordprocessing_text
17
+ attribute :instr_text, :ct_wordprocessing_text
18
+ attribute :del_instr_text, :ct_wordprocessing_text
19
+ attribute :no_break_hyphen, :ct_wordprocessing_empty
20
+ attribute :soft_hyphen, :ct_wordprocessing_empty, collection: 0..1
21
+ attribute :day_short, :ct_wordprocessing_empty, collection: 0..1
22
+ attribute :month_short, :ct_wordprocessing_empty, collection: 0..1
23
+ attribute :year_short, :ct_wordprocessing_empty, collection: 0..1
24
+ attribute :day_long, :ct_wordprocessing_empty, collection: 0..1
25
+ attribute :month_long, :ct_wordprocessing_empty, collection: 0..1
26
+ attribute :year_long, :ct_wordprocessing_empty, collection: 0..1
27
+ attribute :annotation_ref, :ct_wordprocessing_empty, collection: 0..1
28
+ attribute :footnote_ref, :ct_wordprocessing_empty, collection: 0..1
29
+ attribute :endnote_ref, :ct_wordprocessing_empty, collection: 0..1
30
+ attribute :separator, :ct_wordprocessing_empty, collection: 0..1
31
+ attribute :continuation_separator, :ct_wordprocessing_empty,
32
+ collection: 0..1
33
+ attribute :sym, :ct_sym, collection: 0..1
34
+ attribute :pg_num, :ct_wordprocessing_empty, collection: 0..1
35
+ attribute :cr, :ct_wordprocessing_empty, collection: 0..1
36
+ attribute :tab, :ct_wordprocessing_empty, collection: 0..1
37
+ attribute :object, :ct_object
38
+ attribute :pict, :ct_picture
39
+ attribute :fld_char, :ct_fld_char
40
+ attribute :ruby, :ct_ruby
41
+ attribute :footnote_reference, :ct_ftn_edn_ref
42
+ attribute :endnote_reference, :ct_ftn_edn_ref
43
+ attribute :comment_reference, :ct_markup
44
+ attribute :drawing, :ct_drawing
45
+ attribute :ptab, :ct_p_tab, collection: 0..1
46
+ attribute :last_rendered_page_break, :ct_wordprocessing_empty,
47
+ collection: 0..1
48
+ end
49
+
50
+ xml do
51
+ type_name "EG_WordRunInnerContent"
52
+ namespace Omml::WordprocessingNamespace
53
+
54
+ map_element :br, to: :br, render_empty: true
55
+ map_element :delText, to: :del_text, render_empty: true
56
+ map_element :instrText, to: :instr_text, render_empty: true
57
+ map_element :delInstrText, to: :del_instr_text, render_empty: true
58
+ map_element :noBreakHyphen, to: :no_break_hyphen, render_empty: true
59
+ map_element :softHyphen, to: :soft_hyphen
60
+ map_element :dayShort, to: :day_short
61
+ map_element :monthShort, to: :month_short
62
+ map_element :yearShort, to: :year_short
63
+ map_element :dayLong, to: :day_long
64
+ map_element :monthLong, to: :month_long
65
+ map_element :yearLong, to: :year_long
66
+ map_element :annotationRef, to: :annotation_ref
67
+ map_element :footnoteRef, to: :footnote_ref
68
+ map_element :endnoteRef, to: :endnote_ref
69
+ map_element :separator, to: :separator
70
+ map_element :continuationSeparator, to: :continuation_separator
71
+ map_element :sym, to: :sym
72
+ map_element :pgNum, to: :pg_num
73
+ map_element :cr, to: :cr
74
+ map_element :tab, to: :tab
75
+ map_element :object, to: :object, render_empty: true
76
+ map_element :pict, to: :pict, render_empty: true
77
+ map_element :fldChar, to: :fld_char, render_empty: true
78
+ map_element :ruby, to: :ruby, render_empty: true
79
+ map_element :footnoteReference, to: :footnote_reference,
80
+ render_empty: true
81
+ map_element :endnoteReference, to: :endnote_reference,
82
+ render_empty: true
83
+ map_element :commentReference, to: :comment_reference,
84
+ render_empty: true
85
+ map_element :drawing, to: :drawing, render_empty: true
86
+ map_element :ptab, to: :ptab
87
+ map_element :lastRenderedPageBreak, to: :last_rendered_page_break
88
+ end
89
+ end
90
+ end
91
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Omml
4
4
  module Models
5
- class EGWrapType < Lutaml::Model::Serializable
5
+ class EGWrapType < Base
6
6
  choice(min: 1, max: 1) do
7
7
  attribute :wrap_none, :ct_wrap_none, collection: 1..1
8
8
  attribute :wrap_square, :ct_wrap_square, collection: 1..1
@@ -21,7 +21,5 @@ module Omml
21
21
  render_empty: true
22
22
  end
23
23
  end
24
-
25
- Omml::Configuration.register_model(EGWrapType)
26
24
  end
27
25
  end
@@ -1,19 +1 @@
1
1
  # frozen_string_literal: true
2
-
3
- require_relative "groups/eg_math_content"
4
- require_relative "groups/eg_o_math_math_elements"
5
- require_relative "groups/eg_office_art_extension_list"
6
- require_relative "groups/eg_r_pr"
7
- require_relative "groups/eg_r_pr_base"
8
- require_relative "groups/eg_range_markup_elements"
9
- require_relative "groups/eg_run_inner_content"
10
- require_relative "groups/eg_script_style"
11
- require_relative "groups/eg_word_r_pr"
12
- require_relative "groups/eg_wrap_type"
13
- require_relative "groups/eg_r_pr_content"
14
- require_relative "groups/eg_r_pr_math"
15
- require_relative "groups/eg_run_level_elts"
16
- require_relative "groups/eg_content_run_content"
17
- require_relative "groups/eg_o_math_elements"
18
- require_relative "groups/eg_p_content"
19
- require_relative "groups/eg_ruby_content"
@@ -3,7 +3,7 @@
3
3
  module Omml
4
4
  module Models
5
5
  # Root element wrapper for the generated CTOMath content model.
6
- class OMath < Lutaml::Model::Serializable
6
+ class OMath < Base
7
7
  import_model_attributes :eg_o_math_elements
8
8
 
9
9
  xml do
@@ -15,7 +15,5 @@ module Omml
15
15
  end
16
16
  end
17
17
  end
18
-
19
- Omml::Configuration.register_model(OMath, id: :o_math)
20
18
  end
21
19
  end
@@ -3,7 +3,7 @@
3
3
  module Omml
4
4
  module Models
5
5
  # Root element wrapper for the generated CTOMathPara content model.
6
- class OMathPara < Lutaml::Model::Serializable
6
+ class OMathPara < Base
7
7
  attribute :o_math_para_pr, :ct_o_math_para_pr, collection: 0..1
8
8
  attribute :o_math, :ct_o_math, collection: 1..Float::INFINITY
9
9
  attribute :r, :ct_r, collection: 0..Float::INFINITY
@@ -19,7 +19,5 @@ module Omml
19
19
  end
20
20
  end
21
21
  end
22
-
23
- Omml::Configuration.register_model(OMathPara, id: :o_math_para)
24
22
  end
25
23
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Omml
4
+ module Models
5
+ # Mixed into simple-type classes that need to know their active register
6
+ # when resolving dependent types (e.g. `STAdjCoordinate` delegates to
7
+ # either `STCoordinate` or `STGeomGuideName` depending on the value).
8
+ #
9
+ # `Omml::Configuration.register_model` calls `register=` on classes that
10
+ # include this module, mirroring the role of upstream's
11
+ # `set_register_context` on `Lutaml::Model::Serializable`.
12
+ module Registerable
13
+ def self.included(base)
14
+ base.extend(ClassMethods)
15
+ end
16
+
17
+ module ClassMethods
18
+ attr_accessor :register
19
+ end
20
+ end
21
+ end
22
+ end
@@ -3,6 +3,11 @@
3
3
  module Omml
4
4
  module Models
5
5
  class EnumString < Lutaml::Model::Type::String
6
+ def self.inherited(subclass)
7
+ super
8
+ Omml::Configuration.register_model(subclass)
9
+ end
10
+
6
11
  def self.cast(value, options = {})
7
12
  return if value.nil?
8
13
 
@@ -9,7 +9,6 @@ module Omml
9
9
  super(value, options.merge(pattern: /(?-mix:([0-9a-fA-F]{2})*)/))
10
10
  end
11
11
  end
12
-
13
12
  Omml::Configuration.register_model(HexBinary)
14
13
  end
15
14
  end
@@ -3,6 +3,8 @@
3
3
  module Omml
4
4
  module Models
5
5
  class STAdjCoordinate < Lutaml::Model::Type::Value
6
+ include Registerable
7
+
6
8
  def self.cast(value, options = {})
7
9
  return if value.nil?
8
10
 
@@ -18,7 +20,6 @@ module Omml
18
20
 
19
21
  private_class_method :cast_value
20
22
  end
21
-
22
23
  Omml::Configuration.register_model(STAdjCoordinate)
23
24
  end
24
25
  end
@@ -11,7 +11,5 @@ module Omml
11
11
  outside
12
12
  ].freeze
13
13
  end
14
-
15
- Omml::Configuration.register_model(STAlignH)
16
14
  end
17
15
  end
@@ -11,7 +11,5 @@ module Omml
11
11
  outside
12
12
  ].freeze
13
13
  end
14
-
15
- Omml::Configuration.register_model(STAlignV)
16
14
  end
17
15
  end
@@ -197,7 +197,5 @@ module Omml
197
197
  zigZagStitch
198
198
  ].freeze
199
199
  end
200
-
201
- Omml::Configuration.register_model(STBorder)
202
200
  end
203
201
  end
@@ -10,7 +10,5 @@ module Omml
10
10
  all
11
11
  ].freeze
12
12
  end
13
-
14
- Omml::Configuration.register_model(STBrClear)
15
13
  end
16
14
  end
@@ -9,7 +9,5 @@ module Omml
9
9
  textWrapping
10
10
  ].freeze
11
11
  end
12
-
13
- Omml::Configuration.register_model(STBrType)
14
12
  end
15
13
  end
@@ -9,7 +9,5 @@ module Omml
9
9
  repeat
10
10
  ].freeze
11
11
  end
12
-
13
- Omml::Configuration.register_model(STBreakBin)
14
12
  end
15
13
  end
@@ -9,7 +9,5 @@ module Omml
9
9
  +-
10
10
  ].freeze
11
11
  end
12
-
13
- Omml::Configuration.register_model(STBreakBinSub)
14
12
  end
15
13
  end
@@ -16,7 +16,5 @@ module Omml
16
16
  gregorianXlitFrench
17
17
  ].freeze
18
18
  end
19
-
20
- Omml::Configuration.register_model(STCalendarType)
21
19
  end
22
20
  end
@@ -11,7 +11,5 @@ module Omml
11
11
  curly
12
12
  ].freeze
13
13
  end
14
-
15
- Omml::Configuration.register_model(STCombineBrackets)
16
14
  end
17
15
  end
@@ -10,7 +10,6 @@ module Omml
10
10
  min: -27_273_042_329_600))
11
11
  end
12
12
  end
13
-
14
13
  Omml::Configuration.register_model(STCoordinate)
15
14
  end
16
15
  end
@@ -8,7 +8,5 @@ module Omml
8
8
  prev
9
9
  ].freeze
10
10
  end
11
-
12
- Omml::Configuration.register_model(STDisplacedByCustomXml)
13
11
  end
14
12
  end
@@ -13,7 +13,5 @@ module Omml
13
13
  current
14
14
  ].freeze
15
15
  end
16
-
17
- Omml::Configuration.register_model(STEdGrp)
18
16
  end
19
17
  end
@@ -11,7 +11,5 @@ module Omml
11
11
  underDot
12
12
  ].freeze
13
13
  end
14
-
15
- Omml::Configuration.register_model(STEm)
16
14
  end
17
15
  end
@@ -10,7 +10,5 @@ module Omml
10
10
  noBar
11
11
  ].freeze
12
12
  end
13
-
14
- Omml::Configuration.register_model(STFType)
15
13
  end
16
14
  end
@@ -12,7 +12,5 @@ module Omml
12
12
  calculated
13
13
  ].freeze
14
14
  end
15
-
16
- Omml::Configuration.register_model(STFFTextType)
17
15
  end
18
16
  end
@@ -9,7 +9,5 @@ module Omml
9
9
  end
10
10
  ].freeze
11
11
  end
12
-
13
- Omml::Configuration.register_model(STFldCharType)
14
12
  end
15
13
  end
@@ -4,7 +4,5 @@ module Omml
4
4
  module Models
5
5
  class STGeomGuideName < Token
6
6
  end
7
-
8
- Omml::Configuration.register_model(STGeomGuideName)
9
7
  end
10
8
  end
@@ -3,6 +3,8 @@
3
3
  module Omml
4
4
  module Models
5
5
  class STHexColor < Lutaml::Model::Type::Value
6
+ include Registerable
7
+
6
8
  def self.cast(value, options = {})
7
9
  return if value.nil?
8
10
 
@@ -18,7 +20,6 @@ module Omml
18
20
 
19
21
  private_class_method :cast_value
20
22
  end
21
-
22
23
  Omml::Configuration.register_model(STHexColor)
23
24
  end
24
25
  end
@@ -23,7 +23,5 @@ module Omml
23
23
  none
24
24
  ].freeze
25
25
  end
26
-
27
- Omml::Configuration.register_model(STHighlightColor)
28
26
  end
29
27
  end
@@ -9,7 +9,5 @@ module Omml
9
9
  cs
10
10
  ].freeze
11
11
  end
12
-
13
- Omml::Configuration.register_model(STHint)
14
12
  end
15
13
  end
@@ -8,7 +8,5 @@ module Omml
8
8
  autoText
9
9
  ].freeze
10
10
  end
11
-
12
- Omml::Configuration.register_model(STInfoTextType)
13
11
  end
14
12
  end
@@ -9,7 +9,6 @@ module Omml
9
9
  super(value, options.merge(max: 2, min: -2))
10
10
  end
11
11
  end
12
-
13
12
  Omml::Configuration.register_model(STInteger2)
14
13
  end
15
14
  end
@@ -9,7 +9,6 @@ module Omml
9
9
  super(value, options.merge(max: 255, min: 1))
10
10
  end
11
11
  end
12
-
13
12
  Omml::Configuration.register_model(STInteger255)
14
13
  end
15
14
  end
@@ -10,7 +10,5 @@ module Omml
10
10
  centerGroup
11
11
  ].freeze
12
12
  end
13
-
14
- Omml::Configuration.register_model(STJc)
15
13
  end
16
14
  end
@@ -3,6 +3,8 @@
3
3
  module Omml
4
4
  module Models
5
5
  class STLang < Lutaml::Model::Type::Value
6
+ include Registerable
7
+
6
8
  def self.cast(value, options = {})
7
9
  return if value.nil?
8
10
 
@@ -18,7 +20,6 @@ module Omml
18
20
 
19
21
  private_class_method :cast_value
20
22
  end
21
-
22
23
  Omml::Configuration.register_model(STLang)
23
24
  end
24
25
  end
@@ -8,7 +8,5 @@ module Omml
8
8
  subSup
9
9
  ].freeze
10
10
  end
11
-
12
- Omml::Configuration.register_model(STLimLoc)
13
11
  end
14
12
  end
@@ -10,7 +10,5 @@ module Omml
10
10
  sdtContentLocked
11
11
  ].freeze
12
12
  end
13
-
14
- Omml::Configuration.register_model(STLock)
15
13
  end
16
14
  end
@@ -12,7 +12,5 @@ module Omml
12
12
  false
13
13
  ].freeze
14
14
  end
15
-
16
- Omml::Configuration.register_model(STOnOff)
17
15
  end
18
16
  end
@@ -9,7 +9,5 @@ module Omml
9
9
  right
10
10
  ].freeze
11
11
  end
12
-
13
- Omml::Configuration.register_model(STPTabAlignment)
14
12
  end
15
13
  end
@@ -11,7 +11,5 @@ module Omml
11
11
  middleDot
12
12
  ].freeze
13
13
  end
14
-
15
- Omml::Configuration.register_model(STPTabLeader)
16
14
  end
17
15
  end
@@ -8,7 +8,5 @@ module Omml
8
8
  indent
9
9
  ].freeze
10
10
  end
11
-
12
- Omml::Configuration.register_model(STPTabRelativeTo)
13
11
  end
14
12
  end
@@ -9,7 +9,6 @@ module Omml
9
9
  super(value, options.merge(max: 27_273_042_316_900, min: 0))
10
10
  end
11
11
  end
12
-
13
12
  Omml::Configuration.register_model(STPositiveCoordinate)
14
13
  end
15
14
  end
@@ -10,7 +10,5 @@ module Omml
10
10
  gramEnd
11
11
  ].freeze
12
12
  end
13
-
14
- Omml::Configuration.register_model(STProofErr)
15
13
  end
16
14
  end
@@ -14,7 +14,5 @@ module Omml
14
14
  outsideMargin
15
15
  ].freeze
16
16
  end
17
-
18
- Omml::Configuration.register_model(STRelFromH)
19
17
  end
20
18
  end
@@ -14,7 +14,5 @@ module Omml
14
14
  outsideMargin
15
15
  ].freeze
16
16
  end
17
-
18
- Omml::Configuration.register_model(STRelFromV)
19
17
  end
20
18
  end
@@ -12,7 +12,5 @@ module Omml
12
12
  rightVertical
13
13
  ].freeze
14
14
  end
15
-
16
- Omml::Configuration.register_model(STRubyAlign)
17
15
  end
18
16
  end
@@ -12,7 +12,5 @@ module Omml
12
12
  monospace
13
13
  ].freeze
14
14
  end
15
-
16
- Omml::Configuration.register_model(STScript)
17
15
  end
18
16
  end
@@ -9,7 +9,5 @@ module Omml
9
9
  dateTime
10
10
  ].freeze
11
11
  end
12
-
13
- Omml::Configuration.register_model(STSdtDateMappingType)
14
12
  end
15
13
  end
@@ -44,7 +44,5 @@ module Omml
44
44
  pct95
45
45
  ].freeze
46
46
  end
47
-
48
- Omml::Configuration.register_model(STShd)
49
47
  end
50
48
  end
@@ -8,7 +8,5 @@ module Omml
8
8
  match
9
9
  ].freeze
10
10
  end
11
-
12
- Omml::Configuration.register_model(STShp)
13
11
  end
14
12
  end
@@ -9,7 +9,6 @@ module Omml
9
9
  super(value, options.merge(max: 4, min: 0))
10
10
  end
11
11
  end
12
-
13
12
  Omml::Configuration.register_model(STSpacingRule)
14
13
  end
15
14
  end
@@ -10,7 +10,5 @@ module Omml
10
10
  bi
11
11
  ].freeze
12
12
  end
13
-
14
- Omml::Configuration.register_model(STStyle)
15
13
  end
16
14
  end
@@ -13,7 +13,5 @@ module Omml
13
13
  none
14
14
  ].freeze
15
15
  end
16
-
17
- Omml::Configuration.register_model(STTextEffect)
18
16
  end
19
17
  end
@@ -9,7 +9,6 @@ module Omml
9
9
  super(value, options.merge(max: 600, min: 0))
10
10
  end
11
11
  end
12
-
13
12
  Omml::Configuration.register_model(STTextScale)
14
13
  end
15
14
  end