lutaml 0.10.19 → 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 (662) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +8 -1
  3. data/CLAUDE.md +26 -19
  4. data/Gemfile +14 -10
  5. data/Rakefile +6 -4
  6. data/lib/lutaml/version.rb +1 -1
  7. data/lib/lutaml.rb +3 -9
  8. data/lutaml.gemspec +2 -18
  9. metadata +5 -892
  10. data/Makefile +0 -2
  11. data/config/diagram_styles.yml +0 -200
  12. data/config/model_transformations.yml +0 -266
  13. data/config/package_metadata.example.yml +0 -58
  14. data/config/qea_schema.yml +0 -1024
  15. data/config/static_site.yml +0 -166
  16. data/examples/UML_EA.DTD +0 -6856
  17. data/examples/lur/20251010_current_plateau_v5.1.lur +0 -0
  18. data/examples/lur/basic.lur +0 -0
  19. data/examples/lur/test-output.lur +0 -0
  20. data/examples/lur/test.lur +0 -0
  21. data/examples/lur_basic_usage.rb +0 -220
  22. data/examples/lur_cli_workflow.rb +0 -262
  23. data/examples/lur_statistics.rb +0 -325
  24. data/examples/qea/20251010_current_plateau_v5.1.qea +0 -0
  25. data/examples/qea/ArcGISWorkspace_template.qea +0 -0
  26. data/examples/qea/README_qea_parser.adoc +0 -230
  27. data/examples/qea/UmlModel_template.qea +0 -0
  28. data/examples/qea/basic.qea +0 -0
  29. data/examples/qea/simple.qea +0 -0
  30. data/examples/qea/simple_example.qea +0 -0
  31. data/examples/qea/test.qea +0 -0
  32. data/examples/xmi/20251010_current_plateau_v5.1.xmi +0 -118121
  33. data/examples/xmi/ArcGISWorkspace_template.xmi +0 -1467
  34. data/examples/xmi/Images/EAID_0016F797_D055_4717_AF1A_606413D0A166.svg +0 -158
  35. data/examples/xmi/Images/EAID_00C5C772_5A03_434f_BF30_AC37542A1AAC.svg +0 -659
  36. data/examples/xmi/Images/EAID_0114FD24_9E58_4664_98CD_71305B59AD11.svg +0 -411
  37. data/examples/xmi/Images/EAID_01661E1B_31B6_4167_BCCF_A00678FB4EA2.svg +0 -102
  38. data/examples/xmi/Images/EAID_039FE004_5408_4fc0_89AA_EB319E4F61C7.svg +0 -169
  39. data/examples/xmi/Images/EAID_04EE9625_17A0_4721_BC71_21756DB21D06.svg +0 -403
  40. data/examples/xmi/Images/EAID_05FF9417_1619_4170_B0C9_55AA6B988EF1.svg +0 -175
  41. data/examples/xmi/Images/EAID_09853FB2_AF8A_432f_94C5_6C47461BD937.svg +0 -360
  42. data/examples/xmi/Images/EAID_09927B7F_A657_4819_99E5_AC9DC99227D9.svg +0 -195
  43. data/examples/xmi/Images/EAID_09AF6B8A_557C_43bc_BBB0_47C1E9401EF3.svg +0 -218
  44. data/examples/xmi/Images/EAID_0BE81AC5_031B_4973_A9A0_223CCD92BAA1.svg +0 -471
  45. data/examples/xmi/Images/EAID_0EDEA6EF_4DC8_4979_BB80_28B1B9EBD1D4.svg +0 -56
  46. data/examples/xmi/Images/EAID_0F413534_6AD2_48bc_B4AF_8699D530D91D.svg +0 -262
  47. data/examples/xmi/Images/EAID_1321F39B_AD67_47b5_B5C3_3A42BBFCBDF9.svg +0 -286
  48. data/examples/xmi/Images/EAID_13E09C71_99E7_40b4_B72D_48AF6379BC2E.svg +0 -164
  49. data/examples/xmi/Images/EAID_144955D8_CB4E_4b59_BB0C_E549F7F84943.svg +0 -66
  50. data/examples/xmi/Images/EAID_14E9F5FD_F6CD_4f48_B1CD_F5A40C6D8E83.svg +0 -95
  51. data/examples/xmi/Images/EAID_157826AA_96A7_4278_89A6_94BD0F31409A.svg +0 -63
  52. data/examples/xmi/Images/EAID_159E9DA0_7A54_4817_B72A_401C750F675D.svg +0 -306
  53. data/examples/xmi/Images/EAID_17BC8309_8051_492b_BE87_61CCFE83DB16.svg +0 -45
  54. data/examples/xmi/Images/EAID_1A10EB6D_E2E5_42a6_A31E_B293D93FD07E.svg +0 -193
  55. data/examples/xmi/Images/EAID_1A290AFD_CE96_46a2_8351_A986D77CC727.svg +0 -444
  56. data/examples/xmi/Images/EAID_1B2D9309_C66B_492a_995C_95B2B02E0D7C.svg +0 -168
  57. data/examples/xmi/Images/EAID_1DE6B973_CE8A_416f_909B_54CEA1E5944E.svg +0 -10
  58. data/examples/xmi/Images/EAID_204F4ACC_2230_4c8d_9861_EF5A6844B712.svg +0 -60
  59. data/examples/xmi/Images/EAID_227300E2_4F4B_4955_83B9_FA626CE8680B.svg +0 -188
  60. data/examples/xmi/Images/EAID_22C24D4C_4894_480a_B113_0CB034CB59E9.svg +0 -426
  61. data/examples/xmi/Images/EAID_234BC4F5_8100_4969_BDCB_A24E0E641F23.svg +0 -169
  62. data/examples/xmi/Images/EAID_24446BFC_9FEB_4935_8970_65A4C562A93F.svg +0 -277
  63. data/examples/xmi/Images/EAID_24E8A45C_C99F_49b7_860A_9CF65FF76C76.svg +0 -575
  64. data/examples/xmi/Images/EAID_272F3181_4300_48b7_98A0_A8CFD12B1A72.svg +0 -255
  65. data/examples/xmi/Images/EAID_292E0D94_392C_4da6_A0B5_841501FAE50A.svg +0 -183
  66. data/examples/xmi/Images/EAID_29DD0967_ADAB_4abb_99C5_544821F5E7DA.svg +0 -10
  67. data/examples/xmi/Images/EAID_2A339928_E5EF_4ed2_9E5D_CC2CA5CF248B.svg +0 -310
  68. data/examples/xmi/Images/EAID_2A5E0832_06BE_4381_85D4_9B00E4F95575.svg +0 -155
  69. data/examples/xmi/Images/EAID_2AAB709F_EFCE_496f_8AFE_92809D66A0A9.svg +0 -81
  70. data/examples/xmi/Images/EAID_2C8DD882_8DEA_4065_89F8_DDA796AA0C85.svg +0 -520
  71. data/examples/xmi/Images/EAID_2E98EA19_37D8_4b70_BDCE_CFEE4FA800B0.svg +0 -173
  72. data/examples/xmi/Images/EAID_30D62231_110F_44e8_9C06_6FCDCBA53A09.svg +0 -722
  73. data/examples/xmi/Images/EAID_3206D3FD_1FC4_41c7_8D00_36DB908E9319.svg +0 -181
  74. data/examples/xmi/Images/EAID_3452CC53_9ACB_44eb_9C9D_B90CF862F284.svg +0 -92
  75. data/examples/xmi/Images/EAID_348EE46E_ABD9_40b0_82A1_0285E75BDC52.svg +0 -187
  76. data/examples/xmi/Images/EAID_34FF671B_CFDC_47ad_91DF_ECA6D8358180.svg +0 -217
  77. data/examples/xmi/Images/EAID_359DD694_0100_4bdf_AD5F_712D97E9C69B.svg +0 -157
  78. data/examples/xmi/Images/EAID_35DE714C_49A8_490e_913A_56F39EF317F9.svg +0 -180
  79. data/examples/xmi/Images/EAID_360C79F1_8EDF_41db_A069_DECDC55625BC.svg +0 -31
  80. data/examples/xmi/Images/EAID_36913C58_FF35_4ba2_A04B_9A4824E24609.svg +0 -166
  81. data/examples/xmi/Images/EAID_372F7F7B_57ED_469a_A640_70DB578B3C56.svg +0 -361
  82. data/examples/xmi/Images/EAID_37AC19B9_8433_4fee_A326_763170D54D06.svg +0 -32
  83. data/examples/xmi/Images/EAID_38170608_32B5_4a6f_A68D_A0D7C0C9D019.svg +0 -234
  84. data/examples/xmi/Images/EAID_3A77A5D0_4E1B_4116_8AAD_407FC422B47F.svg +0 -183
  85. data/examples/xmi/Images/EAID_3B8BD087_1683_46b1_8D0D_6F839C46C578.svg +0 -42
  86. data/examples/xmi/Images/EAID_3DC20801_AE8B_4e76_B08C_F574E8A90E13.svg +0 -192
  87. data/examples/xmi/Images/EAID_3DE28C70_C6D4_406c_B49F_EEF52148C8C1.svg +0 -124
  88. data/examples/xmi/Images/EAID_458E093C_BA2B_4292_BEC4_37511C163DDC.svg +0 -140
  89. data/examples/xmi/Images/EAID_45F9B1F7_E568_47c9_B229_953BC2E707E4.svg +0 -266
  90. data/examples/xmi/Images/EAID_46B3041A_8C23_46e6_8E14_ADE7012274C5.svg +0 -80
  91. data/examples/xmi/Images/EAID_47E4600F_CEC9_4245_9BF5_EE38007A9DDB.svg +0 -584
  92. data/examples/xmi/Images/EAID_4881CEEE_792C_4cb0_BEA7_54333B643D0A.svg +0 -155
  93. data/examples/xmi/Images/EAID_48D364F0_DCA4_41e8_B4D4_509B3023B969.svg +0 -17
  94. data/examples/xmi/Images/EAID_4DBDAB9E_4C1C_4cb1_A767_06BD743A50A7.svg +0 -78
  95. data/examples/xmi/Images/EAID_4EB75007_B31D_4f2c_8855_7E9D3A3B17F4.svg +0 -454
  96. data/examples/xmi/Images/EAID_4F421236_FCF3_4aae_B22A_C7E6A5EFBAC7.svg +0 -81
  97. data/examples/xmi/Images/EAID_4FC1D352_2102_4b73_BCB0_1410B29C6BD7.svg +0 -379
  98. data/examples/xmi/Images/EAID_4FE346EA_01E1_4b30_8BE6_BB32EA191E47.svg +0 -126
  99. data/examples/xmi/Images/EAID_5038EEE3_7DD0_4cca_9829_364E044D37E8.svg +0 -199
  100. data/examples/xmi/Images/EAID_508A37DC_9378_4f5a_BD96_48F4D24E03A5.svg +0 -162
  101. data/examples/xmi/Images/EAID_516DA1A2_F0EC_415c_9664_E4CA54E7F05C.svg +0 -136
  102. data/examples/xmi/Images/EAID_52A1DBD3_D3DA_4b6d_8F96_FC6F39F64242.svg +0 -161
  103. data/examples/xmi/Images/EAID_575E87BA_32E9_4a84_AA4E_0EFDFC5D4C07.svg +0 -71
  104. data/examples/xmi/Images/EAID_57E0F1A0_6C72_47ef_B922_B806F9A875E8.svg +0 -209
  105. data/examples/xmi/Images/EAID_5957C373_3FC1_482f_8F35_D809153A17F5.svg +0 -123
  106. data/examples/xmi/Images/EAID_59A66AE2_412C_48a6_BFC7_EA56CF11D269.svg +0 -218
  107. data/examples/xmi/Images/EAID_5A43833E_680B_4a90_8931_0C902304E029.svg +0 -236
  108. data/examples/xmi/Images/EAID_5D6DB5A0_5047_4bac_9E60_69904A60B56D.svg +0 -353
  109. data/examples/xmi/Images/EAID_5DA1E7A7_8E59_4803_A831_E9F3EC27328F.svg +0 -242
  110. data/examples/xmi/Images/EAID_5E2C1E2A_82A8_47f4_B2ED_1398D72BFCFD.svg +0 -246
  111. data/examples/xmi/Images/EAID_6052620C_4BD5_49f6_A21C_AD7E6DCA2795.svg +0 -290
  112. data/examples/xmi/Images/EAID_6481E2CC_35A6_43b0_88D4_10A667A2BC2D.svg +0 -60
  113. data/examples/xmi/Images/EAID_660C7D03_A26C_4977_A7BA_9D0A773DA811.svg +0 -318
  114. data/examples/xmi/Images/EAID_671F3C3D_35B6_4514_B5B6_DD7E84925493.svg +0 -24
  115. data/examples/xmi/Images/EAID_676B9C9A_D85F_4d2f_A46B_73F02090DC87.svg +0 -127
  116. data/examples/xmi/Images/EAID_6797FEFA_5801_48e4_8B9C_3C824C0E165D.svg +0 -412
  117. data/examples/xmi/Images/EAID_6807F4EE_18EF_4e7e_ACCF_D5BD323AFDE9.svg +0 -130
  118. data/examples/xmi/Images/EAID_69E81E34_CF28_4c7f_A48F_5941BA85CEE3.svg +0 -96
  119. data/examples/xmi/Images/EAID_6A3C55E8_3C3C_4f3a_8AAC_0299C5B23070.svg +0 -10
  120. data/examples/xmi/Images/EAID_6BAC333E_E2C2_42c7_8DDF_6B4FA0FFC03B.svg +0 -143
  121. data/examples/xmi/Images/EAID_6D0349D5_3F1B_4b28_82D2_910743DEB5E5.svg +0 -114
  122. data/examples/xmi/Images/EAID_6E95B74E_8A09_4698_9E9E_23BCFD2CE194.svg +0 -37
  123. data/examples/xmi/Images/EAID_70C77F92_5614_4b22_8C8E_67859F59D8FD.svg +0 -254
  124. data/examples/xmi/Images/EAID_71F9216B_E7A7_4083_B08E_6C71B57F3A1F.svg +0 -187
  125. data/examples/xmi/Images/EAID_73025C5A_08FC_47ff_AB2F_C7F79CF54B41.svg +0 -145
  126. data/examples/xmi/Images/EAID_74C974B6_6D07_425d_B7AC_C8899E3B4967.svg +0 -76
  127. data/examples/xmi/Images/EAID_7504FCD2_524C_4e7d_BAE4_4E58A8A8A12C.svg +0 -196
  128. data/examples/xmi/Images/EAID_78030266_3603_4747_9D75_03D16614BE7D.svg +0 -35
  129. data/examples/xmi/Images/EAID_785226C1_12B1_4104_A4C1_F19B70B9FB71.svg +0 -348
  130. data/examples/xmi/Images/EAID_7854470F_26B8_4d3c_AFDF_C05BCE6ED0CD.svg +0 -72
  131. data/examples/xmi/Images/EAID_794F4A8F_18CA_4e9f_8477_A6F0E5ED22D4.svg +0 -187
  132. data/examples/xmi/Images/EAID_7A24839E_C8AE_424d_B7D2_6DA16DC813E7.svg +0 -114
  133. data/examples/xmi/Images/EAID_7A3649FD_E960_4ae6_B9B1_A9001C066AE7.svg +0 -181
  134. data/examples/xmi/Images/EAID_7B2C6765_AB68_439a_87F3_DAC323CB2AF5.svg +0 -196
  135. data/examples/xmi/Images/EAID_7C44AC09_27C1_47b3_9A85_88EC71C081FF.svg +0 -55
  136. data/examples/xmi/Images/EAID_7CE102CA_97C1_4cac_BD3B_0500D3712D2A.svg +0 -195
  137. data/examples/xmi/Images/EAID_7D960BD8_65D8_4934_9C11_4EF860DD8FBA.svg +0 -90
  138. data/examples/xmi/Images/EAID_80939C98_A456_48c3_BCEA_4B72851F2DF6.svg +0 -174
  139. data/examples/xmi/Images/EAID_812FE862_76ED_44f0_B678_7A4601B395CF.svg +0 -142
  140. data/examples/xmi/Images/EAID_81B76F5B_9D64_4bbf_8AC8_34234FB87533.svg +0 -740
  141. data/examples/xmi/Images/EAID_84352F1A_195B_411b_9552_5BFC40BF90B5.svg +0 -105
  142. data/examples/xmi/Images/EAID_846DD800_139C_4d47_A1DF_3FB1AC5D130F.svg +0 -554
  143. data/examples/xmi/Images/EAID_84A9C65B_FD6D_4bb5_818F_E8C35FF5BCD1.svg +0 -228
  144. data/examples/xmi/Images/EAID_853674F5_7DC9_4aae_809B_5728098B5D5B.svg +0 -154
  145. data/examples/xmi/Images/EAID_860CBBFB_2F27_408f_9144_751F9D1F487F.svg +0 -273
  146. data/examples/xmi/Images/EAID_87476527_7B9B_4b92_967E_3D38365470CA.svg +0 -239
  147. data/examples/xmi/Images/EAID_87DAE930_5069_4c58_AC65_4B0B2C0F32C8.svg +0 -10
  148. data/examples/xmi/Images/EAID_88AF6BD7_BC34_406f_BB59_47CFAB4A7D5D.svg +0 -116
  149. data/examples/xmi/Images/EAID_88D0CB44_20D0_44fc_A6E3_B663332EF401.svg +0 -200
  150. data/examples/xmi/Images/EAID_8BB1CA0C_C003_4678_973B_A1C3308E021D.svg +0 -136
  151. data/examples/xmi/Images/EAID_8DAB169F_D189_4320_A0F5_4443E3297F0E.svg +0 -181
  152. data/examples/xmi/Images/EAID_8FD488EF_BAAB_40ec_A7ED_F7CC831D546E.svg +0 -324
  153. data/examples/xmi/Images/EAID_90BCA409_BB45_42c5_AFA5_45FE3D995904.svg +0 -342
  154. data/examples/xmi/Images/EAID_926AFE38_01FA_469e_B6AA_ED5F4D62B66F.svg +0 -105
  155. data/examples/xmi/Images/EAID_92AB0FD0_B0FB_4ceb_8EAE_66B6600D31D7.svg +0 -681
  156. data/examples/xmi/Images/EAID_92C43670_3057_47f1_A576_C60843FF3D26.svg +0 -136
  157. data/examples/xmi/Images/EAID_93F63576_BE01_4cd8_8A91_C674FF77FC3D.svg +0 -718
  158. data/examples/xmi/Images/EAID_9400D9BC_05A5_41fc_83F7_02E5C67F9718.svg +0 -487
  159. data/examples/xmi/Images/EAID_95246DCF_1C09_4a16_9512_98000F56B3D8.svg +0 -292
  160. data/examples/xmi/Images/EAID_9994BF62_51E2_42cd_BB35_16C537B6718A.svg +0 -715
  161. data/examples/xmi/Images/EAID_9AAD6C21_B1E7_4472_B64A_FB5E3569D970.svg +0 -116
  162. data/examples/xmi/Images/EAID_9BD7189A_877B_4ca9_B42C_817DEF144FB2.svg +0 -284
  163. data/examples/xmi/Images/EAID_9DA6C553_94FC_4204_83AD_ECC4B45A53EF.svg +0 -159
  164. data/examples/xmi/Images/EAID_9EE6A41B_5FAA_4c89_B98F_732059778630.svg +0 -10
  165. data/examples/xmi/Images/EAID_9F1A4B54_46F6_435c_9529_E43E54CF6050.svg +0 -172
  166. data/examples/xmi/Images/EAID_9FE1EA7B_4CEF_4976_A281_93A94315BD84.svg +0 -153
  167. data/examples/xmi/Images/EAID_A0695647_6172_4262_8C30_67441399609C.svg +0 -290
  168. data/examples/xmi/Images/EAID_A081C63E_D6F2_41a7_A99C_307836754AFA.svg +0 -149
  169. data/examples/xmi/Images/EAID_A24E2778_5AD9_44f2_AB8F_5CD3913477D6.svg +0 -194
  170. data/examples/xmi/Images/EAID_A264F089_F9B3_406c_A3A8_FF34903797D3.svg +0 -143
  171. data/examples/xmi/Images/EAID_A282E5D1_2A13_4e7f_BC76_5D086DD4A577.svg +0 -357
  172. data/examples/xmi/Images/EAID_A3BCE1D6_9DB5_4272_A020_4C0E194B99CC.svg +0 -171
  173. data/examples/xmi/Images/EAID_A56E3818_D1B8_4b63_B69E_FBAC4A8AF482.svg +0 -218
  174. data/examples/xmi/Images/EAID_A57215D5_75C5_4532_BCF4_264A77CD62F1.svg +0 -204
  175. data/examples/xmi/Images/EAID_A59065AF_9669_486c_9582_9693177CFC7F.svg +0 -263
  176. data/examples/xmi/Images/EAID_A759374D_589A_488c_99EF_537ACB9B1FF9.svg +0 -398
  177. data/examples/xmi/Images/EAID_A7B25F46_F18A_4373_B16D_8C6AC0B868B0.svg +0 -174
  178. data/examples/xmi/Images/EAID_A9FE9E6F_A5F4_47e5_A6BA_26E22C7346B6.svg +0 -310
  179. data/examples/xmi/Images/EAID_AA62CDEB_55EC_498d_B326_4AA2C9AF6A05.svg +0 -144
  180. data/examples/xmi/Images/EAID_AAF52AF6_F7F9_4005_AE46_8920847BEA03.svg +0 -144
  181. data/examples/xmi/Images/EAID_AB281AC1_7CB8_404a_8124_34343DDD84E2.svg +0 -198
  182. data/examples/xmi/Images/EAID_AB7F1FDF_A66B_42a1_B8A3_7F594BAAD508.svg +0 -143
  183. data/examples/xmi/Images/EAID_AC2191E3_76E3_40b2_9E21_0E0B9B5277D2.svg +0 -114
  184. data/examples/xmi/Images/EAID_AD451676_A7C8_4c6a_A925_A9B9CA344142.svg +0 -339
  185. data/examples/xmi/Images/EAID_ADBA40A1_9375_4c1b_9938_0990612EB615.svg +0 -429
  186. data/examples/xmi/Images/EAID_ADC8773C_1B27_48ac_BAC1_14C1C919FAF6.svg +0 -245
  187. data/examples/xmi/Images/EAID_AE0718DF_AF69_4ea1_A099_E20028FE40A1.svg +0 -173
  188. data/examples/xmi/Images/EAID_B0DDB85D_A00C_4a7f_8C06_CCA15E5E4FE5.svg +0 -31
  189. data/examples/xmi/Images/EAID_B27ED282_D5E5_4f33_8AC1_62802F9E0B35.svg +0 -256
  190. data/examples/xmi/Images/EAID_B3AFECCB_17DD_44d6_8A44_2C38D9A64C0B.svg +0 -95
  191. data/examples/xmi/Images/EAID_B3B6C5B1_278E_4714_8244_B6C28B66AB50.svg +0 -176
  192. data/examples/xmi/Images/EAID_B53E76CD_A0F2_4e2f_B3AB_796D85964EF2.svg +0 -179
  193. data/examples/xmi/Images/EAID_B55D6E67_0BDD_4163_B359_11A6FBA89C74.svg +0 -207
  194. data/examples/xmi/Images/EAID_B58D1A53_E860_41a3_8352_11C274093E83.svg +0 -189
  195. data/examples/xmi/Images/EAID_B62C02B3_69DB_49e9_8089_4EE398BDE666.svg +0 -165
  196. data/examples/xmi/Images/EAID_BC008774_B539_4150_8174_B675989053D0.svg +0 -22
  197. data/examples/xmi/Images/EAID_BC1F7E00_082D_4a26_922B_3967A8D66859.svg +0 -266
  198. data/examples/xmi/Images/EAID_BDA613D8_402A_475a_AA15_683D88FD3D23.svg +0 -183
  199. data/examples/xmi/Images/EAID_C028B286_4C85_47d8_B6D5_80B28F556E82.svg +0 -303
  200. data/examples/xmi/Images/EAID_C173A6F4_1D1B_400e_AD8C_64FFF7CD5BE5.svg +0 -178
  201. data/examples/xmi/Images/EAID_C1834072_CADC_4ce4_B0FC_8284AE5CF4A4.svg +0 -158
  202. data/examples/xmi/Images/EAID_C1EC985B_5CBD_4e91_8661_EB4EF23781D9.svg +0 -286
  203. data/examples/xmi/Images/EAID_C31C1314_B679_4413_B8FE_A2CD584FC128.svg +0 -305
  204. data/examples/xmi/Images/EAID_C37CFBD6_69BA_42fb_9AC7_2D329D931BCF.svg +0 -171
  205. data/examples/xmi/Images/EAID_C857C934_306F_463a_87D5_257CB225ECFE.svg +0 -174
  206. data/examples/xmi/Images/EAID_C96797DE_2238_42d3_896A_9F92500270ED.svg +0 -180
  207. data/examples/xmi/Images/EAID_C96CBC24_B20E_459a_8F9D_75B61CDCB89F.svg +0 -656
  208. data/examples/xmi/Images/EAID_CACB523D_56A5_4f05_B3C2_51BB18F380FD.svg +0 -158
  209. data/examples/xmi/Images/EAID_CB34B578_101B_48b4_9271_214FFEA6A83A.svg +0 -409
  210. data/examples/xmi/Images/EAID_CBBD6CF4_0A1E_4406_9930_89DE43527910.svg +0 -361
  211. data/examples/xmi/Images/EAID_CC06A828_3750_472f_8DB2_C2E0863FCE17.svg +0 -96
  212. data/examples/xmi/Images/EAID_CD5CF053_1772_4a0f_962D_B17054D8EEAA.svg +0 -173
  213. data/examples/xmi/Images/EAID_CE440B5A_9534_4c75_9BA5_50862BB396C2.svg +0 -97
  214. data/examples/xmi/Images/EAID_CE4734FC_7986_4b3a_807F_A5B2C7EDE9E4.svg +0 -193
  215. data/examples/xmi/Images/EAID_D14AA320_9D41_4366_8739_9C2C21F96AE1.svg +0 -32
  216. data/examples/xmi/Images/EAID_D2FA55D3_C733_4a4d_92D0_0BC7AC0BB5BC.svg +0 -108
  217. data/examples/xmi/Images/EAID_D351FC34_FB03_488d_ADA4_BDB93DA9CB02.svg +0 -49
  218. data/examples/xmi/Images/EAID_D368FDF3_BDC5_4718_A701_351C8587A376.svg +0 -592
  219. data/examples/xmi/Images/EAID_D4DA8C48_3998_450d_87C4_9D65C9FECDB4.svg +0 -42
  220. data/examples/xmi/Images/EAID_D5464ECF_290E_4b2b_A6C4_25BE80F886CB.svg +0 -76
  221. data/examples/xmi/Images/EAID_D55235B0_61E9_461a_8379_2B8BF2403BE2.svg +0 -147
  222. data/examples/xmi/Images/EAID_D555ED73_F010_45d7_8A53_45A33C64C249.svg +0 -318
  223. data/examples/xmi/Images/EAID_D7AAC526_267E_45a0_A853_3207F02363F8.svg +0 -45
  224. data/examples/xmi/Images/EAID_D998B20D_A875_4ef8_A9CE_996BE56602BD.svg +0 -158
  225. data/examples/xmi/Images/EAID_DBFA8B39_F5B7_4c0e_9552_19AEAE5BA64E.svg +0 -200
  226. data/examples/xmi/Images/EAID_DE47A47D_E7BE_4e6f_BA81_F789EE8CFE72.svg +0 -61
  227. data/examples/xmi/Images/EAID_DFBB1072_8EC5_4384_8241_7EDF4B6B888B.svg +0 -78
  228. data/examples/xmi/Images/EAID_E325B9D8_E955_4aed_8125_63167BD40320.svg +0 -67
  229. data/examples/xmi/Images/EAID_E32D9D02_CAE9_4a47_92A8_3290EDCD6E6D.svg +0 -79
  230. data/examples/xmi/Images/EAID_E3B28611_7857_458a_B0BC_736E777B88EC.svg +0 -194
  231. data/examples/xmi/Images/EAID_E43C37EC_1176_4d2e_8B98_B6F3DFF6A092.svg +0 -96
  232. data/examples/xmi/Images/EAID_E591C1CF_7F35_4160_8A72_DFA097AD5811.svg +0 -271
  233. data/examples/xmi/Images/EAID_E77C66A2_2E94_4196_BFC6_662FE5AEEB6F.svg +0 -332
  234. data/examples/xmi/Images/EAID_E7AABA98_2450_4986_9736_DCCAF0108C50.svg +0 -639
  235. data/examples/xmi/Images/EAID_E7D9A2C4_72D6_40b9_8EB8_6B35476246B3.svg +0 -134
  236. data/examples/xmi/Images/EAID_E9CDAD85_ECF1_43de_819F_30A0D01785E6.svg +0 -193
  237. data/examples/xmi/Images/EAID_EC8AF507_F441_4e8a_B8A7_C1690F3C7D0B.svg +0 -58
  238. data/examples/xmi/Images/EAID_ED501058_D540_47ac_8EBC_5921E8C0BF57.svg +0 -384
  239. data/examples/xmi/Images/EAID_EFBF5F0F_DF74_4944_8791_114F5637C335.svg +0 -590
  240. data/examples/xmi/Images/EAID_EFFFA027_2A1F_425c_8437_BF89AADC8893.svg +0 -365
  241. data/examples/xmi/Images/EAID_F07E7718_B2C2_4a65_B5DD_477CB73E971E.svg +0 -165
  242. data/examples/xmi/Images/EAID_F0F20BDF_C729_47f7_B6FC_25ED2C4609CA.svg +0 -61
  243. data/examples/xmi/Images/EAID_F32E5AFE_8605_4c77_AE69_D0D0A6E380AC.svg +0 -76
  244. data/examples/xmi/Images/EAID_F3F00F45_CD37_46fd_B521_D1040EB2FB16.svg +0 -123
  245. data/examples/xmi/Images/EAID_F46E8F19_D8F1_4a3d_B87B_B0BAB4F50F50.svg +0 -202
  246. data/examples/xmi/Images/EAID_F48E5F6E_2411_4635_9315_3EAA4CFA29F7.svg +0 -351
  247. data/examples/xmi/Images/EAID_F4C23F9E_DD74_4fed_B75D_AD3C6448BA24.svg +0 -189
  248. data/examples/xmi/Images/EAID_F853B3C4_B145_4ef0_B261_C3CC0475B6D2.svg +0 -215
  249. data/examples/xmi/Images/EAID_F8BE68CA_1F8F_47e5_9454_01A2EB7D388A.svg +0 -124
  250. data/examples/xmi/Images/EAID_F92A6A28_612E_468e_9E39_D7AE7D24E24D.svg +0 -208
  251. data/examples/xmi/Images/EAID_F995FA49_B86E_4c94_BE5E_C928FB6B87D0.svg +0 -302
  252. data/examples/xmi/Images/EAID_FEAE013A_A4E4_4283_A491_1FEB8D0EBA28.svg +0 -524
  253. data/examples/xmi/Images/EAID_FEBE5726_3751_470b_9023_8C569202E97E.svg +0 -730
  254. data/examples/xmi/UML_EA.DTD +0 -6856
  255. data/examples/xmi/UmlModel_template.xmi +0 -23
  256. data/examples/xmi/basic.xmi +0 -9086
  257. data/examples/xmi/simple.xmi +0 -655
  258. data/examples/xmi/simple_example.xmi +0 -23
  259. data/examples/xmi/test.xmi +0 -1703
  260. data/exe/lutaml +0 -11
  261. data/exe/lutaml-sysml +0 -22
  262. data/exe/lutaml-wsd2uml +0 -63
  263. data/exe/lutaml-yaml2uml +0 -146
  264. data/frontend/dist/app.iife.js +0 -24
  265. data/frontend/dist/style.css +0 -1
  266. data/frontend/index.html +0 -26
  267. data/frontend/package-lock.json +0 -2805
  268. data/frontend/package.json +0 -26
  269. data/frontend/src/App.vue +0 -59
  270. data/frontend/src/app.ts +0 -8
  271. data/frontend/src/components/AppHeader.vue +0 -127
  272. data/frontend/src/components/AppSidebar.vue +0 -119
  273. data/frontend/src/components/ClassDetails.vue +0 -247
  274. data/frontend/src/components/DiagramView.vue +0 -79
  275. data/frontend/src/components/PackageDetails.vue +0 -92
  276. data/frontend/src/components/PackageTreeNode.vue +0 -64
  277. data/frontend/src/components/SearchResults.vue +0 -48
  278. data/frontend/src/components/WelcomeView.vue +0 -66
  279. data/frontend/src/shims-vue.d.ts +0 -5
  280. data/frontend/src/stores/dataStore.ts +0 -79
  281. data/frontend/src/stores/uiStore.ts +0 -167
  282. data/frontend/src/styles/main.css +0 -1566
  283. data/frontend/src/types.ts +0 -221
  284. data/frontend/tests/e2e/__screenshots__/new-dark-mode.png +0 -0
  285. data/frontend/tests/e2e/__screenshots__/new-package-details.png +0 -0
  286. data/frontend/tests/e2e/__screenshots__/new-search-modal.png +0 -0
  287. data/frontend/tests/e2e/__screenshots__/new-sidebar-collapsed.png +0 -0
  288. data/frontend/tests/e2e/__screenshots__/new-welcome.png +0 -0
  289. data/frontend/tests/e2e/render.spec.ts +0 -188
  290. data/frontend/tsconfig.json +0 -20
  291. data/frontend/vite.config.ts +0 -26
  292. data/frontend/vitest.config.ts +0 -8
  293. data/lib/lutaml/cli/element_identifier.rb +0 -160
  294. data/lib/lutaml/cli/enhanced_formatter.rb +0 -494
  295. data/lib/lutaml/cli/interactive_shell/bookmark_commands.rb +0 -85
  296. data/lib/lutaml/cli/interactive_shell/command_base.rb +0 -32
  297. data/lib/lutaml/cli/interactive_shell/export_handler.rb +0 -73
  298. data/lib/lutaml/cli/interactive_shell/help_display.rb +0 -107
  299. data/lib/lutaml/cli/interactive_shell/navigation_commands.rb +0 -151
  300. data/lib/lutaml/cli/interactive_shell/query_commands.rb +0 -208
  301. data/lib/lutaml/cli/interactive_shell.rb +0 -254
  302. data/lib/lutaml/cli/lml_commands.rb +0 -205
  303. data/lib/lutaml/cli/output_formatter.rb +0 -348
  304. data/lib/lutaml/cli/resource_registry.rb +0 -127
  305. data/lib/lutaml/cli/tree_view_formatter.rb +0 -312
  306. data/lib/lutaml/cli/uml/build_command.rb +0 -487
  307. data/lib/lutaml/cli/uml/diagram_command.rb +0 -415
  308. data/lib/lutaml/cli/uml/export_command.rb +0 -77
  309. data/lib/lutaml/cli/uml/find_command.rb +0 -119
  310. data/lib/lutaml/cli/uml/info_command.rb +0 -103
  311. data/lib/lutaml/cli/uml/inspect_command.rb +0 -85
  312. data/lib/lutaml/cli/uml/ls_command.rb +0 -102
  313. data/lib/lutaml/cli/uml/repl_command.rb +0 -49
  314. data/lib/lutaml/cli/uml/search_command.rb +0 -85
  315. data/lib/lutaml/cli/uml/serve_command.rb +0 -58
  316. data/lib/lutaml/cli/uml/shared_helpers.rb +0 -49
  317. data/lib/lutaml/cli/uml/spa_command.rb +0 -223
  318. data/lib/lutaml/cli/uml/stats_command.rb +0 -57
  319. data/lib/lutaml/cli/uml/tree_command.rb +0 -82
  320. data/lib/lutaml/cli/uml/validate_command.rb +0 -190
  321. data/lib/lutaml/cli/uml/verify_command.rb +0 -103
  322. data/lib/lutaml/cli/uml.rb +0 -24
  323. data/lib/lutaml/cli/uml_commands.rb +0 -145
  324. data/lib/lutaml/cli.rb +0 -84
  325. data/lib/lutaml/converter/dsl_to_uml.rb +0 -237
  326. data/lib/lutaml/converter/xmi_to_uml.rb +0 -329
  327. data/lib/lutaml/converter/xmi_to_uml_generalization.rb +0 -193
  328. data/lib/lutaml/converter.rb +0 -10
  329. data/lib/lutaml/ea/diagram/configuration.rb +0 -379
  330. data/lib/lutaml/ea/diagram/element_renderers/base_renderer.rb +0 -81
  331. data/lib/lutaml/ea/diagram/element_renderers/class_renderer.rb +0 -328
  332. data/lib/lutaml/ea/diagram/element_renderers/connector_renderer.rb +0 -53
  333. data/lib/lutaml/ea/diagram/element_renderers/package_renderer.rb +0 -67
  334. data/lib/lutaml/ea/diagram/element_renderers.rb +0 -18
  335. data/lib/lutaml/ea/diagram/extractor.rb +0 -550
  336. data/lib/lutaml/ea/diagram/layout_engine.rb +0 -249
  337. data/lib/lutaml/ea/diagram/path_builder.rb +0 -256
  338. data/lib/lutaml/ea/diagram/style_parser.rb +0 -315
  339. data/lib/lutaml/ea/diagram/style_resolver.rb +0 -281
  340. data/lib/lutaml/ea/diagram/svg_renderer.rb +0 -279
  341. data/lib/lutaml/ea/diagram/util.rb +0 -69
  342. data/lib/lutaml/ea/diagram.rb +0 -62
  343. data/lib/lutaml/ea.rb +0 -7
  344. data/lib/lutaml/formatter/base.rb +0 -63
  345. data/lib/lutaml/formatter/graphviz.rb +0 -374
  346. data/lib/lutaml/formatter.rb +0 -20
  347. data/lib/lutaml/layout/engine.rb +0 -17
  348. data/lib/lutaml/layout/graph_viz_engine.rb +0 -19
  349. data/lib/lutaml/layout.rb +0 -8
  350. data/lib/lutaml/model_transformations/configuration.rb +0 -333
  351. data/lib/lutaml/model_transformations/format_registry.rb +0 -392
  352. data/lib/lutaml/model_transformations/parsers/base_parser.rb +0 -464
  353. data/lib/lutaml/model_transformations/parsers/qea_parser.rb +0 -450
  354. data/lib/lutaml/model_transformations/parsers/xmi_parser.rb +0 -289
  355. data/lib/lutaml/model_transformations/transformation_engine.rb +0 -405
  356. data/lib/lutaml/model_transformations.rb +0 -143
  357. data/lib/lutaml/qea/benchmark.rb +0 -210
  358. data/lib/lutaml/qea/database.rb +0 -270
  359. data/lib/lutaml/qea/factory/association_builder.rb +0 -203
  360. data/lib/lutaml/qea/factory/association_transformer.rb +0 -107
  361. data/lib/lutaml/qea/factory/attribute_tag_transformer.rb +0 -57
  362. data/lib/lutaml/qea/factory/attribute_transformer.rb +0 -93
  363. data/lib/lutaml/qea/factory/base_transformer.rb +0 -127
  364. data/lib/lutaml/qea/factory/class_transformer.rb +0 -164
  365. data/lib/lutaml/qea/factory/constraint_transformer.rb +0 -75
  366. data/lib/lutaml/qea/factory/data_type_transformer.rb +0 -133
  367. data/lib/lutaml/qea/factory/diagram_transformer.rb +0 -157
  368. data/lib/lutaml/qea/factory/document_builder.rb +0 -273
  369. data/lib/lutaml/qea/factory/ea_to_uml_factory.rb +0 -243
  370. data/lib/lutaml/qea/factory/enum_transformer.rb +0 -88
  371. data/lib/lutaml/qea/factory/generalization_builder.rb +0 -236
  372. data/lib/lutaml/qea/factory/generalization_transformer.rb +0 -98
  373. data/lib/lutaml/qea/factory/instance_transformer.rb +0 -84
  374. data/lib/lutaml/qea/factory/object_property_transformer.rb +0 -58
  375. data/lib/lutaml/qea/factory/operation_transformer.rb +0 -66
  376. data/lib/lutaml/qea/factory/package_transformer.rb +0 -208
  377. data/lib/lutaml/qea/factory/reference_resolver.rb +0 -99
  378. data/lib/lutaml/qea/factory/stereotype_loader.rb +0 -40
  379. data/lib/lutaml/qea/factory/tagged_value_transformer.rb +0 -38
  380. data/lib/lutaml/qea/factory/transformer_registry.rb +0 -77
  381. data/lib/lutaml/qea/factory.rb +0 -37
  382. data/lib/lutaml/qea/file_detector.rb +0 -178
  383. data/lib/lutaml/qea/infrastructure/database_connection.rb +0 -100
  384. data/lib/lutaml/qea/infrastructure/schema_reader.rb +0 -136
  385. data/lib/lutaml/qea/infrastructure/table_reader.rb +0 -224
  386. data/lib/lutaml/qea/infrastructure.rb +0 -12
  387. data/lib/lutaml/qea/models/base_model.rb +0 -48
  388. data/lib/lutaml/qea/models/ea_attribute.rb +0 -133
  389. data/lib/lutaml/qea/models/ea_attribute_tag.rb +0 -107
  390. data/lib/lutaml/qea/models/ea_complexity_type.rb +0 -79
  391. data/lib/lutaml/qea/models/ea_connector.rb +0 -160
  392. data/lib/lutaml/qea/models/ea_connector_type.rb +0 -60
  393. data/lib/lutaml/qea/models/ea_constraint_type.rb +0 -63
  394. data/lib/lutaml/qea/models/ea_datatype.rb +0 -104
  395. data/lib/lutaml/qea/models/ea_diagram.rb +0 -115
  396. data/lib/lutaml/qea/models/ea_diagram_link.rb +0 -78
  397. data/lib/lutaml/qea/models/ea_diagram_object.rb +0 -84
  398. data/lib/lutaml/qea/models/ea_diagram_type.rb +0 -56
  399. data/lib/lutaml/qea/models/ea_document.rb +0 -66
  400. data/lib/lutaml/qea/models/ea_object.rb +0 -206
  401. data/lib/lutaml/qea/models/ea_object_constraint.rb +0 -60
  402. data/lib/lutaml/qea/models/ea_object_property.rb +0 -94
  403. data/lib/lutaml/qea/models/ea_object_type.rb +0 -73
  404. data/lib/lutaml/qea/models/ea_operation.rb +0 -151
  405. data/lib/lutaml/qea/models/ea_operation_param.rb +0 -71
  406. data/lib/lutaml/qea/models/ea_package.rb +0 -73
  407. data/lib/lutaml/qea/models/ea_script.rb +0 -67
  408. data/lib/lutaml/qea/models/ea_status_type.rb +0 -66
  409. data/lib/lutaml/qea/models/ea_stereotype.rb +0 -57
  410. data/lib/lutaml/qea/models/ea_tagged_value.rb +0 -103
  411. data/lib/lutaml/qea/models/ea_xref.rb +0 -172
  412. data/lib/lutaml/qea/models.rb +0 -35
  413. data/lib/lutaml/qea/parser.rb +0 -57
  414. data/lib/lutaml/qea/repositories/base_repository.rb +0 -215
  415. data/lib/lutaml/qea/repositories/object_repository.rb +0 -219
  416. data/lib/lutaml/qea/repositories.rb +0 -10
  417. data/lib/lutaml/qea/services/configuration.rb +0 -211
  418. data/lib/lutaml/qea/services/database_loader.rb +0 -186
  419. data/lib/lutaml/qea/services.rb +0 -10
  420. data/lib/lutaml/qea/validation/association_validator.rb +0 -73
  421. data/lib/lutaml/qea/validation/attribute_validator.rb +0 -101
  422. data/lib/lutaml/qea/validation/base_validator.rb +0 -312
  423. data/lib/lutaml/qea/validation/class_validator.rb +0 -121
  424. data/lib/lutaml/qea/validation/database/circular_reference_validator.rb +0 -109
  425. data/lib/lutaml/qea/validation/database/orphan_validator.rb +0 -153
  426. data/lib/lutaml/qea/validation/database/referential_integrity_validator.rb +0 -128
  427. data/lib/lutaml/qea/validation/database.rb +0 -16
  428. data/lib/lutaml/qea/validation/diagram_validator.rb +0 -112
  429. data/lib/lutaml/qea/validation/formatters/json_formatter.rb +0 -137
  430. data/lib/lutaml/qea/validation/formatters/text_formatter.rb +0 -235
  431. data/lib/lutaml/qea/validation/operation_validator.rb +0 -79
  432. data/lib/lutaml/qea/validation/package_validator.rb +0 -111
  433. data/lib/lutaml/qea/validation/validation_engine.rb +0 -477
  434. data/lib/lutaml/qea/validation/validation_message.rb +0 -144
  435. data/lib/lutaml/qea/validation/validation_result.rb +0 -210
  436. data/lib/lutaml/qea/validation/validator_registry.rb +0 -134
  437. data/lib/lutaml/qea/validation.rb +0 -27
  438. data/lib/lutaml/qea/verification/comparison_result.rb +0 -264
  439. data/lib/lutaml/qea/verification/document_normalizer.rb +0 -169
  440. data/lib/lutaml/qea/verification/document_verifier.rb +0 -323
  441. data/lib/lutaml/qea/verification/element_comparator.rb +0 -277
  442. data/lib/lutaml/qea/verification/structure_matcher.rb +0 -287
  443. data/lib/lutaml/qea/verification.rb +0 -14
  444. data/lib/lutaml/qea.rb +0 -227
  445. data/lib/lutaml/uml/abstraction.rb +0 -12
  446. data/lib/lutaml/uml/action.rb +0 -17
  447. data/lib/lutaml/uml/activity.rb +0 -12
  448. data/lib/lutaml/uml/actor.rb +0 -12
  449. data/lib/lutaml/uml/association.rb +0 -37
  450. data/lib/lutaml/uml/association_generalization.rb +0 -20
  451. data/lib/lutaml/uml/behavior.rb +0 -12
  452. data/lib/lutaml/uml/cardinality.rb +0 -12
  453. data/lib/lutaml/uml/class.rb +0 -52
  454. data/lib/lutaml/uml/classifier.rb +0 -19
  455. data/lib/lutaml/uml/comment.rb +0 -15
  456. data/lib/lutaml/uml/connector.rb +0 -20
  457. data/lib/lutaml/uml/connector_end.rb +0 -22
  458. data/lib/lutaml/uml/constraint.rb +0 -24
  459. data/lib/lutaml/uml/data_type.rb +0 -56
  460. data/lib/lutaml/uml/dependency.rb +0 -20
  461. data/lib/lutaml/uml/diagram.rb +0 -25
  462. data/lib/lutaml/uml/diagram_link.rb +0 -28
  463. data/lib/lutaml/uml/diagram_object.rb +0 -32
  464. data/lib/lutaml/uml/document.rb +0 -64
  465. data/lib/lutaml/uml/enum.rb +0 -21
  466. data/lib/lutaml/uml/event.rb +0 -12
  467. data/lib/lutaml/uml/fidelity.rb +0 -12
  468. data/lib/lutaml/uml/final_state.rb +0 -12
  469. data/lib/lutaml/uml/fontname.rb +0 -15
  470. data/lib/lutaml/uml/general_attribute.rb +0 -24
  471. data/lib/lutaml/uml/generalization.rb +0 -37
  472. data/lib/lutaml/uml/group.rb +0 -21
  473. data/lib/lutaml/uml/has_attributes.rb +0 -14
  474. data/lib/lutaml/uml/has_members.rb +0 -30
  475. data/lib/lutaml/uml/inheritance_walker.rb +0 -96
  476. data/lib/lutaml/uml/instance.rb +0 -17
  477. data/lib/lutaml/uml/model.rb +0 -15
  478. data/lib/lutaml/uml/model_helpers.rb +0 -104
  479. data/lib/lutaml/uml/namespace.rb +0 -12
  480. data/lib/lutaml/uml/node/attribute.rb +0 -30
  481. data/lib/lutaml/uml/node/base.rb +0 -19
  482. data/lib/lutaml/uml/node/class_node.rb +0 -48
  483. data/lib/lutaml/uml/node/class_relationship.rb +0 -11
  484. data/lib/lutaml/uml/node/document.rb +0 -15
  485. data/lib/lutaml/uml/node/has_name.rb +0 -15
  486. data/lib/lutaml/uml/node/has_type.rb +0 -15
  487. data/lib/lutaml/uml/node/method_argument.rb +0 -12
  488. data/lib/lutaml/uml/node/operation.rb +0 -23
  489. data/lib/lutaml/uml/node/relationship.rb +0 -22
  490. data/lib/lutaml/uml/opaque_behavior.rb +0 -12
  491. data/lib/lutaml/uml/operation.rb +0 -23
  492. data/lib/lutaml/uml/operation_parameter.rb +0 -19
  493. data/lib/lutaml/uml/package.rb +0 -33
  494. data/lib/lutaml/uml/package_path.rb +0 -235
  495. data/lib/lutaml/uml/parsers/attribute.rb +0 -68
  496. data/lib/lutaml/uml/parsers/dsl.rb +0 -415
  497. data/lib/lutaml/uml/parsers/dsl_preprocessor.rb +0 -63
  498. data/lib/lutaml/uml/parsers/dsl_transform.rb +0 -27
  499. data/lib/lutaml/uml/parsers/yaml.rb +0 -22
  500. data/lib/lutaml/uml/port.rb +0 -9
  501. data/lib/lutaml/uml/primitive_type.rb +0 -15
  502. data/lib/lutaml/uml/property.rb +0 -27
  503. data/lib/lutaml/uml/pseudostate.rb +0 -12
  504. data/lib/lutaml/uml/qualified_name.rb +0 -175
  505. data/lib/lutaml/uml/realization.rb +0 -12
  506. data/lib/lutaml/uml/region.rb +0 -12
  507. data/lib/lutaml/uml/state.rb +0 -22
  508. data/lib/lutaml/uml/state_machine.rb +0 -12
  509. data/lib/lutaml/uml/tagged_value.rb +0 -23
  510. data/lib/lutaml/uml/top_element.rb +0 -85
  511. data/lib/lutaml/uml/top_element_attribute.rb +0 -64
  512. data/lib/lutaml/uml/transition.rb +0 -24
  513. data/lib/lutaml/uml/trigger.rb +0 -18
  514. data/lib/lutaml/uml/validation/document_structure_validator.rb +0 -387
  515. data/lib/lutaml/uml/value.rb +0 -37
  516. data/lib/lutaml/uml/vertex.rb +0 -12
  517. data/lib/lutaml/uml.rb +0 -113
  518. data/lib/lutaml/uml_repository/class_lookup_index.rb +0 -39
  519. data/lib/lutaml/uml_repository/error_handler.rb +0 -203
  520. data/lib/lutaml/uml_repository/exporters/base_exporter.rb +0 -61
  521. data/lib/lutaml/uml_repository/exporters/json_exporter.rb +0 -343
  522. data/lib/lutaml/uml_repository/exporters/markdown/class_page_builder.rb +0 -187
  523. data/lib/lutaml/uml_repository/exporters/markdown/formatting.rb +0 -34
  524. data/lib/lutaml/uml_repository/exporters/markdown/index_page_builder.rb +0 -81
  525. data/lib/lutaml/uml_repository/exporters/markdown/link_resolver.rb +0 -40
  526. data/lib/lutaml/uml_repository/exporters/markdown/package_page_builder.rb +0 -107
  527. data/lib/lutaml/uml_repository/exporters/markdown.rb +0 -20
  528. data/lib/lutaml/uml_repository/exporters/markdown_exporter.rb +0 -86
  529. data/lib/lutaml/uml_repository/index_builder.rb +0 -210
  530. data/lib/lutaml/uml_repository/index_builders/association_index.rb +0 -155
  531. data/lib/lutaml/uml_repository/index_builders/class_index.rb +0 -113
  532. data/lib/lutaml/uml_repository/index_builders/package_index.rb +0 -62
  533. data/lib/lutaml/uml_repository/index_builders.rb +0 -13
  534. data/lib/lutaml/uml_repository/lazy_repository.rb +0 -236
  535. data/lib/lutaml/uml_repository/package_exporter.rb +0 -334
  536. data/lib/lutaml/uml_repository/package_loader.rb +0 -240
  537. data/lib/lutaml/uml_repository/package_metadata.rb +0 -77
  538. data/lib/lutaml/uml_repository/presenters/association_presenter.rb +0 -79
  539. data/lib/lutaml/uml_repository/presenters/attribute_presenter.rb +0 -94
  540. data/lib/lutaml/uml_repository/presenters/class_presenter.rb +0 -72
  541. data/lib/lutaml/uml_repository/presenters/datatype_presenter.rb +0 -97
  542. data/lib/lutaml/uml_repository/presenters/diagram_presenter.rb +0 -469
  543. data/lib/lutaml/uml_repository/presenters/element_presenter.rb +0 -91
  544. data/lib/lutaml/uml_repository/presenters/enum_presenter.rb +0 -78
  545. data/lib/lutaml/uml_repository/presenters/package_presenter.rb +0 -48
  546. data/lib/lutaml/uml_repository/presenters/presenter_factory.rb +0 -74
  547. data/lib/lutaml/uml_repository/queries/association_query.rb +0 -184
  548. data/lib/lutaml/uml_repository/queries/base_query.rb +0 -45
  549. data/lib/lutaml/uml_repository/queries/class_query.rb +0 -178
  550. data/lib/lutaml/uml_repository/queries/diagram_query.rb +0 -108
  551. data/lib/lutaml/uml_repository/queries/inheritance_query.rb +0 -327
  552. data/lib/lutaml/uml_repository/queries/package_query.rb +0 -230
  553. data/lib/lutaml/uml_repository/queries/search_query.rb +0 -236
  554. data/lib/lutaml/uml_repository/query_dsl/conditions/base_condition.rb +0 -28
  555. data/lib/lutaml/uml_repository/query_dsl/conditions/block_condition.rb +0 -44
  556. data/lib/lutaml/uml_repository/query_dsl/conditions/hash_condition.rb +0 -82
  557. data/lib/lutaml/uml_repository/query_dsl/conditions/package_condition.rb +0 -89
  558. data/lib/lutaml/uml_repository/query_dsl/order.rb +0 -90
  559. data/lib/lutaml/uml_repository/query_dsl/query_builder.rb +0 -290
  560. data/lib/lutaml/uml_repository/repository/deprecated.rb +0 -39
  561. data/lib/lutaml/uml_repository/repository/loader.rb +0 -117
  562. data/lib/lutaml/uml_repository/repository.rb +0 -718
  563. data/lib/lutaml/uml_repository/repository_enhanced.rb +0 -431
  564. data/lib/lutaml/uml_repository/search_result.rb +0 -86
  565. data/lib/lutaml/uml_repository/static_site/configuration.rb +0 -377
  566. data/lib/lutaml/uml_repository/static_site/data_transformer.rb +0 -135
  567. data/lib/lutaml/uml_repository/static_site/generator.rb +0 -120
  568. data/lib/lutaml/uml_repository/static_site/id_generator.rb +0 -120
  569. data/lib/lutaml/uml_repository/static_site/models/spa_association.rb +0 -29
  570. data/lib/lutaml/uml_repository/static_site/models/spa_association_end.rb +0 -25
  571. data/lib/lutaml/uml_repository/static_site/models/spa_attribute.rb +0 -58
  572. data/lib/lutaml/uml_repository/static_site/models/spa_base.rb +0 -12
  573. data/lib/lutaml/uml_repository/static_site/models/spa_cardinality.rb +0 -28
  574. data/lib/lutaml/uml_repository/static_site/models/spa_class.rb +0 -60
  575. data/lib/lutaml/uml_repository/static_site/models/spa_diagram.rb +0 -31
  576. data/lib/lutaml/uml_repository/static_site/models/spa_document.rb +0 -31
  577. data/lib/lutaml/uml_repository/static_site/models/spa_inherited_association.rb +0 -25
  578. data/lib/lutaml/uml_repository/static_site/models/spa_inherited_attribute.rb +0 -25
  579. data/lib/lutaml/uml_repository/static_site/models/spa_literal.rb +0 -19
  580. data/lib/lutaml/uml_repository/static_site/models/spa_metadata.rb +0 -39
  581. data/lib/lutaml/uml_repository/static_site/models/spa_operation.rb +0 -34
  582. data/lib/lutaml/uml_repository/static_site/models/spa_package.rb +0 -37
  583. data/lib/lutaml/uml_repository/static_site/models/spa_package_tree_node.rb +0 -32
  584. data/lib/lutaml/uml_repository/static_site/models/spa_parameter.rb +0 -21
  585. data/lib/lutaml/uml_repository/static_site/models/spa_search_entry.rb +0 -34
  586. data/lib/lutaml/uml_repository/static_site/models/spa_search_index.rb +0 -29
  587. data/lib/lutaml/uml_repository/static_site/models/spa_statistics.rb +0 -25
  588. data/lib/lutaml/uml_repository/static_site/models/spa_tree_class_ref.rb +0 -22
  589. data/lib/lutaml/uml_repository/static_site/models.rb +0 -48
  590. data/lib/lutaml/uml_repository/static_site/output/multi_file_strategy.rb +0 -69
  591. data/lib/lutaml/uml_repository/static_site/output/strategy.rb +0 -36
  592. data/lib/lutaml/uml_repository/static_site/output/vue_inlined_strategy.rb +0 -113
  593. data/lib/lutaml/uml_repository/static_site/output.rb +0 -15
  594. data/lib/lutaml/uml_repository/static_site/search_index_builder.rb +0 -216
  595. data/lib/lutaml/uml_repository/static_site/serializers/association_serializer.rb +0 -70
  596. data/lib/lutaml/uml_repository/static_site/serializers/attribute_serializer.rb +0 -24
  597. data/lib/lutaml/uml_repository/static_site/serializers/base.rb +0 -66
  598. data/lib/lutaml/uml_repository/static_site/serializers/class_serializer.rb +0 -97
  599. data/lib/lutaml/uml_repository/static_site/serializers/diagram_serializer.rb +0 -59
  600. data/lib/lutaml/uml_repository/static_site/serializers/inheritance_resolver.rb +0 -151
  601. data/lib/lutaml/uml_repository/static_site/serializers/metadata_builder.rb +0 -102
  602. data/lib/lutaml/uml_repository/static_site/serializers/operation_serializer.rb +0 -52
  603. data/lib/lutaml/uml_repository/static_site/serializers/package_serializer.rb +0 -55
  604. data/lib/lutaml/uml_repository/static_site/serializers/package_tree_builder.rb +0 -77
  605. data/lib/lutaml/uml_repository/static_site/serializers.rb +0 -30
  606. data/lib/lutaml/uml_repository/static_site.rb +0 -92
  607. data/lib/lutaml/uml_repository/statistics_calculator.rb +0 -342
  608. data/lib/lutaml/uml_repository/validators/repository_validator.rb +0 -402
  609. data/lib/lutaml/uml_repository/web_ui/app.rb +0 -161
  610. data/lib/lutaml/uml_repository/web_ui/public/app.js +0 -452
  611. data/lib/lutaml/uml_repository/web_ui/public/styles.css +0 -381
  612. data/lib/lutaml/uml_repository/web_ui/views/index.erb +0 -40
  613. data/lib/lutaml/uml_repository.rb +0 -117
  614. data/lib/lutaml/xmi/liquid_drops/association_drop.rb +0 -56
  615. data/lib/lutaml/xmi/liquid_drops/attribute_drop.rb +0 -72
  616. data/lib/lutaml/xmi/liquid_drops/cardinality_drop.rb +0 -35
  617. data/lib/lutaml/xmi/liquid_drops/connector_drop.rb +0 -54
  618. data/lib/lutaml/xmi/liquid_drops/constraint_drop.rb +0 -29
  619. data/lib/lutaml/xmi/liquid_drops/data_type_drop.rb +0 -63
  620. data/lib/lutaml/xmi/liquid_drops/dependency_drop.rb +0 -36
  621. data/lib/lutaml/xmi/liquid_drops/diagram_drop.rb +0 -34
  622. data/lib/lutaml/xmi/liquid_drops/enum_drop.rb +0 -49
  623. data/lib/lutaml/xmi/liquid_drops/enum_owned_literal_drop.rb +0 -25
  624. data/lib/lutaml/xmi/liquid_drops/generalization_attribute_drop.rb +0 -87
  625. data/lib/lutaml/xmi/liquid_drops/generalization_drop.rb +0 -127
  626. data/lib/lutaml/xmi/liquid_drops/klass_drop.rb +0 -191
  627. data/lib/lutaml/xmi/liquid_drops/operation_drop.rb +0 -29
  628. data/lib/lutaml/xmi/liquid_drops/package_drop.rb +0 -108
  629. data/lib/lutaml/xmi/liquid_drops/root_drop.rb +0 -34
  630. data/lib/lutaml/xmi/liquid_drops/source_target_drop.rb +0 -43
  631. data/lib/lutaml/xmi/parsers/xmi_base.rb +0 -301
  632. data/lib/lutaml/xmi/parsers/xmi_class_members.rb +0 -45
  633. data/lib/lutaml/xmi/parsers/xmi_connector.rb +0 -263
  634. data/lib/lutaml/xmi/parsers/xml.rb +0 -62
  635. data/lib/lutaml/xmi/xmi_lookup_service.rb +0 -40
  636. data/lib/lutaml/xmi.rb +0 -47
  637. data/templates/static_site/assets/images/lutaml-full.svg +0 -1
  638. data/templates/static_site/assets/images/lutaml-icon.svg +0 -1
  639. data/templates/static_site/assets/scripts/app.js +0 -45
  640. data/templates/static_site/assets/scripts/core/state.js +0 -446
  641. data/templates/static_site/assets/scripts/core/utils.js +0 -133
  642. data/templates/static_site/assets/scripts/ui/details.js +0 -74
  643. data/templates/static_site/assets/scripts/ui/diagrams.js +0 -345
  644. data/templates/static_site/assets/scripts/ui/search.js +0 -187
  645. data/templates/static_site/assets/scripts/ui/sidebar.js +0 -123
  646. data/templates/static_site/assets/styles/00-variables.css +0 -144
  647. data/templates/static_site/assets/styles/01-reset.css +0 -69
  648. data/templates/static_site/assets/styles/02-base.css +0 -144
  649. data/templates/static_site/assets/styles/03-layout.css +0 -121
  650. data/templates/static_site/assets/styles/04-components.css +0 -905
  651. data/templates/static_site/assets/styles/05-utilities.css +0 -23
  652. data/templates/static_site/assets/styles/06-diagrams.css +0 -74
  653. data/templates/static_site/components/class_details.liquid +0 -328
  654. data/templates/static_site/components/content.liquid +0 -481
  655. data/templates/static_site/components/diagram_list.liquid +0 -52
  656. data/templates/static_site/components/diagram_viewer.liquid +0 -71
  657. data/templates/static_site/components/header.liquid +0 -114
  658. data/templates/static_site/components/package_details.liquid +0 -119
  659. data/templates/static_site/components/sidebar.liquid +0 -76
  660. data/templates/static_site/components/tree_node.liquid +0 -81
  661. data/templates/static_site/multi_file.liquid +0 -49
  662. data/templates/static_site/single_file.liquid +0 -57
