lutaml 0.10.18 → 0.11.2

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 (632) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +8 -1
  3. data/.gitignore +4 -0
  4. data/.rubocop_todo.yml +82 -161
  5. data/CLAUDE.md +32 -8
  6. data/Gemfile +14 -10
  7. data/Rakefile +6 -4
  8. data/lib/lutaml/version.rb +1 -1
  9. data/lib/lutaml.rb +3 -9
  10. data/lutaml.gemspec +2 -18
  11. metadata +5 -860
  12. data/Makefile +0 -2
  13. data/TODO.cleanups/05-replace-marshal-load.md +0 -37
  14. data/TODO.cleanups/06-replace-eval-in-tests.md +0 -41
  15. data/TODO.cleanups/10-split-large-files.md +0 -47
  16. data/config/diagram_styles.yml +0 -200
  17. data/config/model_transformations.yml +0 -266
  18. data/config/package_metadata.example.yml +0 -58
  19. data/config/qea_schema.yml +0 -1024
  20. data/config/static_site.yml +0 -166
  21. data/examples/UML_EA.DTD +0 -6856
  22. data/examples/lur/20251010_current_plateau_v5.1.lur +0 -0
  23. data/examples/lur/basic.lur +0 -0
  24. data/examples/lur/test-output.lur +0 -0
  25. data/examples/lur/test.lur +0 -0
  26. data/examples/lur_basic_usage.rb +0 -220
  27. data/examples/lur_cli_workflow.rb +0 -262
  28. data/examples/lur_statistics.rb +0 -325
  29. data/examples/qea/20251010_current_plateau_v5.1.qea +0 -0
  30. data/examples/qea/ArcGISWorkspace_template.qea +0 -0
  31. data/examples/qea/README_qea_parser.adoc +0 -230
  32. data/examples/qea/UmlModel_template.qea +0 -0
  33. data/examples/qea/basic.qea +0 -0
  34. data/examples/qea/simple.qea +0 -0
  35. data/examples/qea/simple_example.qea +0 -0
  36. data/examples/qea/test.qea +0 -0
  37. data/examples/xmi/20251010_current_plateau_v5.1.xmi +0 -118121
  38. data/examples/xmi/ArcGISWorkspace_template.xmi +0 -1467
  39. data/examples/xmi/Images/EAID_0016F797_D055_4717_AF1A_606413D0A166.svg +0 -158
  40. data/examples/xmi/Images/EAID_00C5C772_5A03_434f_BF30_AC37542A1AAC.svg +0 -659
  41. data/examples/xmi/Images/EAID_0114FD24_9E58_4664_98CD_71305B59AD11.svg +0 -411
  42. data/examples/xmi/Images/EAID_01661E1B_31B6_4167_BCCF_A00678FB4EA2.svg +0 -102
  43. data/examples/xmi/Images/EAID_039FE004_5408_4fc0_89AA_EB319E4F61C7.svg +0 -169
  44. data/examples/xmi/Images/EAID_04EE9625_17A0_4721_BC71_21756DB21D06.svg +0 -403
  45. data/examples/xmi/Images/EAID_05FF9417_1619_4170_B0C9_55AA6B988EF1.svg +0 -175
  46. data/examples/xmi/Images/EAID_09853FB2_AF8A_432f_94C5_6C47461BD937.svg +0 -360
  47. data/examples/xmi/Images/EAID_09927B7F_A657_4819_99E5_AC9DC99227D9.svg +0 -195
  48. data/examples/xmi/Images/EAID_09AF6B8A_557C_43bc_BBB0_47C1E9401EF3.svg +0 -218
  49. data/examples/xmi/Images/EAID_0BE81AC5_031B_4973_A9A0_223CCD92BAA1.svg +0 -471
  50. data/examples/xmi/Images/EAID_0EDEA6EF_4DC8_4979_BB80_28B1B9EBD1D4.svg +0 -56
  51. data/examples/xmi/Images/EAID_0F413534_6AD2_48bc_B4AF_8699D530D91D.svg +0 -262
  52. data/examples/xmi/Images/EAID_1321F39B_AD67_47b5_B5C3_3A42BBFCBDF9.svg +0 -286
  53. data/examples/xmi/Images/EAID_13E09C71_99E7_40b4_B72D_48AF6379BC2E.svg +0 -164
  54. data/examples/xmi/Images/EAID_144955D8_CB4E_4b59_BB0C_E549F7F84943.svg +0 -66
  55. data/examples/xmi/Images/EAID_14E9F5FD_F6CD_4f48_B1CD_F5A40C6D8E83.svg +0 -95
  56. data/examples/xmi/Images/EAID_157826AA_96A7_4278_89A6_94BD0F31409A.svg +0 -63
  57. data/examples/xmi/Images/EAID_159E9DA0_7A54_4817_B72A_401C750F675D.svg +0 -306
  58. data/examples/xmi/Images/EAID_17BC8309_8051_492b_BE87_61CCFE83DB16.svg +0 -45
  59. data/examples/xmi/Images/EAID_1A10EB6D_E2E5_42a6_A31E_B293D93FD07E.svg +0 -193
  60. data/examples/xmi/Images/EAID_1A290AFD_CE96_46a2_8351_A986D77CC727.svg +0 -444
  61. data/examples/xmi/Images/EAID_1B2D9309_C66B_492a_995C_95B2B02E0D7C.svg +0 -168
  62. data/examples/xmi/Images/EAID_1DE6B973_CE8A_416f_909B_54CEA1E5944E.svg +0 -10
  63. data/examples/xmi/Images/EAID_204F4ACC_2230_4c8d_9861_EF5A6844B712.svg +0 -60
  64. data/examples/xmi/Images/EAID_227300E2_4F4B_4955_83B9_FA626CE8680B.svg +0 -188
  65. data/examples/xmi/Images/EAID_22C24D4C_4894_480a_B113_0CB034CB59E9.svg +0 -426
  66. data/examples/xmi/Images/EAID_234BC4F5_8100_4969_BDCB_A24E0E641F23.svg +0 -169
  67. data/examples/xmi/Images/EAID_24446BFC_9FEB_4935_8970_65A4C562A93F.svg +0 -277
  68. data/examples/xmi/Images/EAID_24E8A45C_C99F_49b7_860A_9CF65FF76C76.svg +0 -575
  69. data/examples/xmi/Images/EAID_272F3181_4300_48b7_98A0_A8CFD12B1A72.svg +0 -255
  70. data/examples/xmi/Images/EAID_292E0D94_392C_4da6_A0B5_841501FAE50A.svg +0 -183
  71. data/examples/xmi/Images/EAID_29DD0967_ADAB_4abb_99C5_544821F5E7DA.svg +0 -10
  72. data/examples/xmi/Images/EAID_2A339928_E5EF_4ed2_9E5D_CC2CA5CF248B.svg +0 -310
  73. data/examples/xmi/Images/EAID_2A5E0832_06BE_4381_85D4_9B00E4F95575.svg +0 -155
  74. data/examples/xmi/Images/EAID_2AAB709F_EFCE_496f_8AFE_92809D66A0A9.svg +0 -81
  75. data/examples/xmi/Images/EAID_2C8DD882_8DEA_4065_89F8_DDA796AA0C85.svg +0 -520
  76. data/examples/xmi/Images/EAID_2E98EA19_37D8_4b70_BDCE_CFEE4FA800B0.svg +0 -173
  77. data/examples/xmi/Images/EAID_30D62231_110F_44e8_9C06_6FCDCBA53A09.svg +0 -722
  78. data/examples/xmi/Images/EAID_3206D3FD_1FC4_41c7_8D00_36DB908E9319.svg +0 -181
  79. data/examples/xmi/Images/EAID_3452CC53_9ACB_44eb_9C9D_B90CF862F284.svg +0 -92
  80. data/examples/xmi/Images/EAID_348EE46E_ABD9_40b0_82A1_0285E75BDC52.svg +0 -187
  81. data/examples/xmi/Images/EAID_34FF671B_CFDC_47ad_91DF_ECA6D8358180.svg +0 -217
  82. data/examples/xmi/Images/EAID_359DD694_0100_4bdf_AD5F_712D97E9C69B.svg +0 -157
  83. data/examples/xmi/Images/EAID_35DE714C_49A8_490e_913A_56F39EF317F9.svg +0 -180
  84. data/examples/xmi/Images/EAID_360C79F1_8EDF_41db_A069_DECDC55625BC.svg +0 -31
  85. data/examples/xmi/Images/EAID_36913C58_FF35_4ba2_A04B_9A4824E24609.svg +0 -166
  86. data/examples/xmi/Images/EAID_372F7F7B_57ED_469a_A640_70DB578B3C56.svg +0 -361
  87. data/examples/xmi/Images/EAID_37AC19B9_8433_4fee_A326_763170D54D06.svg +0 -32
  88. data/examples/xmi/Images/EAID_38170608_32B5_4a6f_A68D_A0D7C0C9D019.svg +0 -234
  89. data/examples/xmi/Images/EAID_3A77A5D0_4E1B_4116_8AAD_407FC422B47F.svg +0 -183
  90. data/examples/xmi/Images/EAID_3B8BD087_1683_46b1_8D0D_6F839C46C578.svg +0 -42
  91. data/examples/xmi/Images/EAID_3DC20801_AE8B_4e76_B08C_F574E8A90E13.svg +0 -192
  92. data/examples/xmi/Images/EAID_3DE28C70_C6D4_406c_B49F_EEF52148C8C1.svg +0 -124
  93. data/examples/xmi/Images/EAID_458E093C_BA2B_4292_BEC4_37511C163DDC.svg +0 -140
  94. data/examples/xmi/Images/EAID_45F9B1F7_E568_47c9_B229_953BC2E707E4.svg +0 -266
  95. data/examples/xmi/Images/EAID_46B3041A_8C23_46e6_8E14_ADE7012274C5.svg +0 -80
  96. data/examples/xmi/Images/EAID_47E4600F_CEC9_4245_9BF5_EE38007A9DDB.svg +0 -584
  97. data/examples/xmi/Images/EAID_4881CEEE_792C_4cb0_BEA7_54333B643D0A.svg +0 -155
  98. data/examples/xmi/Images/EAID_48D364F0_DCA4_41e8_B4D4_509B3023B969.svg +0 -17
  99. data/examples/xmi/Images/EAID_4DBDAB9E_4C1C_4cb1_A767_06BD743A50A7.svg +0 -78
  100. data/examples/xmi/Images/EAID_4EB75007_B31D_4f2c_8855_7E9D3A3B17F4.svg +0 -454
  101. data/examples/xmi/Images/EAID_4F421236_FCF3_4aae_B22A_C7E6A5EFBAC7.svg +0 -81
  102. data/examples/xmi/Images/EAID_4FC1D352_2102_4b73_BCB0_1410B29C6BD7.svg +0 -379
  103. data/examples/xmi/Images/EAID_4FE346EA_01E1_4b30_8BE6_BB32EA191E47.svg +0 -126
  104. data/examples/xmi/Images/EAID_5038EEE3_7DD0_4cca_9829_364E044D37E8.svg +0 -199
  105. data/examples/xmi/Images/EAID_508A37DC_9378_4f5a_BD96_48F4D24E03A5.svg +0 -162
  106. data/examples/xmi/Images/EAID_516DA1A2_F0EC_415c_9664_E4CA54E7F05C.svg +0 -136
  107. data/examples/xmi/Images/EAID_52A1DBD3_D3DA_4b6d_8F96_FC6F39F64242.svg +0 -161
  108. data/examples/xmi/Images/EAID_575E87BA_32E9_4a84_AA4E_0EFDFC5D4C07.svg +0 -71
  109. data/examples/xmi/Images/EAID_57E0F1A0_6C72_47ef_B922_B806F9A875E8.svg +0 -209
  110. data/examples/xmi/Images/EAID_5957C373_3FC1_482f_8F35_D809153A17F5.svg +0 -123
  111. data/examples/xmi/Images/EAID_59A66AE2_412C_48a6_BFC7_EA56CF11D269.svg +0 -218
  112. data/examples/xmi/Images/EAID_5A43833E_680B_4a90_8931_0C902304E029.svg +0 -236
  113. data/examples/xmi/Images/EAID_5D6DB5A0_5047_4bac_9E60_69904A60B56D.svg +0 -353
  114. data/examples/xmi/Images/EAID_5DA1E7A7_8E59_4803_A831_E9F3EC27328F.svg +0 -242
  115. data/examples/xmi/Images/EAID_5E2C1E2A_82A8_47f4_B2ED_1398D72BFCFD.svg +0 -246
  116. data/examples/xmi/Images/EAID_6052620C_4BD5_49f6_A21C_AD7E6DCA2795.svg +0 -290
  117. data/examples/xmi/Images/EAID_6481E2CC_35A6_43b0_88D4_10A667A2BC2D.svg +0 -60
  118. data/examples/xmi/Images/EAID_660C7D03_A26C_4977_A7BA_9D0A773DA811.svg +0 -318
  119. data/examples/xmi/Images/EAID_671F3C3D_35B6_4514_B5B6_DD7E84925493.svg +0 -24
  120. data/examples/xmi/Images/EAID_676B9C9A_D85F_4d2f_A46B_73F02090DC87.svg +0 -127
  121. data/examples/xmi/Images/EAID_6797FEFA_5801_48e4_8B9C_3C824C0E165D.svg +0 -412
  122. data/examples/xmi/Images/EAID_6807F4EE_18EF_4e7e_ACCF_D5BD323AFDE9.svg +0 -130
  123. data/examples/xmi/Images/EAID_69E81E34_CF28_4c7f_A48F_5941BA85CEE3.svg +0 -96
  124. data/examples/xmi/Images/EAID_6A3C55E8_3C3C_4f3a_8AAC_0299C5B23070.svg +0 -10
  125. data/examples/xmi/Images/EAID_6BAC333E_E2C2_42c7_8DDF_6B4FA0FFC03B.svg +0 -143
  126. data/examples/xmi/Images/EAID_6D0349D5_3F1B_4b28_82D2_910743DEB5E5.svg +0 -114
  127. data/examples/xmi/Images/EAID_6E95B74E_8A09_4698_9E9E_23BCFD2CE194.svg +0 -37
  128. data/examples/xmi/Images/EAID_70C77F92_5614_4b22_8C8E_67859F59D8FD.svg +0 -254
  129. data/examples/xmi/Images/EAID_71F9216B_E7A7_4083_B08E_6C71B57F3A1F.svg +0 -187
  130. data/examples/xmi/Images/EAID_73025C5A_08FC_47ff_AB2F_C7F79CF54B41.svg +0 -145
  131. data/examples/xmi/Images/EAID_74C974B6_6D07_425d_B7AC_C8899E3B4967.svg +0 -76
  132. data/examples/xmi/Images/EAID_7504FCD2_524C_4e7d_BAE4_4E58A8A8A12C.svg +0 -196
  133. data/examples/xmi/Images/EAID_78030266_3603_4747_9D75_03D16614BE7D.svg +0 -35
  134. data/examples/xmi/Images/EAID_785226C1_12B1_4104_A4C1_F19B70B9FB71.svg +0 -348
  135. data/examples/xmi/Images/EAID_7854470F_26B8_4d3c_AFDF_C05BCE6ED0CD.svg +0 -72
  136. data/examples/xmi/Images/EAID_794F4A8F_18CA_4e9f_8477_A6F0E5ED22D4.svg +0 -187
  137. data/examples/xmi/Images/EAID_7A24839E_C8AE_424d_B7D2_6DA16DC813E7.svg +0 -114
  138. data/examples/xmi/Images/EAID_7A3649FD_E960_4ae6_B9B1_A9001C066AE7.svg +0 -181
  139. data/examples/xmi/Images/EAID_7B2C6765_AB68_439a_87F3_DAC323CB2AF5.svg +0 -196
  140. data/examples/xmi/Images/EAID_7C44AC09_27C1_47b3_9A85_88EC71C081FF.svg +0 -55
  141. data/examples/xmi/Images/EAID_7CE102CA_97C1_4cac_BD3B_0500D3712D2A.svg +0 -195
  142. data/examples/xmi/Images/EAID_7D960BD8_65D8_4934_9C11_4EF860DD8FBA.svg +0 -90
  143. data/examples/xmi/Images/EAID_80939C98_A456_48c3_BCEA_4B72851F2DF6.svg +0 -174
  144. data/examples/xmi/Images/EAID_812FE862_76ED_44f0_B678_7A4601B395CF.svg +0 -142
  145. data/examples/xmi/Images/EAID_81B76F5B_9D64_4bbf_8AC8_34234FB87533.svg +0 -740
  146. data/examples/xmi/Images/EAID_84352F1A_195B_411b_9552_5BFC40BF90B5.svg +0 -105
  147. data/examples/xmi/Images/EAID_846DD800_139C_4d47_A1DF_3FB1AC5D130F.svg +0 -554
  148. data/examples/xmi/Images/EAID_84A9C65B_FD6D_4bb5_818F_E8C35FF5BCD1.svg +0 -228
  149. data/examples/xmi/Images/EAID_853674F5_7DC9_4aae_809B_5728098B5D5B.svg +0 -154
  150. data/examples/xmi/Images/EAID_860CBBFB_2F27_408f_9144_751F9D1F487F.svg +0 -273
  151. data/examples/xmi/Images/EAID_87476527_7B9B_4b92_967E_3D38365470CA.svg +0 -239
  152. data/examples/xmi/Images/EAID_87DAE930_5069_4c58_AC65_4B0B2C0F32C8.svg +0 -10
  153. data/examples/xmi/Images/EAID_88AF6BD7_BC34_406f_BB59_47CFAB4A7D5D.svg +0 -116
  154. data/examples/xmi/Images/EAID_88D0CB44_20D0_44fc_A6E3_B663332EF401.svg +0 -200
  155. data/examples/xmi/Images/EAID_8BB1CA0C_C003_4678_973B_A1C3308E021D.svg +0 -136
  156. data/examples/xmi/Images/EAID_8DAB169F_D189_4320_A0F5_4443E3297F0E.svg +0 -181
  157. data/examples/xmi/Images/EAID_8FD488EF_BAAB_40ec_A7ED_F7CC831D546E.svg +0 -324
  158. data/examples/xmi/Images/EAID_90BCA409_BB45_42c5_AFA5_45FE3D995904.svg +0 -342
  159. data/examples/xmi/Images/EAID_926AFE38_01FA_469e_B6AA_ED5F4D62B66F.svg +0 -105
  160. data/examples/xmi/Images/EAID_92AB0FD0_B0FB_4ceb_8EAE_66B6600D31D7.svg +0 -681
  161. data/examples/xmi/Images/EAID_92C43670_3057_47f1_A576_C60843FF3D26.svg +0 -136
  162. data/examples/xmi/Images/EAID_93F63576_BE01_4cd8_8A91_C674FF77FC3D.svg +0 -718
  163. data/examples/xmi/Images/EAID_9400D9BC_05A5_41fc_83F7_02E5C67F9718.svg +0 -487
  164. data/examples/xmi/Images/EAID_95246DCF_1C09_4a16_9512_98000F56B3D8.svg +0 -292
  165. data/examples/xmi/Images/EAID_9994BF62_51E2_42cd_BB35_16C537B6718A.svg +0 -715
  166. data/examples/xmi/Images/EAID_9AAD6C21_B1E7_4472_B64A_FB5E3569D970.svg +0 -116
  167. data/examples/xmi/Images/EAID_9BD7189A_877B_4ca9_B42C_817DEF144FB2.svg +0 -284
  168. data/examples/xmi/Images/EAID_9DA6C553_94FC_4204_83AD_ECC4B45A53EF.svg +0 -159
  169. data/examples/xmi/Images/EAID_9EE6A41B_5FAA_4c89_B98F_732059778630.svg +0 -10
  170. data/examples/xmi/Images/EAID_9F1A4B54_46F6_435c_9529_E43E54CF6050.svg +0 -172
  171. data/examples/xmi/Images/EAID_9FE1EA7B_4CEF_4976_A281_93A94315BD84.svg +0 -153
  172. data/examples/xmi/Images/EAID_A0695647_6172_4262_8C30_67441399609C.svg +0 -290
  173. data/examples/xmi/Images/EAID_A081C63E_D6F2_41a7_A99C_307836754AFA.svg +0 -149
  174. data/examples/xmi/Images/EAID_A24E2778_5AD9_44f2_AB8F_5CD3913477D6.svg +0 -194
  175. data/examples/xmi/Images/EAID_A264F089_F9B3_406c_A3A8_FF34903797D3.svg +0 -143
  176. data/examples/xmi/Images/EAID_A282E5D1_2A13_4e7f_BC76_5D086DD4A577.svg +0 -357
  177. data/examples/xmi/Images/EAID_A3BCE1D6_9DB5_4272_A020_4C0E194B99CC.svg +0 -171
  178. data/examples/xmi/Images/EAID_A56E3818_D1B8_4b63_B69E_FBAC4A8AF482.svg +0 -218
  179. data/examples/xmi/Images/EAID_A57215D5_75C5_4532_BCF4_264A77CD62F1.svg +0 -204
  180. data/examples/xmi/Images/EAID_A59065AF_9669_486c_9582_9693177CFC7F.svg +0 -263
  181. data/examples/xmi/Images/EAID_A759374D_589A_488c_99EF_537ACB9B1FF9.svg +0 -398
  182. data/examples/xmi/Images/EAID_A7B25F46_F18A_4373_B16D_8C6AC0B868B0.svg +0 -174
  183. data/examples/xmi/Images/EAID_A9FE9E6F_A5F4_47e5_A6BA_26E22C7346B6.svg +0 -310
  184. data/examples/xmi/Images/EAID_AA62CDEB_55EC_498d_B326_4AA2C9AF6A05.svg +0 -144
  185. data/examples/xmi/Images/EAID_AAF52AF6_F7F9_4005_AE46_8920847BEA03.svg +0 -144
  186. data/examples/xmi/Images/EAID_AB281AC1_7CB8_404a_8124_34343DDD84E2.svg +0 -198
  187. data/examples/xmi/Images/EAID_AB7F1FDF_A66B_42a1_B8A3_7F594BAAD508.svg +0 -143
  188. data/examples/xmi/Images/EAID_AC2191E3_76E3_40b2_9E21_0E0B9B5277D2.svg +0 -114
  189. data/examples/xmi/Images/EAID_AD451676_A7C8_4c6a_A925_A9B9CA344142.svg +0 -339
  190. data/examples/xmi/Images/EAID_ADBA40A1_9375_4c1b_9938_0990612EB615.svg +0 -429
  191. data/examples/xmi/Images/EAID_ADC8773C_1B27_48ac_BAC1_14C1C919FAF6.svg +0 -245
  192. data/examples/xmi/Images/EAID_AE0718DF_AF69_4ea1_A099_E20028FE40A1.svg +0 -173
  193. data/examples/xmi/Images/EAID_B0DDB85D_A00C_4a7f_8C06_CCA15E5E4FE5.svg +0 -31
  194. data/examples/xmi/Images/EAID_B27ED282_D5E5_4f33_8AC1_62802F9E0B35.svg +0 -256
  195. data/examples/xmi/Images/EAID_B3AFECCB_17DD_44d6_8A44_2C38D9A64C0B.svg +0 -95
  196. data/examples/xmi/Images/EAID_B3B6C5B1_278E_4714_8244_B6C28B66AB50.svg +0 -176
  197. data/examples/xmi/Images/EAID_B53E76CD_A0F2_4e2f_B3AB_796D85964EF2.svg +0 -179
  198. data/examples/xmi/Images/EAID_B55D6E67_0BDD_4163_B359_11A6FBA89C74.svg +0 -207
  199. data/examples/xmi/Images/EAID_B58D1A53_E860_41a3_8352_11C274093E83.svg +0 -189
  200. data/examples/xmi/Images/EAID_B62C02B3_69DB_49e9_8089_4EE398BDE666.svg +0 -165
  201. data/examples/xmi/Images/EAID_BC008774_B539_4150_8174_B675989053D0.svg +0 -22
  202. data/examples/xmi/Images/EAID_BC1F7E00_082D_4a26_922B_3967A8D66859.svg +0 -266
  203. data/examples/xmi/Images/EAID_BDA613D8_402A_475a_AA15_683D88FD3D23.svg +0 -183
  204. data/examples/xmi/Images/EAID_C028B286_4C85_47d8_B6D5_80B28F556E82.svg +0 -303
  205. data/examples/xmi/Images/EAID_C173A6F4_1D1B_400e_AD8C_64FFF7CD5BE5.svg +0 -178
  206. data/examples/xmi/Images/EAID_C1834072_CADC_4ce4_B0FC_8284AE5CF4A4.svg +0 -158
  207. data/examples/xmi/Images/EAID_C1EC985B_5CBD_4e91_8661_EB4EF23781D9.svg +0 -286
  208. data/examples/xmi/Images/EAID_C31C1314_B679_4413_B8FE_A2CD584FC128.svg +0 -305
  209. data/examples/xmi/Images/EAID_C37CFBD6_69BA_42fb_9AC7_2D329D931BCF.svg +0 -171
  210. data/examples/xmi/Images/EAID_C857C934_306F_463a_87D5_257CB225ECFE.svg +0 -174
  211. data/examples/xmi/Images/EAID_C96797DE_2238_42d3_896A_9F92500270ED.svg +0 -180
  212. data/examples/xmi/Images/EAID_C96CBC24_B20E_459a_8F9D_75B61CDCB89F.svg +0 -656
  213. data/examples/xmi/Images/EAID_CACB523D_56A5_4f05_B3C2_51BB18F380FD.svg +0 -158
  214. data/examples/xmi/Images/EAID_CB34B578_101B_48b4_9271_214FFEA6A83A.svg +0 -409
  215. data/examples/xmi/Images/EAID_CBBD6CF4_0A1E_4406_9930_89DE43527910.svg +0 -361
  216. data/examples/xmi/Images/EAID_CC06A828_3750_472f_8DB2_C2E0863FCE17.svg +0 -96
  217. data/examples/xmi/Images/EAID_CD5CF053_1772_4a0f_962D_B17054D8EEAA.svg +0 -173
  218. data/examples/xmi/Images/EAID_CE440B5A_9534_4c75_9BA5_50862BB396C2.svg +0 -97
  219. data/examples/xmi/Images/EAID_CE4734FC_7986_4b3a_807F_A5B2C7EDE9E4.svg +0 -193
  220. data/examples/xmi/Images/EAID_D14AA320_9D41_4366_8739_9C2C21F96AE1.svg +0 -32
  221. data/examples/xmi/Images/EAID_D2FA55D3_C733_4a4d_92D0_0BC7AC0BB5BC.svg +0 -108
  222. data/examples/xmi/Images/EAID_D351FC34_FB03_488d_ADA4_BDB93DA9CB02.svg +0 -49
  223. data/examples/xmi/Images/EAID_D368FDF3_BDC5_4718_A701_351C8587A376.svg +0 -592
  224. data/examples/xmi/Images/EAID_D4DA8C48_3998_450d_87C4_9D65C9FECDB4.svg +0 -42
  225. data/examples/xmi/Images/EAID_D5464ECF_290E_4b2b_A6C4_25BE80F886CB.svg +0 -76
  226. data/examples/xmi/Images/EAID_D55235B0_61E9_461a_8379_2B8BF2403BE2.svg +0 -147
  227. data/examples/xmi/Images/EAID_D555ED73_F010_45d7_8A53_45A33C64C249.svg +0 -318
  228. data/examples/xmi/Images/EAID_D7AAC526_267E_45a0_A853_3207F02363F8.svg +0 -45
  229. data/examples/xmi/Images/EAID_D998B20D_A875_4ef8_A9CE_996BE56602BD.svg +0 -158
  230. data/examples/xmi/Images/EAID_DBFA8B39_F5B7_4c0e_9552_19AEAE5BA64E.svg +0 -200
  231. data/examples/xmi/Images/EAID_DE47A47D_E7BE_4e6f_BA81_F789EE8CFE72.svg +0 -61
  232. data/examples/xmi/Images/EAID_DFBB1072_8EC5_4384_8241_7EDF4B6B888B.svg +0 -78
  233. data/examples/xmi/Images/EAID_E325B9D8_E955_4aed_8125_63167BD40320.svg +0 -67
  234. data/examples/xmi/Images/EAID_E32D9D02_CAE9_4a47_92A8_3290EDCD6E6D.svg +0 -79
  235. data/examples/xmi/Images/EAID_E3B28611_7857_458a_B0BC_736E777B88EC.svg +0 -194
  236. data/examples/xmi/Images/EAID_E43C37EC_1176_4d2e_8B98_B6F3DFF6A092.svg +0 -96
  237. data/examples/xmi/Images/EAID_E591C1CF_7F35_4160_8A72_DFA097AD5811.svg +0 -271
  238. data/examples/xmi/Images/EAID_E77C66A2_2E94_4196_BFC6_662FE5AEEB6F.svg +0 -332
  239. data/examples/xmi/Images/EAID_E7AABA98_2450_4986_9736_DCCAF0108C50.svg +0 -639
  240. data/examples/xmi/Images/EAID_E7D9A2C4_72D6_40b9_8EB8_6B35476246B3.svg +0 -134
  241. data/examples/xmi/Images/EAID_E9CDAD85_ECF1_43de_819F_30A0D01785E6.svg +0 -193
  242. data/examples/xmi/Images/EAID_EC8AF507_F441_4e8a_B8A7_C1690F3C7D0B.svg +0 -58
  243. data/examples/xmi/Images/EAID_ED501058_D540_47ac_8EBC_5921E8C0BF57.svg +0 -384
  244. data/examples/xmi/Images/EAID_EFBF5F0F_DF74_4944_8791_114F5637C335.svg +0 -590
  245. data/examples/xmi/Images/EAID_EFFFA027_2A1F_425c_8437_BF89AADC8893.svg +0 -365
  246. data/examples/xmi/Images/EAID_F07E7718_B2C2_4a65_B5DD_477CB73E971E.svg +0 -165
  247. data/examples/xmi/Images/EAID_F0F20BDF_C729_47f7_B6FC_25ED2C4609CA.svg +0 -61
  248. data/examples/xmi/Images/EAID_F32E5AFE_8605_4c77_AE69_D0D0A6E380AC.svg +0 -76
  249. data/examples/xmi/Images/EAID_F3F00F45_CD37_46fd_B521_D1040EB2FB16.svg +0 -123
  250. data/examples/xmi/Images/EAID_F46E8F19_D8F1_4a3d_B87B_B0BAB4F50F50.svg +0 -202
  251. data/examples/xmi/Images/EAID_F48E5F6E_2411_4635_9315_3EAA4CFA29F7.svg +0 -351
  252. data/examples/xmi/Images/EAID_F4C23F9E_DD74_4fed_B75D_AD3C6448BA24.svg +0 -189
  253. data/examples/xmi/Images/EAID_F853B3C4_B145_4ef0_B261_C3CC0475B6D2.svg +0 -215
  254. data/examples/xmi/Images/EAID_F8BE68CA_1F8F_47e5_9454_01A2EB7D388A.svg +0 -124
  255. data/examples/xmi/Images/EAID_F92A6A28_612E_468e_9E39_D7AE7D24E24D.svg +0 -208
  256. data/examples/xmi/Images/EAID_F995FA49_B86E_4c94_BE5E_C928FB6B87D0.svg +0 -302
  257. data/examples/xmi/Images/EAID_FEAE013A_A4E4_4283_A491_1FEB8D0EBA28.svg +0 -524
  258. data/examples/xmi/Images/EAID_FEBE5726_3751_470b_9023_8C569202E97E.svg +0 -730
  259. data/examples/xmi/UML_EA.DTD +0 -6856
  260. data/examples/xmi/UmlModel_template.xmi +0 -23
  261. data/examples/xmi/basic.xmi +0 -9086
  262. data/examples/xmi/simple.xmi +0 -655
  263. data/examples/xmi/simple_example.xmi +0 -23
  264. data/examples/xmi/test.xmi +0 -1703
  265. data/exe/lutaml +0 -11
  266. data/exe/lutaml-sysml +0 -22
  267. data/exe/lutaml-wsd2uml +0 -63
  268. data/exe/lutaml-yaml2uml +0 -146
  269. data/lib/lutaml/cli/element_identifier.rb +0 -160
  270. data/lib/lutaml/cli/enhanced_formatter.rb +0 -494
  271. data/lib/lutaml/cli/interactive_shell/bookmark_commands.rb +0 -85
  272. data/lib/lutaml/cli/interactive_shell/command_base.rb +0 -32
  273. data/lib/lutaml/cli/interactive_shell/export_handler.rb +0 -73
  274. data/lib/lutaml/cli/interactive_shell/help_display.rb +0 -107
  275. data/lib/lutaml/cli/interactive_shell/navigation_commands.rb +0 -151
  276. data/lib/lutaml/cli/interactive_shell/query_commands.rb +0 -208
  277. data/lib/lutaml/cli/interactive_shell.rb +0 -254
  278. data/lib/lutaml/cli/lml_commands.rb +0 -205
  279. data/lib/lutaml/cli/output_formatter.rb +0 -348
  280. data/lib/lutaml/cli/resource_registry.rb +0 -127
  281. data/lib/lutaml/cli/tree_view_formatter.rb +0 -312
  282. data/lib/lutaml/cli/uml/build_command.rb +0 -466
  283. data/lib/lutaml/cli/uml/diagram_command.rb +0 -415
  284. data/lib/lutaml/cli/uml/export_command.rb +0 -77
  285. data/lib/lutaml/cli/uml/find_command.rb +0 -119
  286. data/lib/lutaml/cli/uml/info_command.rb +0 -103
  287. data/lib/lutaml/cli/uml/inspect_command.rb +0 -85
  288. data/lib/lutaml/cli/uml/ls_command.rb +0 -102
  289. data/lib/lutaml/cli/uml/repl_command.rb +0 -49
  290. data/lib/lutaml/cli/uml/search_command.rb +0 -85
  291. data/lib/lutaml/cli/uml/serve_command.rb +0 -58
  292. data/lib/lutaml/cli/uml/shared_helpers.rb +0 -49
  293. data/lib/lutaml/cli/uml/spa_command.rb +0 -208
  294. data/lib/lutaml/cli/uml/stats_command.rb +0 -57
  295. data/lib/lutaml/cli/uml/tree_command.rb +0 -82
  296. data/lib/lutaml/cli/uml/validate_command.rb +0 -190
  297. data/lib/lutaml/cli/uml/verify_command.rb +0 -103
  298. data/lib/lutaml/cli/uml.rb +0 -24
  299. data/lib/lutaml/cli/uml_commands.rb +0 -145
  300. data/lib/lutaml/cli.rb +0 -84
  301. data/lib/lutaml/converter/dsl_to_uml.rb +0 -237
  302. data/lib/lutaml/converter/xmi_to_uml.rb +0 -329
  303. data/lib/lutaml/converter/xmi_to_uml_generalization.rb +0 -193
  304. data/lib/lutaml/converter.rb +0 -10
  305. data/lib/lutaml/ea/diagram/configuration.rb +0 -379
  306. data/lib/lutaml/ea/diagram/element_renderers/base_renderer.rb +0 -81
  307. data/lib/lutaml/ea/diagram/element_renderers/class_renderer.rb +0 -328
  308. data/lib/lutaml/ea/diagram/element_renderers/connector_renderer.rb +0 -53
  309. data/lib/lutaml/ea/diagram/element_renderers/package_renderer.rb +0 -67
  310. data/lib/lutaml/ea/diagram/element_renderers.rb +0 -18
  311. data/lib/lutaml/ea/diagram/extractor.rb +0 -562
  312. data/lib/lutaml/ea/diagram/layout_engine.rb +0 -249
  313. data/lib/lutaml/ea/diagram/path_builder.rb +0 -256
  314. data/lib/lutaml/ea/diagram/style_parser.rb +0 -315
  315. data/lib/lutaml/ea/diagram/style_resolver.rb +0 -281
  316. data/lib/lutaml/ea/diagram/svg_renderer.rb +0 -279
  317. data/lib/lutaml/ea/diagram/util.rb +0 -69
  318. data/lib/lutaml/ea/diagram.rb +0 -62
  319. data/lib/lutaml/ea.rb +0 -7
  320. data/lib/lutaml/formatter/base.rb +0 -63
  321. data/lib/lutaml/formatter/graphviz.rb +0 -374
  322. data/lib/lutaml/formatter.rb +0 -20
  323. data/lib/lutaml/layout/engine.rb +0 -17
  324. data/lib/lutaml/layout/graph_viz_engine.rb +0 -19
  325. data/lib/lutaml/layout.rb +0 -8
  326. data/lib/lutaml/model_transformations/configuration.rb +0 -333
  327. data/lib/lutaml/model_transformations/format_registry.rb +0 -392
  328. data/lib/lutaml/model_transformations/parsers/base_parser.rb +0 -464
  329. data/lib/lutaml/model_transformations/parsers/qea_parser.rb +0 -450
  330. data/lib/lutaml/model_transformations/parsers/xmi_parser.rb +0 -289
  331. data/lib/lutaml/model_transformations/transformation_engine.rb +0 -405
  332. data/lib/lutaml/model_transformations.rb +0 -143
  333. data/lib/lutaml/qea/benchmark.rb +0 -210
  334. data/lib/lutaml/qea/database.rb +0 -270
  335. data/lib/lutaml/qea/factory/association_builder.rb +0 -203
  336. data/lib/lutaml/qea/factory/association_transformer.rb +0 -107
  337. data/lib/lutaml/qea/factory/attribute_tag_transformer.rb +0 -57
  338. data/lib/lutaml/qea/factory/attribute_transformer.rb +0 -93
  339. data/lib/lutaml/qea/factory/base_transformer.rb +0 -127
  340. data/lib/lutaml/qea/factory/class_transformer.rb +0 -164
  341. data/lib/lutaml/qea/factory/constraint_transformer.rb +0 -75
  342. data/lib/lutaml/qea/factory/data_type_transformer.rb +0 -133
  343. data/lib/lutaml/qea/factory/diagram_transformer.rb +0 -157
  344. data/lib/lutaml/qea/factory/document_builder.rb +0 -273
  345. data/lib/lutaml/qea/factory/ea_to_uml_factory.rb +0 -243
  346. data/lib/lutaml/qea/factory/enum_transformer.rb +0 -88
  347. data/lib/lutaml/qea/factory/generalization_builder.rb +0 -236
  348. data/lib/lutaml/qea/factory/generalization_transformer.rb +0 -98
  349. data/lib/lutaml/qea/factory/instance_transformer.rb +0 -84
  350. data/lib/lutaml/qea/factory/object_property_transformer.rb +0 -58
  351. data/lib/lutaml/qea/factory/operation_transformer.rb +0 -66
  352. data/lib/lutaml/qea/factory/package_transformer.rb +0 -208
  353. data/lib/lutaml/qea/factory/reference_resolver.rb +0 -99
  354. data/lib/lutaml/qea/factory/stereotype_loader.rb +0 -40
  355. data/lib/lutaml/qea/factory/tagged_value_transformer.rb +0 -38
  356. data/lib/lutaml/qea/factory/transformer_registry.rb +0 -77
  357. data/lib/lutaml/qea/factory.rb +0 -37
  358. data/lib/lutaml/qea/file_detector.rb +0 -178
  359. data/lib/lutaml/qea/infrastructure/database_connection.rb +0 -100
  360. data/lib/lutaml/qea/infrastructure/schema_reader.rb +0 -136
  361. data/lib/lutaml/qea/infrastructure/table_reader.rb +0 -224
  362. data/lib/lutaml/qea/infrastructure.rb +0 -12
  363. data/lib/lutaml/qea/models/base_model.rb +0 -48
  364. data/lib/lutaml/qea/models/ea_attribute.rb +0 -133
  365. data/lib/lutaml/qea/models/ea_attribute_tag.rb +0 -107
  366. data/lib/lutaml/qea/models/ea_complexity_type.rb +0 -79
  367. data/lib/lutaml/qea/models/ea_connector.rb +0 -160
  368. data/lib/lutaml/qea/models/ea_connector_type.rb +0 -60
  369. data/lib/lutaml/qea/models/ea_constraint_type.rb +0 -63
  370. data/lib/lutaml/qea/models/ea_datatype.rb +0 -104
  371. data/lib/lutaml/qea/models/ea_diagram.rb +0 -115
  372. data/lib/lutaml/qea/models/ea_diagram_link.rb +0 -78
  373. data/lib/lutaml/qea/models/ea_diagram_object.rb +0 -84
  374. data/lib/lutaml/qea/models/ea_diagram_type.rb +0 -56
  375. data/lib/lutaml/qea/models/ea_document.rb +0 -66
  376. data/lib/lutaml/qea/models/ea_object.rb +0 -206
  377. data/lib/lutaml/qea/models/ea_object_constraint.rb +0 -60
  378. data/lib/lutaml/qea/models/ea_object_property.rb +0 -94
  379. data/lib/lutaml/qea/models/ea_object_type.rb +0 -73
  380. data/lib/lutaml/qea/models/ea_operation.rb +0 -151
  381. data/lib/lutaml/qea/models/ea_operation_param.rb +0 -71
  382. data/lib/lutaml/qea/models/ea_package.rb +0 -73
  383. data/lib/lutaml/qea/models/ea_script.rb +0 -67
  384. data/lib/lutaml/qea/models/ea_status_type.rb +0 -66
  385. data/lib/lutaml/qea/models/ea_stereotype.rb +0 -57
  386. data/lib/lutaml/qea/models/ea_tagged_value.rb +0 -103
  387. data/lib/lutaml/qea/models/ea_xref.rb +0 -172
  388. data/lib/lutaml/qea/models.rb +0 -35
  389. data/lib/lutaml/qea/parser.rb +0 -57
  390. data/lib/lutaml/qea/repositories/base_repository.rb +0 -215
  391. data/lib/lutaml/qea/repositories/object_repository.rb +0 -219
  392. data/lib/lutaml/qea/repositories.rb +0 -10
  393. data/lib/lutaml/qea/services/configuration.rb +0 -211
  394. data/lib/lutaml/qea/services/database_loader.rb +0 -186
  395. data/lib/lutaml/qea/services.rb +0 -10
  396. data/lib/lutaml/qea/validation/association_validator.rb +0 -73
  397. data/lib/lutaml/qea/validation/attribute_validator.rb +0 -101
  398. data/lib/lutaml/qea/validation/base_validator.rb +0 -312
  399. data/lib/lutaml/qea/validation/class_validator.rb +0 -121
  400. data/lib/lutaml/qea/validation/database/circular_reference_validator.rb +0 -109
  401. data/lib/lutaml/qea/validation/database/orphan_validator.rb +0 -153
  402. data/lib/lutaml/qea/validation/database/referential_integrity_validator.rb +0 -128
  403. data/lib/lutaml/qea/validation/database.rb +0 -10
  404. data/lib/lutaml/qea/validation/diagram_validator.rb +0 -112
  405. data/lib/lutaml/qea/validation/formatters/json_formatter.rb +0 -137
  406. data/lib/lutaml/qea/validation/formatters/text_formatter.rb +0 -235
  407. data/lib/lutaml/qea/validation/operation_validator.rb +0 -79
  408. data/lib/lutaml/qea/validation/package_validator.rb +0 -111
  409. data/lib/lutaml/qea/validation/validation_engine.rb +0 -477
  410. data/lib/lutaml/qea/validation/validation_message.rb +0 -144
  411. data/lib/lutaml/qea/validation/validation_result.rb +0 -210
  412. data/lib/lutaml/qea/validation/validator_registry.rb +0 -134
  413. data/lib/lutaml/qea/validation.rb +0 -27
  414. data/lib/lutaml/qea/verification/comparison_result.rb +0 -264
  415. data/lib/lutaml/qea/verification/document_normalizer.rb +0 -169
  416. data/lib/lutaml/qea/verification/document_verifier.rb +0 -323
  417. data/lib/lutaml/qea/verification/element_comparator.rb +0 -277
  418. data/lib/lutaml/qea/verification/structure_matcher.rb +0 -287
  419. data/lib/lutaml/qea/verification.rb +0 -14
  420. data/lib/lutaml/qea.rb +0 -225
  421. data/lib/lutaml/uml/abstraction.rb +0 -11
  422. data/lib/lutaml/uml/action.rb +0 -15
  423. data/lib/lutaml/uml/activity.rb +0 -11
  424. data/lib/lutaml/uml/actor.rb +0 -11
  425. data/lib/lutaml/uml/association.rb +0 -35
  426. data/lib/lutaml/uml/association_generalization.rb +0 -18
  427. data/lib/lutaml/uml/behavior.rb +0 -11
  428. data/lib/lutaml/uml/cardinality.rb +0 -10
  429. data/lib/lutaml/uml/class.rb +0 -50
  430. data/lib/lutaml/uml/classifier.rb +0 -17
  431. data/lib/lutaml/uml/comment.rb +0 -13
  432. data/lib/lutaml/uml/connector.rb +0 -18
  433. data/lib/lutaml/uml/connector_end.rb +0 -20
  434. data/lib/lutaml/uml/constraint.rb +0 -22
  435. data/lib/lutaml/uml/data_type.rb +0 -54
  436. data/lib/lutaml/uml/dependency.rb +0 -18
  437. data/lib/lutaml/uml/diagram.rb +0 -23
  438. data/lib/lutaml/uml/diagram_link.rb +0 -26
  439. data/lib/lutaml/uml/diagram_object.rb +0 -30
  440. data/lib/lutaml/uml/document.rb +0 -62
  441. data/lib/lutaml/uml/enum.rb +0 -19
  442. data/lib/lutaml/uml/event.rb +0 -11
  443. data/lib/lutaml/uml/fidelity.rb +0 -10
  444. data/lib/lutaml/uml/final_state.rb +0 -11
  445. data/lib/lutaml/uml/fontname.rb +0 -13
  446. data/lib/lutaml/uml/general_attribute.rb +0 -22
  447. data/lib/lutaml/uml/generalization.rb +0 -35
  448. data/lib/lutaml/uml/group.rb +0 -19
  449. data/lib/lutaml/uml/has_attributes.rb +0 -14
  450. data/lib/lutaml/uml/has_members.rb +0 -30
  451. data/lib/lutaml/uml/inheritance_walker.rb +0 -96
  452. data/lib/lutaml/uml/instance.rb +0 -15
  453. data/lib/lutaml/uml/model.rb +0 -13
  454. data/lib/lutaml/uml/model_helpers.rb +0 -93
  455. data/lib/lutaml/uml/namespace.rb +0 -10
  456. data/lib/lutaml/uml/node/attribute.rb +0 -30
  457. data/lib/lutaml/uml/node/base.rb +0 -19
  458. data/lib/lutaml/uml/node/class_node.rb +0 -48
  459. data/lib/lutaml/uml/node/class_relationship.rb +0 -11
  460. data/lib/lutaml/uml/node/document.rb +0 -15
  461. data/lib/lutaml/uml/node/has_name.rb +0 -15
  462. data/lib/lutaml/uml/node/has_type.rb +0 -15
  463. data/lib/lutaml/uml/node/method_argument.rb +0 -12
  464. data/lib/lutaml/uml/node/operation.rb +0 -23
  465. data/lib/lutaml/uml/node/relationship.rb +0 -22
  466. data/lib/lutaml/uml/opaque_behavior.rb +0 -11
  467. data/lib/lutaml/uml/operation.rb +0 -21
  468. data/lib/lutaml/uml/operation_parameter.rb +0 -17
  469. data/lib/lutaml/uml/package.rb +0 -31
  470. data/lib/lutaml/uml/package_path.rb +0 -235
  471. data/lib/lutaml/uml/parsers/attribute.rb +0 -68
  472. data/lib/lutaml/uml/parsers/dsl.rb +0 -415
  473. data/lib/lutaml/uml/parsers/dsl_preprocessor.rb +0 -63
  474. data/lib/lutaml/uml/parsers/dsl_transform.rb +0 -27
  475. data/lib/lutaml/uml/parsers/yaml.rb +0 -23
  476. data/lib/lutaml/uml/port.rb +0 -8
  477. data/lib/lutaml/uml/primitive_type.rb +0 -13
  478. data/lib/lutaml/uml/property.rb +0 -25
  479. data/lib/lutaml/uml/pseudostate.rb +0 -11
  480. data/lib/lutaml/uml/qualified_name.rb +0 -175
  481. data/lib/lutaml/uml/realization.rb +0 -11
  482. data/lib/lutaml/uml/region.rb +0 -11
  483. data/lib/lutaml/uml/state.rb +0 -20
  484. data/lib/lutaml/uml/state_machine.rb +0 -11
  485. data/lib/lutaml/uml/tagged_value.rb +0 -21
  486. data/lib/lutaml/uml/top_element.rb +0 -83
  487. data/lib/lutaml/uml/top_element_attribute.rb +0 -62
  488. data/lib/lutaml/uml/transition.rb +0 -22
  489. data/lib/lutaml/uml/trigger.rb +0 -16
  490. data/lib/lutaml/uml/validation/document_structure_validator.rb +0 -387
  491. data/lib/lutaml/uml/value.rb +0 -35
  492. data/lib/lutaml/uml/vertex.rb +0 -11
  493. data/lib/lutaml/uml.rb +0 -113
  494. data/lib/lutaml/uml_repository/class_lookup_index.rb +0 -40
  495. data/lib/lutaml/uml_repository/error_handler.rb +0 -203
  496. data/lib/lutaml/uml_repository/exporters/base_exporter.rb +0 -61
  497. data/lib/lutaml/uml_repository/exporters/json_exporter.rb +0 -343
  498. data/lib/lutaml/uml_repository/exporters/markdown/class_page_builder.rb +0 -187
  499. data/lib/lutaml/uml_repository/exporters/markdown/formatting.rb +0 -34
  500. data/lib/lutaml/uml_repository/exporters/markdown/index_page_builder.rb +0 -81
  501. data/lib/lutaml/uml_repository/exporters/markdown/link_resolver.rb +0 -40
  502. data/lib/lutaml/uml_repository/exporters/markdown/package_page_builder.rb +0 -107
  503. data/lib/lutaml/uml_repository/exporters/markdown.rb +0 -20
  504. data/lib/lutaml/uml_repository/exporters/markdown_exporter.rb +0 -86
  505. data/lib/lutaml/uml_repository/index_builder.rb +0 -210
  506. data/lib/lutaml/uml_repository/index_builders/association_index.rb +0 -155
  507. data/lib/lutaml/uml_repository/index_builders/class_index.rb +0 -113
  508. data/lib/lutaml/uml_repository/index_builders/package_index.rb +0 -62
  509. data/lib/lutaml/uml_repository/index_builders.rb +0 -13
  510. data/lib/lutaml/uml_repository/lazy_repository.rb +0 -236
  511. data/lib/lutaml/uml_repository/package_exporter.rb +0 -334
  512. data/lib/lutaml/uml_repository/package_loader.rb +0 -240
  513. data/lib/lutaml/uml_repository/package_metadata.rb +0 -77
  514. data/lib/lutaml/uml_repository/presenters/association_presenter.rb +0 -79
  515. data/lib/lutaml/uml_repository/presenters/attribute_presenter.rb +0 -94
  516. data/lib/lutaml/uml_repository/presenters/class_presenter.rb +0 -72
  517. data/lib/lutaml/uml_repository/presenters/datatype_presenter.rb +0 -97
  518. data/lib/lutaml/uml_repository/presenters/diagram_presenter.rb +0 -469
  519. data/lib/lutaml/uml_repository/presenters/element_presenter.rb +0 -91
  520. data/lib/lutaml/uml_repository/presenters/enum_presenter.rb +0 -78
  521. data/lib/lutaml/uml_repository/presenters/package_presenter.rb +0 -48
  522. data/lib/lutaml/uml_repository/presenters/presenter_factory.rb +0 -74
  523. data/lib/lutaml/uml_repository/queries/association_query.rb +0 -184
  524. data/lib/lutaml/uml_repository/queries/base_query.rb +0 -45
  525. data/lib/lutaml/uml_repository/queries/class_query.rb +0 -178
  526. data/lib/lutaml/uml_repository/queries/diagram_query.rb +0 -108
  527. data/lib/lutaml/uml_repository/queries/inheritance_query.rb +0 -327
  528. data/lib/lutaml/uml_repository/queries/package_query.rb +0 -230
  529. data/lib/lutaml/uml_repository/queries/search_query.rb +0 -209
  530. data/lib/lutaml/uml_repository/query_dsl/conditions/base_condition.rb +0 -28
  531. data/lib/lutaml/uml_repository/query_dsl/conditions/block_condition.rb +0 -44
  532. data/lib/lutaml/uml_repository/query_dsl/conditions/hash_condition.rb +0 -82
  533. data/lib/lutaml/uml_repository/query_dsl/conditions/package_condition.rb +0 -89
  534. data/lib/lutaml/uml_repository/query_dsl/order.rb +0 -90
  535. data/lib/lutaml/uml_repository/query_dsl/query_builder.rb +0 -290
  536. data/lib/lutaml/uml_repository/repository/deprecated.rb +0 -39
  537. data/lib/lutaml/uml_repository/repository/loader.rb +0 -117
  538. data/lib/lutaml/uml_repository/repository.rb +0 -718
  539. data/lib/lutaml/uml_repository/repository_enhanced.rb +0 -431
  540. data/lib/lutaml/uml_repository/search_result.rb +0 -86
  541. data/lib/lutaml/uml_repository/static_site/association_serialization.rb +0 -77
  542. data/lib/lutaml/uml_repository/static_site/configuration.rb +0 -268
  543. data/lib/lutaml/uml_repository/static_site/data_transformer.rb +0 -121
  544. data/lib/lutaml/uml_repository/static_site/generator.rb +0 -434
  545. data/lib/lutaml/uml_repository/static_site/id_generator.rb +0 -115
  546. data/lib/lutaml/uml_repository/static_site/models/spa_association.rb +0 -29
  547. data/lib/lutaml/uml_repository/static_site/models/spa_association_end.rb +0 -25
  548. data/lib/lutaml/uml_repository/static_site/models/spa_attribute.rb +0 -39
  549. data/lib/lutaml/uml_repository/static_site/models/spa_base.rb +0 -12
  550. data/lib/lutaml/uml_repository/static_site/models/spa_cardinality.rb +0 -19
  551. data/lib/lutaml/uml_repository/static_site/models/spa_class.rb +0 -59
  552. data/lib/lutaml/uml_repository/static_site/models/spa_diagram.rb +0 -31
  553. data/lib/lutaml/uml_repository/static_site/models/spa_document.rb +0 -31
  554. data/lib/lutaml/uml_repository/static_site/models/spa_inherited_association.rb +0 -25
  555. data/lib/lutaml/uml_repository/static_site/models/spa_inherited_attribute.rb +0 -25
  556. data/lib/lutaml/uml_repository/static_site/models/spa_literal.rb +0 -19
  557. data/lib/lutaml/uml_repository/static_site/models/spa_metadata.rb +0 -23
  558. data/lib/lutaml/uml_repository/static_site/models/spa_operation.rb +0 -34
  559. data/lib/lutaml/uml_repository/static_site/models/spa_package.rb +0 -35
  560. data/lib/lutaml/uml_repository/static_site/models/spa_package_tree_node.rb +0 -32
  561. data/lib/lutaml/uml_repository/static_site/models/spa_parameter.rb +0 -21
  562. data/lib/lutaml/uml_repository/static_site/models/spa_search_entry.rb +0 -35
  563. data/lib/lutaml/uml_repository/static_site/models/spa_statistics.rb +0 -25
  564. data/lib/lutaml/uml_repository/static_site/models/spa_tree_class_ref.rb +0 -21
  565. data/lib/lutaml/uml_repository/static_site/models.rb +0 -46
  566. data/lib/lutaml/uml_repository/static_site/search_index_builder.rb +0 -239
  567. data/lib/lutaml/uml_repository/static_site/serializers/attribute_serializer.rb +0 -60
  568. data/lib/lutaml/uml_repository/static_site/serializers/class_serializer.rb +0 -123
  569. data/lib/lutaml/uml_repository/static_site/serializers/diagram_serializer.rb +0 -73
  570. data/lib/lutaml/uml_repository/static_site/serializers/inheritance_resolver.rb +0 -262
  571. data/lib/lutaml/uml_repository/static_site/serializers/metadata_builder.rb +0 -48
  572. data/lib/lutaml/uml_repository/static_site/serializers/operation_serializer.rb +0 -57
  573. data/lib/lutaml/uml_repository/static_site/serializers/package_serializer.rb +0 -79
  574. data/lib/lutaml/uml_repository/static_site/serializers/package_tree_builder.rb +0 -91
  575. data/lib/lutaml/uml_repository/static_site/serializers.rb +0 -26
  576. data/lib/lutaml/uml_repository/static_site.rb +0 -94
  577. data/lib/lutaml/uml_repository/statistics_calculator.rb +0 -342
  578. data/lib/lutaml/uml_repository/validators/repository_validator.rb +0 -392
  579. data/lib/lutaml/uml_repository/web_ui/app.rb +0 -161
  580. data/lib/lutaml/uml_repository/web_ui/public/app.js +0 -452
  581. data/lib/lutaml/uml_repository/web_ui/public/styles.css +0 -381
  582. data/lib/lutaml/uml_repository/web_ui/views/index.erb +0 -40
  583. data/lib/lutaml/uml_repository.rb +0 -117
  584. data/lib/lutaml/xmi/liquid_drops/association_drop.rb +0 -56
  585. data/lib/lutaml/xmi/liquid_drops/attribute_drop.rb +0 -72
  586. data/lib/lutaml/xmi/liquid_drops/cardinality_drop.rb +0 -35
  587. data/lib/lutaml/xmi/liquid_drops/connector_drop.rb +0 -54
  588. data/lib/lutaml/xmi/liquid_drops/constraint_drop.rb +0 -29
  589. data/lib/lutaml/xmi/liquid_drops/data_type_drop.rb +0 -63
  590. data/lib/lutaml/xmi/liquid_drops/dependency_drop.rb +0 -36
  591. data/lib/lutaml/xmi/liquid_drops/diagram_drop.rb +0 -34
  592. data/lib/lutaml/xmi/liquid_drops/enum_drop.rb +0 -49
  593. data/lib/lutaml/xmi/liquid_drops/enum_owned_literal_drop.rb +0 -25
  594. data/lib/lutaml/xmi/liquid_drops/generalization_attribute_drop.rb +0 -87
  595. data/lib/lutaml/xmi/liquid_drops/generalization_drop.rb +0 -127
  596. data/lib/lutaml/xmi/liquid_drops/klass_drop.rb +0 -191
  597. data/lib/lutaml/xmi/liquid_drops/operation_drop.rb +0 -29
  598. data/lib/lutaml/xmi/liquid_drops/package_drop.rb +0 -108
  599. data/lib/lutaml/xmi/liquid_drops/root_drop.rb +0 -34
  600. data/lib/lutaml/xmi/liquid_drops/source_target_drop.rb +0 -43
  601. data/lib/lutaml/xmi/parsers/xmi_base.rb +0 -301
  602. data/lib/lutaml/xmi/parsers/xmi_class_members.rb +0 -45
  603. data/lib/lutaml/xmi/parsers/xmi_connector.rb +0 -263
  604. data/lib/lutaml/xmi/parsers/xml.rb +0 -63
  605. data/lib/lutaml/xmi/xmi_lookup_service.rb +0 -40
  606. data/lib/lutaml/xmi.rb +0 -47
  607. data/templates/static_site/assets/images/lutaml-full.svg +0 -1
  608. data/templates/static_site/assets/images/lutaml-icon.svg +0 -1
  609. data/templates/static_site/assets/scripts/app.js +0 -45
  610. data/templates/static_site/assets/scripts/core/state.js +0 -446
  611. data/templates/static_site/assets/scripts/core/utils.js +0 -133
  612. data/templates/static_site/assets/scripts/ui/details.js +0 -74
  613. data/templates/static_site/assets/scripts/ui/diagrams.js +0 -345
  614. data/templates/static_site/assets/scripts/ui/search.js +0 -187
  615. data/templates/static_site/assets/scripts/ui/sidebar.js +0 -123
  616. data/templates/static_site/assets/styles/00-variables.css +0 -144
  617. data/templates/static_site/assets/styles/01-reset.css +0 -69
  618. data/templates/static_site/assets/styles/02-base.css +0 -144
  619. data/templates/static_site/assets/styles/03-layout.css +0 -121
  620. data/templates/static_site/assets/styles/04-components.css +0 -905
  621. data/templates/static_site/assets/styles/05-utilities.css +0 -23
  622. data/templates/static_site/assets/styles/06-diagrams.css +0 -74
  623. data/templates/static_site/components/class_details.liquid +0 -328
  624. data/templates/static_site/components/content.liquid +0 -481
  625. data/templates/static_site/components/diagram_list.liquid +0 -52
  626. data/templates/static_site/components/diagram_viewer.liquid +0 -71
  627. data/templates/static_site/components/header.liquid +0 -114
  628. data/templates/static_site/components/package_details.liquid +0 -119
  629. data/templates/static_site/components/sidebar.liquid +0 -76
  630. data/templates/static_site/components/tree_node.liquid +0 -81
  631. data/templates/static_site/multi_file.liquid +0 -49
  632. data/templates/static_site/single_file.liquid +0 -57