@@ -1,312 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "paint"
4
-
5
- module Lutaml
6
- module Cli
7
- # TreeViewFormatter formats UML repository contents as a colored tree
8
- class TreeViewFormatter
9
- # Color scheme for different element types
10
- COLORS = {
11
- package: :cyan,
12
- class: :green,
13
- interface: :magenta,
14
- enumeration: :yellow,
15
- attribute: "#FFD700", # Light Yellow/Gold
16
- operation: "#87CEEB", # Light Blue/Sky Blue
17
- association: :white,
18
- diagram: "#DDA0DD", # Light Magenta/Plum
19
- statistics: "#ADD8E6", # Light Cyan
20
- }.freeze
21
-
22
- # Icons for different element types
23
- ICONS = {
24
- package: "📦",
25
- class: "📦",
26
- interface: "🔌",
27
- enumeration: "🔢",
28
- attribute: "🔹",
29
- operation: "🔧",
30
- association: "🔗",
31
- diagram: "📊",
32
- }.freeze
33
-
34
- # Tree drawing characters
35
- TREE_CHARS = {
36
- vertical: "│",
37
- branch: "├──",
38
- last_branch: "└──",
39
- space: " ",
40
- continuation: "│ ",
41
- }.freeze
42
-
43
- def initialize(options = {})
44
- @max_depth = options[:max_depth]
45
- @show_attributes = options.fetch(:show_attributes, true)
46
- @show_operations = options.fetch(:show_operations, true)
47
- @show_associations = options.fetch(:show_associations, false)
48
- @no_color = options.fetch(:no_color, false)
49
- @current_depth = 0
50
- end
51
-
52
- # Format the entire repository as a tree
53
- #
54
- # @param repository [Lutaml::UmlRepository::Repository]
55
- # The repository to format
56
- # @return [String] Formatted tree output
57
- def format(repository) # rubocop:disable Metrics/MethodLength
58
- output = []
59
-
60
- # Start with ModelRoot
61
- output << colorize("ModelRoot", :package)
62
-
63
- # Get all top-level packages
64
- root_packages = repository.list_packages("ModelRoot", recursive: false)
65
-
66
- root_packages.each_with_index do |pkg, idx|
67
- is_last = idx == root_packages.size - 1
68
- output << format_package(pkg, repository, 0, is_last, "")
69
- end
70
-
71
- # Add statistics at the end
72
- output << ""
73
- output << format_statistics(repository.statistics)
74
-
75
- output.join("\n")
76
- end
77
-
78
- private
79
-
80
- # Format a package node
81
- def format_package(package, repository, depth, is_last, prefix) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
82
- return "" if @max_depth && depth >= @max_depth
83
-
84
- output = []
85
- pkg_name = package.name || "(unnamed)"
86
-
87
- # Package line
88
- connector = is_last ? TREE_CHARS[:last_branch] : TREE_CHARS[:branch]
89
- icon = ICONS[:package]
90
- output << "#{prefix}#{connector} #{icon} #{colorize(pkg_name,
91
- :package)}"
92
-
93
- # Update prefix for children
94
- child_prefix = prefix + (
95
- is_last ? TREE_CHARS[:space] : TREE_CHARS[:continuation]
96
- )
97
-
98
- # Get package path for this package
99
- pkg_path = find_package_path(repository, package)
100
- return output.join("\n") unless pkg_path
101
-
102
- # Collect all children
103
- children = []
104
-
105
- # Add sub-packages
106
- sub_packages = repository.list_packages(pkg_path, recursive: false)
107
- children.concat(sub_packages.map { |p| { type: :package, obj: p } })
108
-
109
- # Add classes
110
- classes = repository.classes_in_package(pkg_path, recursive: false)
111
- children.concat(classes.map { |c| { type: :class, obj: c } })
112
-
113
- # Add diagrams if at top level
114
- if depth.zero?
115
- diagrams = repository.diagrams_in_package(pkg_path)
116
- children.concat(diagrams.map { |d| { type: :diagram, obj: d } })
117
- end
118
-
119
- # Format each child
120
- children.each_with_index do |child, idx|
121
- is_last_child = idx == children.size - 1
122
-
123
- case child[:type]
124
- when :package
125
- output << format_package(child[:obj], repository, depth + 1,
126
- is_last_child, child_prefix)
127
- when :class
128
- output << format_class(child[:obj], repository, depth + 1,
129
- is_last_child, child_prefix, pkg_path)
130
- when :diagram
131
- output << format_diagram(child[:obj], depth + 1,
132
- is_last_child, child_prefix)
133
- end
134
- end
135
-
136
- output.join("\n")
137
- end
138
-
139
- # Format a class node
140
- def format_class(klass, repository, depth, is_last, prefix, package_path) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity,Metrics/ParameterLists
141
- return "" if @max_depth && depth >= @max_depth
142
-
143
- output = []
144
- class_name = klass.name || "(unnamed)"
145
-
146
- # Determine class type
147
- type = determine_class_type(klass)
148
- icon = ICONS[type] || ICONS[:class]
149
- color = COLORS[type] || COLORS[:class]
150
-
151
- # Class line
152
- connector = is_last ? TREE_CHARS[:last_branch] : TREE_CHARS[:branch]
153
- type_label = type == :class ? "Class" : type.to_s.capitalize
154
- output << "#{prefix}#{connector} #{icon} " \
155
- "#{colorize(class_name, color)} (#{type_label})"
156
-
157
- # Update prefix for children
158
- child_prefix = prefix + (
159
- is_last ? TREE_CHARS[:space] : TREE_CHARS[:continuation]
160
- )
161
-
162
- # Collect children
163
- children = []
164
-
165
- # Add attributes
166
- if @show_attributes && klass.is_a?(Lutaml::Uml::Classifier) &&
167
- klass.attributes
168
- children.concat(klass.attributes.map do |a|
169
- { type: :attribute, obj: a }
170
- end)
171
- end
172
-
173
- # Add operations
174
- if @show_operations && klass.is_a?(Lutaml::Uml::Classifier) &&
175
- klass.operations
176
- children.concat(klass.operations.map do |o|
177
- { type: :operation, obj: o }
178
- end)
179
- end
180
-
181
- # Add associations
182
- if @show_associations
183
- qualified_name = "#{package_path}::#{class_name}"
184
- associations = repository.associations_of(qualified_name)
185
- children.concat(associations.map do |a|
186
- { type: :association, obj: a }
187
- end)
188
- end
189
-
190
- # Format each child
191
- children.each_with_index do |child, idx|
192
- is_last_child = idx == children.size - 1
193
-
194
- case child[:type]
195
- when :attribute
196
- output << format_attribute(child[:obj], depth + 1, is_last_child,
197
- child_prefix)
198
- when :operation
199
- output << format_operation(child[:obj], depth + 1, is_last_child,
200
- child_prefix)
201
- when :association
202
- output << format_association(child[:obj], depth + 1, is_last_child,
203
- child_prefix)
204
- end
205
- end
206
-
207
- output.join("\n")
208
- end
209
-
210
- # Format an attribute node
211
- def format_attribute(attr, depth, is_last, prefix)
212
- return "" if @max_depth && depth >= @max_depth
213
-
214
- attr_name = attr.name || "(unnamed)"
215
- attr_type = attr.type || "Unknown"
216
-
217
- connector = is_last ? TREE_CHARS[:last_branch] : TREE_CHARS[:branch]
218
- icon = ICONS[:attribute]
219
-
220
- "#{prefix}#{connector} #{icon} #{colorize(
221
- "#{attr_name} : #{attr_type}", :attribute
222
- )}"
223
- end
224
-
225
- # Format an operation node
226
- def format_operation(op, depth, is_last, prefix)
227
- return "" if @max_depth && depth >= @max_depth
228
-
229
- op_name = op.name || "(unnamed)"
230
-
231
- connector = is_last ? TREE_CHARS[:last_branch] : TREE_CHARS[:branch]
232
- icon = ICONS[:operation]
233
-
234
- "#{prefix}#{connector} #{icon} #{colorize("#{op_name}()", :operation)}"
235
- end
236
-
237
- # Format an association node
238
- def format_association(assoc, depth, is_last, prefix) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
239
- return "" if @max_depth && depth >= @max_depth
240
-
241
- assoc_name = assoc.name || "(unnamed)"
242
- target = assoc.member_end || "Unknown"
243
-
244
- connector = is_last ? TREE_CHARS[:last_branch] : TREE_CHARS[:branch]
245
- icon = ICONS[:association]
246
-
247
- "#{prefix}#{connector} #{icon} #{colorize("#{assoc_name} → #{target}",
248
- :association)}"
249
- end
250
-
251
- # Format a diagram node
252
- def format_diagram(diagram, depth, is_last, prefix)
253
- return "" if @max_depth && depth >= @max_depth
254
-
255
- diag_name = diagram.name || "(unnamed)"
256
-
257
- connector = is_last ? TREE_CHARS[:last_branch] : TREE_CHARS[:branch]
258
- icon = ICONS[:diagram]
259
-
260
- "#{prefix}#{connector} #{icon} #{colorize(diag_name, :diagram)}"
261
- end
262
-
263
- # Format statistics section
264
- def format_statistics(stats)
265
- output = []
266
- output << colorize("📊 Statistics", :statistics)
267
- output << "#{TREE_CHARS[:branch]} Total Packages: " \
268
- "#{stats[:total_packages]}"
269
- output << "#{TREE_CHARS[:branch]} Total Classes: " \
270
- "#{stats[:total_classes]}"
271
- output << "#{TREE_CHARS[:last_branch]} Total Diagrams: " \
272
- "#{stats[:total_diagrams]}"
273
- output.join("\n")
274
- end
275
-
276
- # Determine class type (class, interface, enumeration)
277
- def determine_class_type(klass)
278
- return :enumeration if enumeration?(klass)
279
- return :interface if interface?(klass)
280
-
281
- :class
282
- end
283
-
284
- def enumeration?(klass)
285
- klass.class.name&.include?("Enum")
286
- end
287
-
288
- def interface?(klass)
289
- klass.is_a?(Lutaml::Uml::TopElement) &&
290
- Array(klass.stereotype).any? { |s| s&.downcase == "interface" }
291
- end
292
-
293
- # Find package path for a package object
294
- def find_package_path(repository, package)
295
- repository.indexes[:package_paths].each do |path, pkg|
296
- return path if pkg == package
297
- end
298
- nil
299
- end
300
-
301
- # Colorize text if colors are enabled
302
- def colorize(text, color_key)
303
- return text if @no_color
304
-
305
- color = COLORS[color_key]
306
- return text unless color
307
-
308
- Paint[text, color]
309
- end
310
- end
311
- end
312
- end