@@ -1,392 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Lutaml
4
- module ModelTransformations
5
- # Format Registry manages parser registration and discovery.
6
- #
7
- # This class implements the Registry pattern to provide a centralized
8
- # location for managing format parsers. It follows the Open/Closed Principle
9
- # by allowing new parsers to be registered without modifying existing code.
10
- #
11
- # @example Register a parser
12
- # registry = FormatRegistry.new
13
- # registry.register(".custom", MyCustomParser)
14
- #
15
- # @example Get parser for extension
16
- # parser_class = registry.parser_for_extension(".xmi")
17
- # parser = parser_class.new
18
- class FormatRegistry
19
- # @return [Hash<String, Class>] Map of extensions to parser classes
20
- attr_reader :parsers
21
-
22
- def initialize
23
- @parsers = {}
24
- @extensions = []
25
- @default_parsers_loaded = false
26
- end
27
-
28
- # Register a parser for a file extension
29
- #
30
- # @param extension [String] File extension (e.g., ".xmi", ".qea")
31
- # @param parser_class [Class] Parser class implementing BaseParser
32
- # interface
33
- # @raise [ArgumentError] if extension or parser_class is invalid
34
- def register(extension, parser_class) # rubocop:disable Metrics/MethodLength
35
- if extension.is_a?(Array)
36
- extension.each { |ext| register(ext, parser_class) }
37
- return
38
- end
39
-
40
- validate_extension!(extension)
41
- validate_parser_class!(parser_class)
42
-
43
- normalized_ext = normalize_extension(extension)
44
- @parsers[normalized_ext] = parser_class
45
- unless @extensions.include?(normalized_ext)
46
- @extensions << normalized_ext
47
- end
48
- end
49
-
50
- # Unregister a parser for a file extension
51
- #
52
- # @param extension [String] File extension to unregister
53
- # @return [Class, nil] The unregistered parser class, or nil if not found
54
- def unregister(extension)
55
- normalized_ext = normalize_extension(extension)
56
- @extensions.delete(normalized_ext)
57
- @parsers.delete(normalized_ext)
58
- end
59
-
60
- # Auto-register a parser class based on its supported extensions
61
- #
62
- # @param parser_class [Class] Parser class inherited from BaseParser
63
- # @return [void]
64
- def auto_register_from_parser(parser_class)
65
- supported_extensions = ""
66
- if parser_class.method_defined?(:supported_extensions)
67
- supported_extensions = parser_class.new.supported_extensions
68
- end
69
- register(supported_extensions, parser_class)
70
- end
71
-
72
- # Get parser class for a file extension
73
- #
74
- # @param extension [String] File extension (e.g., ".xmi", ".qea")
75
- # @return [Class, nil] Parser class, or nil if not found
76
- def parser_for_extension(extension)
77
- # ensure_default_parsers_loaded!
78
- normalized_ext = normalize_extension(extension)
79
- @parsers[normalized_ext]
80
- end
81
-
82
- # Get parser class for a file path
83
- #
84
- # @param file_path [String] Path to the file
85
- # @return [Class, nil] Parser class, or nil if not found
86
- def parser_for_file(file_path)
87
- extension = File.extname(file_path)
88
- parser_for_extension(extension)
89
- end
90
-
91
- # Check if an extension is supported
92
- #
93
- # @param extension [String] File extension to check
94
- # @return [Boolean] true if extension is supported
95
- def supports_extension?(extension)
96
- parser_for_extension(extension) != nil
97
- end
98
-
99
- # Check if a file is supported
100
- #
101
- # @param file_path [String] Path to the file
102
- # @return [Boolean] true if file format is supported
103
- def supports_file?(file_path)
104
- parser_for_file(file_path) != nil
105
- end
106
-
107
- # Get all supported extensions
108
- #
109
- # @return [Array<String>] List of supported file extensions
110
- def supported_extensions
111
- # ensure_default_parsers_loaded!
112
- @parsers.keys.sort
113
- end
114
-
115
- # Get all registered parsers
116
- #
117
- # @return [Hash<String, Class>] Map of extensions to parser classes
118
- def all_parsers
119
- # ensure_default_parsers_loaded!
120
- @parsers.dup
121
- end
122
-
123
- # Get parsers sorted by priority (highest first)
124
- #
125
- # @return [Array<Array(String, Class)>] List of [extension, parser_class]
126
- def parsers_by_priority
127
- @parsers.sort_by do |_ext, parser_class|
128
- if parser_class.method_defined?(:priority)
129
- parser_class.new.priority
130
- else
131
- 100
132
- end
133
- end.reverse
134
- end
135
-
136
- # Get all registered extensions
137
- #
138
- # @return [Array<String>] List of registered extensions
139
- def all_extensions
140
- @extensions.dup
141
- end
142
-
143
- # Get statistics about registered parsers
144
- #
145
- # @return [Hash] Statistics hash
146
- def statistics # rubocop:disable Metrics/MethodLength
147
- parsers = @parsers.values.uniq
148
- total_parsers = parsers.size
149
- ext_size = @extensions.size
150
-
151
- {
152
- total_parsers: total_parsers,
153
- total_extensions: ext_size,
154
- extensions_per_parser: (ext_size.to_f / total_parsers).round(2),
155
- parser_details: parsers.map do |parser_class|
156
- {
157
- parser: parser_class,
158
- extensions: parser_class.new.supported_extensions,
159
- priority: parser_class.new.priority,
160
- format_name: parser_class.new.format_name,
161
- }
162
- end,
163
- }
164
- end
165
-
166
- def export_configuration # rubocop:disable Metrics/MethodLength
167
- {
168
- exported_at: Time.now,
169
- parsers: @parsers.map do |parser|
170
- _ext, parser_class = parser
171
-
172
- {
173
- parser_class: parser_class,
174
- extensions: parser_class.new.supported_extensions,
175
- priority: parser_class.new.priority,
176
- format: parser_class.new.format_name,
177
- }
178
- end,
179
- }
180
- end
181
-
182
- # Clear all registered parsers
183
- #
184
- # @return [void]
185
- def clear
186
- @extensions.clear
187
- @parsers.clear
188
- @default_parsers_loaded = false
189
- end
190
-
191
- # Load parsers from configuration
192
- #
193
- # @param configuration [Configuration] Configuration with parser
194
- # definitions
195
- # @return [void]
196
- def load_from_configuration(configuration)
197
- configuration.enabled_parsers.each do |parser_config|
198
- parser_class = constantize_parser_class(parser_config.parser_class)
199
- register(parser_config.extension, parser_class)
200
- rescue NameError => e
201
- warn "Warning: Could not load parser " \
202
- "#{parser_config.parser_class}: #{e.message}"
203
- end
204
- end
205
-
206
- # Create a new instance with default parsers loaded
207
- #
208
- # @return [FormatRegistry] New registry instance
209
- def self.with_defaults
210
- registry = new
211
- registry.load_default_parsers
212
- registry
213
- end
214
-
215
- # Load default parsers (called automatically when needed)
216
- #
217
- # @return [void]
218
- def load_default_parsers # rubocop:disable Metrics/MethodLength
219
- return if @default_parsers_loaded
220
-
221
- # Load XMI parser if available
222
- begin
223
- register(".xmi", Parsers::XmiParser)
224
- rescue LoadError
225
- # XMI parser not available, skip
226
- end
227
-
228
- # Load QEA parser if available
229
- begin
230
- register(".qea", Parsers::QeaParser)
231
- rescue LoadError
232
- # QEA parser not available, skip
233
- end
234
-
235
- @default_parsers_loaded = true
236
- end
237
-
238
- # Detect format by file content (magic bytes/signatures)
239
- #
240
- # @param file_path [String] Path to the file
241
- # @return [Class, nil] Parser class based on content detection
242
- def detect_by_content(file_path) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
243
- # ensure_default_parsers_loaded!
244
- unless File.exist?(file_path)
245
- raise ArgumentError, "#{file_path} does not exist!"
246
- end
247
-
248
- # Read first few bytes to detect format
249
- File.open(file_path, "rb") do |file|
250
- header = file.read(1024) # Read first 1KB
251
-
252
- return nil if header.nil? || header.empty?
253
-
254
- # Check header match for content patterns
255
- @parsers.each do |ext, parser_class|
256
- if parser_class.method_defined?(:content_patterns)
257
- parser_klass = parser_class.new
258
- parser_klass.content_patterns.each do |pattern|
259
- if header.match?(pattern)
260
- return parser_for_extension(ext)
261
- end
262
- end
263
- end
264
- end
265
-
266
- # Check for XML/XMI signatures
267
- if header.include?("<?xml") && header.include?("xmi:")
268
- ensure_default_parsers_loaded!
269
- return parser_for_extension(".xmi")
270
- end
271
-
272
- # Check for SQLite database signature (QEA files)
273
- if header[0..15] == "SQLite format 3\0"
274
- ensure_default_parsers_loaded!
275
- return parser_for_extension(".qea")
276
- end
277
- end
278
-
279
- nil
280
- end
281
-
282
- # Get the best parser for a file using multiple detection methods
283
- #
284
- # @param file_path [String] Path to the file
285
- # @param use_content_detection [Boolean] Whether to use content detection
286
- # @return [Class, nil] Best parser class for the file
287
- def best_parser_for_file(file_path, use_content_detection: true)
288
- # First try extension-based detection
289
- parser = parser_for_file(file_path)
290
- return parser if parser
291
-
292
- # Fall back to content detection if enabled
293
- if use_content_detection
294
- parser = detect_by_content(file_path)
295
- return parser if parser
296
- end
297
-
298
- nil
299
- end
300
-
301
- private
302
-
303
- # Ensure default parsers are loaded
304
- #
305
- # @return [void]
306
- def ensure_default_parsers_loaded!
307
- load_default_parsers unless @default_parsers_loaded
308
- end
309
-
310
- # Normalize file extension to lowercase with leading dot
311
- #
312
- # @param extension [String] File extension
313
- # @return [String] Normalized extension
314
- def normalize_extension(extension)
315
- ext = extension.to_s.downcase
316
- ext = ".#{ext}" unless ext.start_with?(".")
317
- ext
318
- end
319
-
320
- # Validate file extension format
321
- #
322
- # @param extension [String] Extension to validate
323
- # @raise [ArgumentError] if extension is invalid
324
- def validate_extension!(extension)
325
- if extension.nil? || extension.empty?
326
- raise ArgumentError, "Extension cannot be nil or empty"
327
- end
328
-
329
- normalized = normalize_extension(extension)
330
- unless normalized.match?(/^\.[a-z0-9]+(.[a-z0-9]+)?/)
331
- raise ArgumentError, "Invalid extension format: #{extension}"
332
- end
333
- end
334
-
335
- # Validate parser class implements required interface
336
- #
337
- # @param parser_class [Class] Parser class to validate
338
- # @raise [ArgumentError] if parser class is invalid
339
- def validate_parser_class!(parser_class) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/MethodLength
340
- # Check if nil
341
- if parser_class.nil?
342
- raise ArgumentError, "Parser class cannot be nil"
343
- end
344
-
345
- # Check if it's a class
346
- unless parser_class.is_a?(Class)
347
- raise ArgumentError, "Parser must be a class"
348
- end
349
-
350
- # Check if class is a subclass of BaseParser
351
- unless parser_class < Parsers::BaseParser
352
- raise ArgumentError,
353
- "Parser class must inherit from BaseParser"
354
- end
355
-
356
- # Check if class responds to required methods
357
- required_methods = [:parse]
358
- missing_methods = required_methods.reject do |method|
359
- parser_class.method_defined?(method) ||
360
- parser_class.private_method_defined?(method)
361
- end
362
-
363
- # Check if any methods are missing
364
- unless missing_methods.empty?
365
- raise ArgumentError,
366
- "Parser class must implement methods: " \
367
- "#{missing_methods.join(', ')}"
368
- end
369
- end
370
-
371
- # Convert string class name to actual class constant
372
- #
373
- # @param class_name [String] Fully qualified class name
374
- # @return [Class] The class constant
375
- # @raise [NameError] if class cannot be found
376
- def constantize_parser_class(class_name)
377
- # Split class name into modules and class
378
- parts = class_name.split("::")
379
-
380
- # Start from root constant
381
- constant = Object
382
-
383
- # Navigate through nested modules/classes
384
- parts.each do |part|
385
- constant = constant.const_get(part)
386
- end
387
-
388
- constant
389
- end
390
- end
391
- end
392
- end