lizarb 1.0.4 → 1.0.6

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 (656) hide show
  1. checksums.yaml +4 -4
  2. data/.env +0 -0
  3. data/.tool-versions +2 -1
  4. data/Gemfile +48 -10
  5. data/Gemfile.lock +235 -29
  6. data/LICENSE.txt +1 -1
  7. data/README.md +72 -16
  8. data/Rakefile +2 -2
  9. data/app/dev/commands/color_command.rb +29 -0
  10. data/app/dev/commands/color_command_test.rb +10 -0
  11. data/app/dev/commands/stick_command.rb +102 -0
  12. data/app/dev/commands/stick_command_test.rb +8 -0
  13. data/app/dev_box.rb +31 -17
  14. data/app/eco_box.rb +5 -0
  15. data/app/happy_box.rb +3 -2
  16. data/app/net/databases/redis_db.rb +1 -1
  17. data/app/net/databases/redis_db_test.rb +5 -5
  18. data/app/net/databases/sqlite_db.rb +1 -1
  19. data/app/net/databases/sqlite_db_test.rb +5 -5
  20. data/app/net/records/app_record.rb +1 -1
  21. data/app/net/records/app_record_test.rb +1 -1
  22. data/app/net/records/post_record_test.rb +1 -1
  23. data/app/net/records/user_record_test.rb +1 -1
  24. data/app/net_box.rb +36 -11
  25. data/app/prime_box.rb +9 -0
  26. data/app/web/requests/api_request.rb +2 -0
  27. data/app/web/requests/app_request.rb +1 -1
  28. data/app/web/requests/app_request_test.rb +1 -1
  29. data/app/web/requests/assets_request.rb +1 -0
  30. data/app/web/requests/foo_request.rb +26 -0
  31. data/app/web/requests/foo_request_test.rb +7 -0
  32. data/app/web/requests/logo_request.rb +12 -0
  33. data/app/web/requests/logo_request.rb.index.html.erb +7 -0
  34. data/app/web/requests/logo_request_test.rb +10 -0
  35. data/app/web/requests/root_request.rb +1 -0
  36. data/app/web_box.rb +14 -8
  37. data/app.rb +38 -7
  38. data/app_global.gemfile.rb +8 -1
  39. data/app_global.gemfile.rb.lock +35 -10
  40. data/app_global.rb +3 -0
  41. data/{app_new → examples/bench/app}/dev/benches/loops_bench.rb +10 -3
  42. data/examples/bench/app/dev/benches/loops_bench_test.rb +7 -0
  43. data/examples/bench/app/dev/benches/objects_bench.rb +48 -0
  44. data/{app_new → examples/bench/app}/dev/benches/objects_bench_test.rb +0 -5
  45. data/{app_new → examples/bench/app}/dev/benches/sorted_bench.rb +33 -15
  46. data/examples/bench/app/dev/benches/sorted_bench_test.rb +7 -0
  47. data/{app_new → examples/bench/app}/dev/benches/variables_bench.rb +8 -2
  48. data/{app_new → examples/bench/app}/dev/benches/variables_bench_test.rb +0 -5
  49. data/examples/client/app/net/clients/news_client.rb +42 -0
  50. data/examples/client/app/net/clients/news_client_test.rb +24 -0
  51. data/{app_new → examples/command/app}/dev/commands/calculator_command.rb +5 -5
  52. data/{app_new → examples/command/app}/dev/commands/calculator_command_test.rb +0 -5
  53. data/{app_new → examples/command/app}/dev/commands/circle_command.rb +5 -5
  54. data/{app_new → examples/command/app}/dev/commands/circle_command_test.rb +0 -5
  55. data/{app_new → examples/command/app}/dev/commands/narrative_method_command.rb +4 -13
  56. data/{app_new → examples/command/app}/dev/commands/narrative_method_command_test.rb +1 -6
  57. data/{app_new → examples/command/app}/dev/commands/quadratic_command.rb +5 -5
  58. data/{app_new → examples/command/app}/dev/commands/quadratic_command_test.rb +0 -5
  59. data/examples/command/app/dev_box.rb +3 -0
  60. data/examples/log/app/dev/handler_logs/logger_handler_log.rb +9 -0
  61. data/examples/log/app/dev/handler_logs/logger_handler_log_test.rb +15 -0
  62. data/examples/new/app/dev_box.rb +45 -0
  63. data/examples/new/app.rb +37 -0
  64. data/examples/shell/app/dev/shells/bash_adapter_shell.rb +25 -0
  65. data/examples/shell/app/dev/shells/bash_adapter_shell_test.rb +19 -0
  66. data/examples/shell/app/dev/shells/business_logic_shell.rb +42 -0
  67. data/examples/shell/app/dev/shells/business_logic_shell_test.rb +35 -0
  68. data/examples/shell/app/dev/shells/gem_adapter_shell.rb +33 -0
  69. data/examples/shell/app/dev/shells/gem_adapter_shell_test.rb +19 -0
  70. data/exe/liza +4 -1
  71. data/exe/lizarb +4 -14
  72. data/gemfiles/gemfile.3.1.rb +1 -0
  73. data/gemfiles/gemfile.3.1.rb.lock +261 -0
  74. data/gemfiles/gemfile.3.2.rb +1 -0
  75. data/gemfiles/gemfile.3.2.rb.lock +261 -0
  76. data/gemfiles/gemfile.3.3.rb +1 -0
  77. data/gemfiles/gemfile.3.3.rb.lock +261 -0
  78. data/gemfiles/gemfile.3.4.rb +1 -0
  79. data/gemfiles/gemfile.3.4.rb.lock +243 -0
  80. data/gemfiles/gemfile.jruby-9.4.rb +3 -0
  81. data/gemfiles/gemfile.jruby-9.4.rb.lock +139 -0
  82. data/lib/app.rb +160 -74
  83. data/lib/art_system/art_box.rb +5 -0
  84. data/lib/art_system/art_box_test.rb +8 -0
  85. data/lib/art_system/art_system_test.rb +3 -0
  86. data/lib/art_system/commands/chatgpt_command.rb +91 -0
  87. data/lib/art_system/commands/chatgpt_command_test.rb +10 -0
  88. data/lib/art_system/commands/deepseek_command.rb +58 -0
  89. data/lib/art_system/commands/deepseek_command_test.rb +10 -0
  90. data/lib/art_system/commands/ollama_command.rb +69 -0
  91. data/lib/art_system/commands/ollama_command_test.rb +10 -0
  92. data/lib/art_system/gem_shells/ruby_openai_gem_shell.rb +32 -0
  93. data/lib/art_system/gem_shells/ruby_openai_gem_shell_test.rb +10 -0
  94. data/lib/art_system/shells/deepseek_shell.rb +15 -0
  95. data/lib/art_system/shells/deepseek_shell_test.rb +10 -0
  96. data/lib/art_system/shells/ollama_shell.rb +12 -0
  97. data/lib/art_system/shells/ollama_shell_test.rb +10 -0
  98. data/lib/art_system/shells/openai_shell.rb +13 -0
  99. data/lib/art_system/shells/openai_shell_test.rb +10 -0
  100. data/lib/art_system.rb +8 -0
  101. data/lib/crypto_system/crypto_box.rb +5 -0
  102. data/lib/crypto_system/crypto_box_test.rb +8 -0
  103. data/lib/crypto_system/crypto_system_test.rb +3 -0
  104. data/lib/crypto_system/gem_shells/digest_md5_gem_shell.rb +15 -0
  105. data/lib/crypto_system/gem_shells/digest_md5_gem_shell_test.rb +25 -0
  106. data/lib/crypto_system.rb +8 -0
  107. data/lib/deep_system/deep_box.rb +5 -0
  108. data/lib/deep_system/deep_box_test.rb +8 -0
  109. data/lib/deep_system/deep_system_test.rb +3 -0
  110. data/lib/deep_system.rb +8 -0
  111. data/lib/desk_system/commands/glimmer_command.rb +27 -0
  112. data/lib/desk_system/commands/glimmer_command_test.rb +10 -0
  113. data/lib/desk_system/desk_box.rb +5 -0
  114. data/lib/desk_system/desk_box_test.rb +8 -0
  115. data/lib/desk_system/desk_system_test.rb +3 -0
  116. data/lib/desk_system.rb +8 -0
  117. data/lib/dev_system/commands/test_command.rb +152 -0
  118. data/lib/dev_system/commands/test_command_test.rb +8 -0
  119. data/lib/dev_system/dev_box.rb +38 -0
  120. data/lib/dev_system/dev_box_test.rb +32 -0
  121. data/lib/dev_system/dev_system_test.rb +3 -0
  122. data/lib/dev_system/generators/boxes_generator.rb +24 -0
  123. data/lib/dev_system/generators/boxes_generator_test.rb +12 -0
  124. data/lib/dev_system/generators/envfile_generator.rb +80 -0
  125. data/lib/dev_system/generators/envfile_generator_test.rb +14 -0
  126. data/lib/dev_system/generators/gemfile_generator.rb +57 -0
  127. data/lib/dev_system/generators/gemfile_generator_test.rb +11 -0
  128. data/lib/dev_system/generators/subsystem_generator.default.rb.erb +2 -0
  129. data/lib/dev_system/generators/subsystem_generator.rb +187 -0
  130. data/lib/dev_system/generators/subsystem_generator.rb.section_controller.rb.erb +8 -0
  131. data/lib/dev_system/generators/subsystem_generator.rb.section_controller_test.rb.erb +18 -0
  132. data/lib/dev_system/generators/subsystem_generator.rb.section_panel.rb.erb +19 -0
  133. data/lib/dev_system/generators/subsystem_generator.rb.section_panel_test.rb.erb +18 -0
  134. data/lib/dev_system/generators/subsystem_generator_test.rb +17 -0
  135. data/lib/dev_system/generators/system_generator.rb +117 -0
  136. data/lib/dev_system/generators/system_generator.rb.gemspec.rb.erb +36 -0
  137. data/lib/dev_system/generators/system_generator.rb.section_app_box_settings.rb.erb +4 -0
  138. data/lib/dev_system/generators/system_generator.rb.section_system_box_settings.rb.erb +4 -0
  139. data/lib/dev_system/generators/system_generator.rb.section_system_box_test.rb.erb +12 -0
  140. data/lib/dev_system/generators/system_generator.rb.section_system_default.rb.erb +3 -0
  141. data/lib/dev_system/generators/system_generator.rb.section_system_info.rb.erb +3 -0
  142. data/lib/dev_system/generators/system_generator.rb.system_test.rb.erb +5 -0
  143. data/lib/dev_system/generators/system_generator.rb.unit.rb.erb +7 -0
  144. data/lib/dev_system/generators/system_generator_test.rb +18 -0
  145. data/lib/dev_system/shells/unit_shell.rb +40 -0
  146. data/lib/dev_system/shells/unit_shell_test.rb +24 -0
  147. data/lib/dev_system/shells/zeitwerk_shell.rb +94 -0
  148. data/lib/dev_system/shells/zeitwerk_shell_test.rb +14 -0
  149. data/lib/dev_system/subsystems/bench/bench.rb +9 -0
  150. data/lib/dev_system/subsystems/bench/bench_panel.rb +31 -0
  151. data/lib/dev_system/subsystems/bench/bench_panel_test.rb +55 -0
  152. data/lib/dev_system/subsystems/bench/bench_test.rb +22 -0
  153. data/lib/dev_system/subsystems/bench/benches/not_found_bench.rb +73 -0
  154. data/lib/dev_system/subsystems/bench/benches/not_found_bench_test.rb +7 -0
  155. data/lib/dev_system/subsystems/bench/commands/bench_command.rb +21 -0
  156. data/lib/dev_system/subsystems/bench/commands/bench_command_test.rb +7 -0
  157. data/lib/dev_system/subsystems/bench/generators/bench_generator.rb +34 -0
  158. data/lib/dev_system/subsystems/bench/generators/bench_generator.rb.marks.rb.erb +18 -0
  159. data/lib/dev_system/subsystems/bench/generators/bench_generator.rb.setup.rb.erb +9 -0
  160. data/lib/dev_system/subsystems/bench/generators/bench_generator_test.rb +15 -0
  161. data/lib/dev_system/subsystems/command/command.rb +7 -0
  162. data/lib/dev_system/subsystems/command/command_panel.rb +30 -0
  163. data/lib/dev_system/subsystems/command/command_panel_test.rb +122 -0
  164. data/lib/dev_system/{dev/controllers → subsystems/command}/command_test.rb +3 -3
  165. data/lib/dev_system/subsystems/command/commands/base_command.rb +79 -0
  166. data/lib/dev_system/subsystems/command/commands/base_command_test.rb +7 -0
  167. data/lib/dev_system/subsystems/command/commands/irb_command.rb +20 -0
  168. data/lib/dev_system/subsystems/command/commands/irb_command_test.rb +7 -0
  169. data/lib/dev_system/subsystems/command/commands/not_found_command.rb +83 -0
  170. data/lib/dev_system/subsystems/command/commands/not_found_command_test.rb +7 -0
  171. data/lib/dev_system/subsystems/command/commands/pry_command.rb +10 -0
  172. data/lib/dev_system/subsystems/command/commands/pry_command_test.rb +7 -0
  173. data/lib/dev_system/subsystems/command/commands/simple_command.rb +433 -0
  174. data/lib/dev_system/subsystems/command/commands/simple_command_test.rb +153 -0
  175. data/lib/dev_system/subsystems/command/gem_shells/tty_prompt_gem_shell.rb +37 -0
  176. data/lib/dev_system/subsystems/command/gem_shells/tty_prompt_gem_shell_test.rb +10 -0
  177. data/lib/dev_system/subsystems/command/generators/command_generator.rb +73 -0
  178. data/lib/dev_system/subsystems/command/generators/command_generator.rb.section_base.rb.erb +10 -0
  179. data/lib/dev_system/subsystems/command/generators/command_generator.rb.section_simple_actions.rb.erb +21 -0
  180. data/lib/dev_system/subsystems/command/generators/command_generator.rb.section_simple_filters.rb.erb +25 -0
  181. data/lib/dev_system/subsystems/command/generators/command_generator.rb.view_simple.txt.erb +2 -0
  182. data/lib/dev_system/subsystems/command/generators/command_generator_test.rb +15 -0
  183. data/lib/dev_system/subsystems/command/parts/command_shortcut_part.rb +58 -0
  184. data/lib/dev_system/subsystems/command/parts/command_shortcut_part_test.rb +6 -0
  185. data/lib/dev_system/subsystems/command/shells/color_shell.rb +60 -0
  186. data/lib/dev_system/subsystems/command/shells/color_shell_test.rb +22 -0
  187. data/lib/dev_system/subsystems/command/shells/input_shell.rb +95 -0
  188. data/lib/dev_system/subsystems/command/shells/input_shell_test.rb +11 -0
  189. data/lib/dev_system/subsystems/command/shells/pallet_shell.rb +354 -0
  190. data/lib/dev_system/subsystems/command/shells/pallet_shell_test.rb +15 -0
  191. data/lib/dev_system/subsystems/command/shells/typography_shell.rb +33 -0
  192. data/lib/dev_system/subsystems/command/shells/typography_shell_test.rb +10 -0
  193. data/lib/dev_system/subsystems/generator/commands/generate_command.rb +46 -0
  194. data/lib/dev_system/subsystems/generator/commands/generate_command_test.rb +7 -0
  195. data/lib/dev_system/subsystems/generator/commands/new_command.rb +33 -0
  196. data/lib/dev_system/subsystems/generator/commands/new_command_test.rb +12 -0
  197. data/lib/dev_system/subsystems/generator/generator.rb +7 -0
  198. data/lib/dev_system/subsystems/generator/generator_panel.rb +51 -0
  199. data/lib/dev_system/subsystems/generator/generator_panel_test.rb +86 -0
  200. data/lib/dev_system/{dev/controllers → subsystems/generator}/generator_test.rb +3 -3
  201. data/lib/dev_system/subsystems/generator/generators/base_generator.rb +147 -0
  202. data/lib/dev_system/subsystems/generator/generators/base_generator_test.rb +10 -0
  203. data/lib/dev_system/subsystems/generator/generators/controller_generator.rb +210 -0
  204. data/lib/dev_system/subsystems/generator/generators/controller_generator.rb.unit.rb.erb +18 -0
  205. data/lib/dev_system/subsystems/generator/generators/controller_generator_test.rb +48 -0
  206. data/lib/dev_system/subsystems/generator/generators/generator_generator.rb +58 -0
  207. data/lib/dev_system/subsystems/generator/generators/generator_generator.rb.section_controller_actions.rb.erb +23 -0
  208. data/lib/dev_system/subsystems/generator/generators/generator_generator.rb.section_simple_actions.rb.erb +19 -0
  209. data/lib/dev_system/subsystems/generator/generators/generator_generator.rb.view_controller_actions.rb.erb +11 -0
  210. data/lib/dev_system/subsystems/generator/generators/generator_generator.rb.view_controller_views.txt.erb +2 -0
  211. data/lib/dev_system/subsystems/generator/generators/generator_generator.rb.view_simple.txt.erb +2 -0
  212. data/lib/dev_system/subsystems/generator/generators/generator_generator_test.rb +16 -0
  213. data/lib/dev_system/subsystems/generator/generators/install_generator.rb +9 -0
  214. data/lib/dev_system/subsystems/generator/generators/install_generator_test.rb +8 -0
  215. data/lib/dev_system/subsystems/generator/generators/move_generator.rb +9 -0
  216. data/lib/dev_system/subsystems/generator/generators/move_generator_test.rb +8 -0
  217. data/lib/dev_system/subsystems/generator/generators/new_generator.rb +162 -0
  218. data/lib/dev_system/subsystems/generator/generators/new_generator_test.rb +7 -0
  219. data/lib/dev_system/subsystems/generator/generators/not_found_generator.rb +87 -0
  220. data/lib/dev_system/subsystems/generator/generators/not_found_generator_test.rb +18 -0
  221. data/lib/dev_system/subsystems/generator/generators/overwrite_generator.rb +9 -0
  222. data/lib/dev_system/subsystems/generator/generators/overwrite_generator_test.rb +8 -0
  223. data/lib/dev_system/subsystems/generator/generators/remove_generator.rb +24 -0
  224. data/lib/dev_system/subsystems/generator/generators/remove_generator_test.rb +8 -0
  225. data/lib/dev_system/subsystems/generator/generators/simple_generator.rb +345 -0
  226. data/lib/dev_system/subsystems/generator/generators/simple_generator.rb.subject.rb.erb +9 -0
  227. data/lib/dev_system/subsystems/generator/generators/simple_generator.rb.unit.rb.erb +7 -0
  228. data/lib/dev_system/subsystems/generator/generators/simple_generator_test.rb +39 -0
  229. data/lib/dev_system/subsystems/generator/generators/uninstall_generator.rb +9 -0
  230. data/lib/dev_system/subsystems/generator/generators/uninstall_generator_test.rb +8 -0
  231. data/lib/dev_system/subsystems/log/commands/log_command.rb +52 -0
  232. data/lib/dev_system/subsystems/log/commands/log_command_test.rb +7 -0
  233. data/lib/dev_system/subsystems/log/generators/log_generator.rb +52 -0
  234. data/lib/dev_system/subsystems/log/generators/log_generator.rb.controller_section_1.rb.erb +7 -0
  235. data/lib/dev_system/subsystems/log/generators/log_generator.rb.controller_test_section_1.rb.erb +6 -0
  236. data/lib/dev_system/subsystems/log/generators/log_generator.rb.handler_section_1.rb.erb +8 -0
  237. data/lib/dev_system/subsystems/log/generators/log_generator.rb.handler_test_section_1.rb.erb +6 -0
  238. data/lib/dev_system/subsystems/log/generators/log_generator_test.rb +17 -0
  239. data/lib/dev_system/subsystems/log/handler_logs/color_output_handler_log.rb +57 -0
  240. data/lib/dev_system/subsystems/log/handler_logs/color_output_handler_log_test.rb +41 -0
  241. data/lib/dev_system/subsystems/log/handler_logs/handler_log.rb +5 -0
  242. data/lib/dev_system/subsystems/log/handler_logs/handler_log_test.rb +12 -0
  243. data/lib/dev_system/subsystems/log/handler_logs/none_handler_log.rb +8 -0
  244. data/lib/dev_system/subsystems/log/handler_logs/none_handler_log_test.rb +10 -0
  245. data/lib/dev_system/subsystems/log/handler_logs/output_handler_log.rb +57 -0
  246. data/lib/dev_system/subsystems/log/handler_logs/output_handler_log_test.rb +43 -0
  247. data/lib/dev_system/subsystems/log/log_panel.rb +108 -0
  248. data/lib/dev_system/subsystems/log/log_panel_test.rb +152 -0
  249. data/lib/dev_system/subsystems/log/log_test.rb +19 -0
  250. data/lib/dev_system/subsystems/log/logs/array_log.rb +20 -0
  251. data/lib/dev_system/subsystems/log/logs/array_log_test.rb +49 -0
  252. data/lib/dev_system/subsystems/log/logs/hash_log.rb +17 -0
  253. data/lib/dev_system/subsystems/log/logs/hash_log_test.rb +40 -0
  254. data/lib/dev_system/subsystems/log/logs/stick_log.rb +80 -0
  255. data/lib/dev_system/subsystems/log/logs/stick_log_log.rb +6 -0
  256. data/lib/dev_system/subsystems/log/logs/stick_log_log_test.rb +26 -0
  257. data/lib/dev_system/subsystems/log/logs/stick_log_test.rb +88 -0
  258. data/lib/dev_system/subsystems/shell/commands/shell_command.rb +340 -0
  259. data/lib/dev_system/subsystems/shell/commands/shell_command_test.rb +12 -0
  260. data/lib/dev_system/subsystems/shell/converter_shells/coffee_converter_shell.rb +20 -0
  261. data/lib/dev_system/subsystems/shell/converter_shells/coffee_converter_shell_test.rb +34 -0
  262. data/lib/dev_system/subsystems/shell/converter_shells/converter_shell.rb +27 -0
  263. data/lib/dev_system/subsystems/shell/converter_shells/converter_shell_test.rb +26 -0
  264. data/lib/dev_system/subsystems/shell/converter_shells/haml_converter_shell.rb +29 -0
  265. data/lib/dev_system/subsystems/shell/converter_shells/haml_converter_shell_test.rb +27 -0
  266. data/lib/dev_system/subsystems/shell/converter_shells/md_converter_shell.rb +20 -0
  267. data/lib/dev_system/subsystems/shell/converter_shells/md_converter_shell_test.rb +31 -0
  268. data/lib/dev_system/subsystems/shell/converter_shells/scss_converter_shell.rb +60 -0
  269. data/lib/dev_system/subsystems/shell/converter_shells/scss_converter_shell_test.rb +52 -0
  270. data/lib/dev_system/subsystems/shell/formatter_shells/formatter_shell.rb +30 -0
  271. data/lib/dev_system/subsystems/shell/formatter_shells/formatter_shell_test.rb +26 -0
  272. data/lib/dev_system/subsystems/shell/formatter_shells/html_formatter_shell.rb +19 -0
  273. data/lib/dev_system/subsystems/shell/formatter_shells/html_formatter_shell_test.rb +43 -0
  274. data/lib/dev_system/subsystems/shell/gem_shells/coderay_gem_shell.rb +33 -0
  275. data/lib/dev_system/subsystems/shell/gem_shells/coderay_gem_shell_test.rb +21 -0
  276. data/lib/dev_system/subsystems/shell/gem_shells/gem_shell.rb +4 -0
  277. data/lib/dev_system/subsystems/shell/gem_shells/gem_shell_test.rb +10 -0
  278. data/lib/dev_system/subsystems/shell/generators/shell_generator.rb +120 -0
  279. data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.actions.rb.erb +11 -0
  280. data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.converter.rb.erb +15 -0
  281. data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.formatter.rb.erb +15 -0
  282. data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.helpers.rb.erb +39 -0
  283. data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.instance.rb.erb +71 -0
  284. data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.renderer.rb.erb +15 -0
  285. data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.test.rb.erb +2 -0
  286. data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.view_simple.txt.erb +2 -0
  287. data/lib/dev_system/subsystems/shell/generators/shell_generator_test.rb +21 -0
  288. data/lib/dev_system/subsystems/shell/renderer_shells/renderer_shell.rb +4 -0
  289. data/lib/dev_system/subsystems/shell/renderer_shells/renderer_shell_test.rb +10 -0
  290. data/lib/dev_system/{dev/controllers → subsystems/shell}/shell.rb +7 -2
  291. data/lib/dev_system/subsystems/shell/shell_panel.rb +87 -0
  292. data/lib/dev_system/subsystems/shell/shell_panel_test.rb +14 -0
  293. data/lib/dev_system/{dev/controllers → subsystems/shell}/shell_test.rb +6 -6
  294. data/lib/dev_system/subsystems/shell/shells/app_shell.rb +684 -0
  295. data/lib/dev_system/subsystems/shell/shells/app_shell_test.rb +113 -0
  296. data/lib/dev_system/{dev/controllers/shell → subsystems/shell/shells}/bin_shell_test.rb +0 -5
  297. data/lib/dev_system/subsystems/shell/shells/controller_shell.rb +87 -0
  298. data/lib/dev_system/subsystems/shell/shells/controller_shell_test.rb +33 -0
  299. data/lib/dev_system/subsystems/shell/shells/dir_shell.rb +27 -0
  300. data/lib/dev_system/{dev/controllers/shell → subsystems/shell/shells}/dir_shell_test.rb +0 -8
  301. data/lib/dev_system/subsystems/shell/shells/env_shell.rb +19 -0
  302. data/lib/dev_system/subsystems/shell/shells/env_shell_test.rb +27 -0
  303. data/lib/dev_system/subsystems/shell/shells/erb_shell.rb +168 -0
  304. data/lib/dev_system/subsystems/shell/shells/erb_shell_test.rb +10 -0
  305. data/lib/dev_system/subsystems/shell/shells/file_shell.rb +130 -0
  306. data/lib/dev_system/{dev/controllers/shell → subsystems/shell/shells}/file_shell_test.rb +3 -7
  307. data/lib/dev_system/subsystems/shell/shells/gemspec_shell.rb +21 -0
  308. data/lib/dev_system/subsystems/shell/shells/gemspec_shell_test.rb +28 -0
  309. data/lib/dev_system/subsystems/shell/shells/kernel_shell.rb +26 -0
  310. data/lib/dev_system/subsystems/shell/shells/kernel_shell_test.rb +10 -0
  311. data/lib/dev_system/subsystems/shell/shells/line_diff_shell.rb +27 -0
  312. data/lib/dev_system/subsystems/shell/shells/line_diff_shell_test.rb +7 -0
  313. data/lib/dev_system/subsystems/shell/shells/line_shell.rb +104 -0
  314. data/lib/dev_system/subsystems/shell/shells/line_shell_test.rb +102 -0
  315. data/lib/dev_system/subsystems/shell/shells/main_shell.rb +29 -0
  316. data/lib/dev_system/subsystems/shell/shells/main_shell_test.rb +10 -0
  317. data/lib/dev_system/subsystems/shell/shells/method_shell.rb +52 -0
  318. data/lib/dev_system/subsystems/shell/shells/method_shell_test.rb +30 -0
  319. data/lib/dev_system/subsystems/shell/shells/signal_shell.rb +53 -0
  320. data/lib/dev_system/subsystems/shell/shells/signal_shell_test.rb +28 -0
  321. data/lib/dev_system/subsystems/shell/shells/text_file_shell.rb +14 -0
  322. data/lib/dev_system/subsystems/shell/shells/text_file_shell_test.rb +7 -0
  323. data/lib/dev_system/subsystems/shell/shells/text_shell.rb +65 -0
  324. data/lib/dev_system/{dev/controllers/shell → subsystems/shell/shells}/text_shell_test.rb +0 -5
  325. data/lib/dev_system/subsystems/shell/soft_shells/soft_shell.rb +4 -0
  326. data/lib/dev_system/subsystems/shell/soft_shells/soft_shell_test.rb +10 -0
  327. data/lib/dev_system/subsystems/shell/view_shells/logo_view_shell.rb +12 -0
  328. data/lib/dev_system/subsystems/shell/view_shells/logo_view_shell.rb.svg.erb +59 -0
  329. data/lib/dev_system/subsystems/shell/view_shells/logo_view_shell_test.rb +15 -0
  330. data/lib/dev_system/subsystems/shell/view_shells/view_shell.rb +5 -0
  331. data/lib/dev_system/subsystems/shell/view_shells/view_shell_test.rb +10 -0
  332. data/lib/dev_system.rb +8 -2
  333. data/lib/eco_system/eco_box.rb +5 -0
  334. data/lib/eco_system/eco_box_test.rb +16 -0
  335. data/lib/eco_system/eco_system_test.rb +9 -0
  336. data/lib/eco_system.rb +11 -0
  337. data/lib/happy_system/happy_box.rb +9 -0
  338. data/lib/happy_system/happy_box_test.rb +20 -0
  339. data/lib/happy_system/happy_system_test.rb +3 -0
  340. data/lib/happy_system/subsystems/axo/axo.rb +11 -0
  341. data/lib/happy_system/subsystems/axo/axo_panel.rb +9 -0
  342. data/lib/happy_system/subsystems/axo/axo_panel_test.rb +12 -0
  343. data/lib/happy_system/subsystems/axo/axo_test.rb +12 -0
  344. data/lib/happy_system/subsystems/axo/commands/axo_command.rb +41 -0
  345. data/lib/happy_system/subsystems/axo/commands/axo_command_test.rb +8 -0
  346. data/lib/happy_system/subsystems/axo/generators/axo_generator.rb +17 -0
  347. data/lib/happy_system/subsystems/axo/generators/axo_generator.rb.controller.rb.erb +49 -0
  348. data/lib/happy_system/subsystems/axo/generators/axo_generator_test.rb +12 -0
  349. data/lib/happy_system.rb +4 -2
  350. data/lib/lab_system/clients/kroki_client.rb +135 -0
  351. data/lib/lab_system/clients/kroki_client_test.rb +28 -0
  352. data/lib/lab_system/clients/liza_kroki_client.rb +176 -0
  353. data/lib/lab_system/clients/liza_kroki_client_test.rb +28 -0
  354. data/lib/lab_system/commands/docker_command.rb +67 -0
  355. data/lib/lab_system/commands/docker_command_test.rb +7 -0
  356. data/lib/lab_system/lab_box.rb +5 -0
  357. data/lib/lab_system/lab_box_test.rb +8 -0
  358. data/lib/lab_system/lab_system_test.rb +3 -0
  359. data/lib/lab_system/requests/kroki_request.rb +182 -0
  360. data/lib/lab_system/requests/kroki_request_test.rb +7 -0
  361. data/lib/lab_system/shells/docker_installer_shell.rb +69 -0
  362. data/lib/lab_system/shells/docker_installer_shell_test.rb +12 -0
  363. data/lib/lab_system/shells/kroki_docker_shell.rb +20 -0
  364. data/lib/lab_system/shells/kroki_docker_shell_test.rb +7 -0
  365. data/lib/lab_system/soft_shells/docker_soft_shell.rb +60 -0
  366. data/lib/lab_system/soft_shells/docker_soft_shell_test.rb +60 -0
  367. data/lib/lab_system.rb +8 -0
  368. data/lib/liza/extra_tests/app_test.rb +36 -0
  369. data/lib/liza/extra_tests/class_test.rb +26 -0
  370. data/lib/liza/extra_tests/liza_test.rb +7 -0
  371. data/lib/liza/extra_tests/lizarb_test.rb +20 -0
  372. data/lib/liza/extra_tests/module_test.rb +21 -0
  373. data/lib/liza/{ruby_test.rb → extra_tests/object_test.rb} +1 -1
  374. data/lib/liza/{ruby_tests → extra_tests}/string_test.rb +3 -1
  375. data/lib/liza/extra_tests/time_test.rb +19 -0
  376. data/lib/liza/helper_units/part.rb +25 -0
  377. data/lib/liza/helper_units/part_test.rb +26 -0
  378. data/lib/liza/helper_units/test.rb +940 -0
  379. data/lib/liza/{test → helper_units}/test_test.rb +71 -7
  380. data/lib/liza/subsystemic_units/controller.rb +221 -0
  381. data/lib/liza/subsystemic_units/controller_test.rb +62 -0
  382. data/lib/liza/subsystemic_units/panel.rb +86 -0
  383. data/lib/liza/subsystemic_units/panel_test.rb +22 -0
  384. data/lib/liza/systemic_units/box.rb +82 -0
  385. data/lib/liza/systemic_units/box_test.rb +36 -0
  386. data/lib/liza/systemic_units/system.rb +52 -0
  387. data/lib/liza/systemic_units/system_test.rb +14 -0
  388. data/lib/liza/unit.rb +627 -89
  389. data/lib/liza/unit_test.rb +105 -16
  390. data/lib/liza.rb +15 -11
  391. data/lib/lizarb/version.rb +1 -1
  392. data/lib/lizarb.rb +716 -149
  393. data/lib/media_system/media_box.rb +3 -0
  394. data/lib/media_system/media_box_test.rb +10 -0
  395. data/lib/media_system/media_system_test.rb +3 -0
  396. data/lib/media_system.rb +8 -0
  397. data/lib/micro_system/micro_box.rb +5 -0
  398. data/lib/micro_system/micro_box_test.rb +8 -0
  399. data/lib/micro_system/micro_system_test.rb +3 -0
  400. data/lib/micro_system.rb +8 -0
  401. data/lib/net_system/net_box.rb +50 -0
  402. data/lib/net_system/{net/net_box_test.rb → net_box_test.rb} +0 -5
  403. data/lib/net_system/net_system_test.rb +3 -0
  404. data/lib/net_system/{net/panels → subsystems/client}/client_panel_test.rb +0 -5
  405. data/lib/net_system/{net/controllers → subsystems/client}/client_test.rb +0 -5
  406. data/lib/net_system/subsystems/client/commands/client_command.rb +12 -0
  407. data/lib/net_system/subsystems/client/commands/client_command_test.rb +10 -0
  408. data/lib/net_system/subsystems/client/generators/client_generator.rb +22 -0
  409. data/lib/net_system/subsystems/client/generators/client_generator.rb.controller.rb.erb +41 -0
  410. data/lib/net_system/subsystems/client/generators/client_generator.rb.test.rb.erb +16 -0
  411. data/lib/net_system/subsystems/client/generators/client_generator_test.rb +15 -0
  412. data/lib/net_system/subsystems/database/clients/mongo_client.rb +47 -0
  413. data/lib/net_system/subsystems/database/clients/mongo_client_test.rb +20 -0
  414. data/lib/net_system/subsystems/database/clients/mysql_client.rb +34 -0
  415. data/lib/net_system/subsystems/database/clients/mysql_client_test.rb +23 -0
  416. data/lib/net_system/subsystems/database/clients/pgsql_client.rb +30 -0
  417. data/lib/net_system/subsystems/database/clients/pgsql_client_test.rb +25 -0
  418. data/lib/net_system/subsystems/database/clients/redis_client.rb +46 -0
  419. data/lib/net_system/{net/controllers/client → subsystems/database/clients}/redis_client_test.rb +2 -2
  420. data/lib/net_system/{net/controllers/client → subsystems/database/clients}/sqlite_client.rb +9 -2
  421. data/lib/net_system/{net/controllers/client → subsystems/database/clients}/sqlite_client_test.rb +2 -2
  422. data/lib/net_system/subsystems/database/commands/database_command.rb +23 -0
  423. data/lib/net_system/subsystems/database/commands/database_command_test.rb +7 -0
  424. data/lib/net_system/subsystems/database/database_panel.rb +3 -0
  425. data/lib/net_system/subsystems/database/database_panel_test.rb +12 -0
  426. data/lib/net_system/{net/controllers → subsystems/database}/database_test.rb +0 -5
  427. data/lib/net_system/subsystems/database/databases/mongo_db.rb +8 -0
  428. data/lib/net_system/subsystems/database/databases/mongo_db_test.rb +21 -0
  429. data/lib/net_system/subsystems/database/databases/mysql_db.rb +8 -0
  430. data/lib/net_system/subsystems/database/databases/mysql_db_test.rb +21 -0
  431. data/lib/net_system/subsystems/database/databases/pgsql_db.rb +8 -0
  432. data/lib/net_system/subsystems/database/databases/pgsql_db_test.rb +21 -0
  433. data/lib/net_system/{net/controllers/database → subsystems/database/databases}/redis_db_test.rb +1 -1
  434. data/lib/net_system/{net/controllers/database → subsystems/database/databases}/sqlite_db_test.rb +1 -1
  435. data/lib/net_system/subsystems/filebase/commands/filebase_command.rb +12 -0
  436. data/lib/net_system/subsystems/filebase/commands/filebase_command_test.rb +10 -0
  437. data/lib/net_system/subsystems/filebase/filebase.rb +12 -0
  438. data/lib/net_system/subsystems/filebase/filebase_panel.rb +23 -0
  439. data/lib/net_system/subsystems/filebase/filebase_panel_test.rb +22 -0
  440. data/lib/net_system/subsystems/filebase/filebase_test.rb +22 -0
  441. data/lib/net_system/subsystems/record/commands/record_command.rb +12 -0
  442. data/lib/net_system/subsystems/record/commands/record_command_test.rb +10 -0
  443. data/lib/net_system/subsystems/record/generators/record_generator.rb +35 -0
  444. data/lib/net_system/subsystems/record/generators/record_generator.rb.controller.rb.erb +4 -0
  445. data/lib/net_system/subsystems/record/generators/record_generator.rb.test.rb.erb +2 -0
  446. data/lib/net_system/subsystems/record/generators/record_generator_test.rb +13 -0
  447. data/lib/net_system/subsystems/record/record.rb +19 -0
  448. data/lib/net_system/subsystems/record/record_panel.rb +3 -0
  449. data/lib/net_system/subsystems/record/record_panel_test.rb +7 -0
  450. data/lib/net_system/subsystems/record/record_test.rb +11 -0
  451. data/lib/net_system/subsystems/socket/commands/socket_command.rb +12 -0
  452. data/lib/net_system/subsystems/socket/commands/socket_command_test.rb +10 -0
  453. data/lib/net_system/subsystems/socket/socket.rb +12 -0
  454. data/lib/net_system/subsystems/socket/socket_panel.rb +23 -0
  455. data/lib/net_system/subsystems/socket/socket_panel_test.rb +22 -0
  456. data/lib/net_system/subsystems/socket/socket_test.rb +22 -0
  457. data/lib/net_system.rb +11 -2
  458. data/lib/prime_system/prime_box.rb +9 -0
  459. data/lib/prime_system/prime_box_test.rb +16 -0
  460. data/lib/prime_system/prime_system_test.rb +9 -0
  461. data/lib/prime_system/subsystems/epic/commands/epic_command.rb +12 -0
  462. data/lib/prime_system/subsystems/epic/commands/epic_command_test.rb +10 -0
  463. data/lib/prime_system/subsystems/epic/epic.rb +12 -0
  464. data/lib/prime_system/subsystems/epic/epic_panel.rb +23 -0
  465. data/lib/prime_system/subsystems/epic/epic_panel_test.rb +22 -0
  466. data/lib/prime_system/subsystems/epic/epic_test.rb +22 -0
  467. data/lib/prime_system.rb +13 -0
  468. data/lib/web_system/{dev → subsystems/rack/commands}/rack_command.rb +11 -6
  469. data/lib/web_system/subsystems/rack/commands/rack_command_test.rb +7 -0
  470. data/lib/web_system/subsystems/rack/middle_racks/first_middle_rack.rb +8 -0
  471. data/lib/web_system/subsystems/rack/middle_racks/first_middle_rack_test.rb +7 -0
  472. data/lib/web_system/subsystems/rack/middle_racks/last_middle_rack.rb +3 -0
  473. data/lib/web_system/subsystems/rack/middle_racks/last_middle_rack_test.rb +7 -0
  474. data/lib/web_system/subsystems/rack/middle_racks/middle_rack.rb +18 -0
  475. data/lib/web_system/subsystems/rack/middle_racks/middle_rack_test.rb +7 -0
  476. data/lib/web_system/subsystems/rack/middle_racks/zeitwerk_middle_rack.rb +10 -0
  477. data/lib/web_system/subsystems/rack/middle_racks/zeitwerk_middle_rack_test.rb +7 -0
  478. data/lib/web_system/subsystems/rack/rack.rb +3 -0
  479. data/lib/web_system/subsystems/rack/rack_panel.rb +56 -0
  480. data/lib/web_system/subsystems/rack/rack_panel_test.rb +25 -0
  481. data/lib/web_system/{web/controllers → subsystems/rack}/rack_test.rb +0 -5
  482. data/lib/web_system/subsystems/rack/server_racks/agoo_server_rack.rb +54 -0
  483. data/lib/web_system/subsystems/rack/server_racks/agoo_server_rack_test.rb +7 -0
  484. data/lib/web_system/subsystems/rack/server_racks/falcon_server_rack.rb +47 -0
  485. data/lib/web_system/subsystems/rack/server_racks/falcon_server_rack_test.rb +7 -0
  486. data/lib/web_system/subsystems/rack/server_racks/iodine_server_rack.rb +48 -0
  487. data/lib/web_system/subsystems/rack/server_racks/iodine_server_rack_test.rb +7 -0
  488. data/lib/web_system/subsystems/rack/server_racks/puma_server_rack.rb +50 -0
  489. data/lib/web_system/subsystems/rack/server_racks/puma_server_rack_test.rb +7 -0
  490. data/lib/web_system/subsystems/rack/server_racks/server_rack.rb +3 -0
  491. data/lib/web_system/subsystems/rack/server_racks/server_rack_test.rb +7 -0
  492. data/lib/web_system/subsystems/rack/server_racks/thin_server_rack.rb +86 -0
  493. data/lib/web_system/subsystems/rack/server_racks/thin_server_rack_test.rb +7 -0
  494. data/lib/web_system/subsystems/request/commands/request_command.rb +114 -0
  495. data/lib/web_system/subsystems/request/commands/request_command_test.rb +7 -0
  496. data/lib/web_system/subsystems/request/generators/request_generator.rb +39 -0
  497. data/lib/web_system/subsystems/request/generators/request_generator.rb.base.rb.erb +14 -0
  498. data/lib/web_system/subsystems/request/generators/request_generator.rb.simple_actions.rb.erb +16 -0
  499. data/lib/web_system/subsystems/request/generators/request_generator.rb.simple_view.html.erb +9 -0
  500. data/lib/web_system/subsystems/request/generators/request_generator.rb.test.rb.erb +2 -0
  501. data/lib/web_system/subsystems/request/generators/request_generator_test.rb +15 -0
  502. data/lib/web_system/subsystems/request/request_panel.rb +75 -0
  503. data/lib/web_system/subsystems/request/request_panel_test.rb +82 -0
  504. data/lib/web_system/{web/controllers → subsystems/request}/request_test.rb +0 -5
  505. data/lib/web_system/{web/controllers/request → subsystems/request/requests}/client_error_request.rb +1 -0
  506. data/lib/web_system/{web/controllers/request → subsystems/request/requests}/not_found_request.rb +1 -0
  507. data/lib/web_system/{web/controllers/request → subsystems/request/requests}/server_error_request.rb +1 -0
  508. data/lib/web_system/subsystems/request/requests/simple_request.rb +102 -0
  509. data/lib/web_system/subsystems/request/requests/simple_request_test.rb +7 -0
  510. data/lib/web_system/subsystems/request/router_requests/router_request.rb +7 -0
  511. data/lib/web_system/subsystems/request/router_requests/router_request_test.rb +7 -0
  512. data/lib/web_system/subsystems/request/router_requests/simple_router_request.rb +27 -0
  513. data/lib/web_system/subsystems/request/router_requests/simple_router_request_test.rb +7 -0
  514. data/lib/web_system/web_box.rb +37 -0
  515. data/lib/web_system/{web/web_box_test.rb → web_box_test.rb} +0 -5
  516. data/lib/web_system/web_system_test.rb +3 -0
  517. data/lib/web_system.rb +9 -3
  518. data/lib/work_system/work_box.rb +5 -0
  519. data/lib/work_system/work_box_test.rb +8 -0
  520. data/lib/work_system/work_system_test.rb +3 -0
  521. data/lib/work_system.rb +8 -0
  522. data/lizarb.gemspec +7 -15
  523. metadata +498 -228
  524. data/app/happy/axos/axo.rb +0 -50
  525. data/app_new/dev/benches/loops_bench_test.rb +0 -12
  526. data/app_new/dev/benches/objects_bench.rb +0 -83
  527. data/app_new/dev/benches/sorted_bench_test.rb +0 -12
  528. data/app_new/dev_box.rb +0 -14
  529. data/app_new.rb +0 -15
  530. data/exe/lrb +0 -3
  531. data/lib/dev_system/dev/controllers/bench/not_found_bench.rb +0 -34
  532. data/lib/dev_system/dev/controllers/bench/not_found_bench_test.rb +0 -12
  533. data/lib/dev_system/dev/controllers/bench.rb +0 -3
  534. data/lib/dev_system/dev/controllers/bench_test.rb +0 -12
  535. data/lib/dev_system/dev/controllers/command/bench_command.rb +0 -31
  536. data/lib/dev_system/dev/controllers/command/bench_command_test.rb +0 -12
  537. data/lib/dev_system/dev/controllers/command/generate_command.rb +0 -9
  538. data/lib/dev_system/dev/controllers/command/generate_command_test.rb +0 -12
  539. data/lib/dev_system/dev/controllers/command/new_command.rb +0 -9
  540. data/lib/dev_system/dev/controllers/command/new_command_test.rb +0 -7
  541. data/lib/dev_system/dev/controllers/command/not_found_command.rb +0 -48
  542. data/lib/dev_system/dev/controllers/command/not_found_command_test.rb +0 -12
  543. data/lib/dev_system/dev/controllers/command/terminal_command.rb +0 -22
  544. data/lib/dev_system/dev/controllers/command/terminal_command_test.rb +0 -12
  545. data/lib/dev_system/dev/controllers/command/test_command.rb +0 -85
  546. data/lib/dev_system/dev/controllers/command/test_command_test.rb +0 -12
  547. data/lib/dev_system/dev/controllers/command.rb +0 -13
  548. data/lib/dev_system/dev/controllers/generator.rb +0 -9
  549. data/lib/dev_system/dev/controllers/generator_dsl_main_part.rb +0 -50
  550. data/lib/dev_system/dev/controllers/generators/bench_generator/controller.rb.erb +0 -23
  551. data/lib/dev_system/dev/controllers/generators/bench_generator/controller_test.rb.erb +0 -12
  552. data/lib/dev_system/dev/controllers/generators/bench_generator.rb +0 -12
  553. data/lib/dev_system/dev/controllers/generators/bench_generator_test.rb +0 -12
  554. data/lib/dev_system/dev/controllers/generators/command_generator/controller.rb.erb +0 -41
  555. data/lib/dev_system/dev/controllers/generators/command_generator/controller_test.rb.erb +0 -12
  556. data/lib/dev_system/dev/controllers/generators/command_generator.rb +0 -19
  557. data/lib/dev_system/dev/controllers/generators/command_generator_test.rb +0 -12
  558. data/lib/dev_system/dev/controllers/generators/controller_generator.rb +0 -97
  559. data/lib/dev_system/dev/controllers/generators/controller_generator_test.rb +0 -12
  560. data/lib/dev_system/dev/controllers/generators/generator_generator/generator.rb.erb +0 -18
  561. data/lib/dev_system/dev/controllers/generators/generator_generator/generator_test.rb.erb +0 -12
  562. data/lib/dev_system/dev/controllers/generators/generator_generator/template.rb.erb +0 -9
  563. data/lib/dev_system/dev/controllers/generators/generator_generator/template_test.rb.erb +0 -12
  564. data/lib/dev_system/dev/controllers/generators/generator_generator.rb +0 -30
  565. data/lib/dev_system/dev/controllers/generators/generator_generator_test.rb +0 -12
  566. data/lib/dev_system/dev/controllers/generators/new_generator.rb +0 -117
  567. data/lib/dev_system/dev/controllers/generators/new_generator_test.rb +0 -12
  568. data/lib/dev_system/dev/controllers/generators/not_found_generator.rb +0 -39
  569. data/lib/dev_system/dev/controllers/generators/not_found_generator_test.rb +0 -12
  570. data/lib/dev_system/dev/controllers/generators/record_generator.rb +0 -46
  571. data/lib/dev_system/dev/controllers/generators/record_generator_test.rb +0 -12
  572. data/lib/dev_system/dev/controllers/generators/request_generator.rb +0 -63
  573. data/lib/dev_system/dev/controllers/generators/request_generator_test.rb +0 -12
  574. data/lib/dev_system/dev/controllers/log_test.rb +0 -12
  575. data/lib/dev_system/dev/controllers/shell/dir_shell.rb +0 -27
  576. data/lib/dev_system/dev/controllers/shell/file_shell.rb +0 -59
  577. data/lib/dev_system/dev/controllers/shell/text_shell.rb +0 -23
  578. data/lib/dev_system/dev/controllers/terminal/irb_terminal.rb +0 -23
  579. data/lib/dev_system/dev/controllers/terminal/irb_terminal_test.rb +0 -12
  580. data/lib/dev_system/dev/controllers/terminal/pry_terminal.rb +0 -10
  581. data/lib/dev_system/dev/controllers/terminal/pry_terminal_test.rb +0 -12
  582. data/lib/dev_system/dev/controllers/terminal.rb +0 -17
  583. data/lib/dev_system/dev/controllers/terminal_test.rb +0 -12
  584. data/lib/dev_system/dev/dev_box.rb +0 -33
  585. data/lib/dev_system/dev/dev_box_test.rb +0 -17
  586. data/lib/dev_system/dev/panels/bench_panel.rb +0 -3
  587. data/lib/dev_system/dev/panels/bench_panel_test.rb +0 -12
  588. data/lib/dev_system/dev/panels/command_panel.rb +0 -71
  589. data/lib/dev_system/dev/panels/command_panel_test.rb +0 -46
  590. data/lib/dev_system/dev/panels/generator_panel.rb +0 -73
  591. data/lib/dev_system/dev/panels/generator_panel_test.rb +0 -46
  592. data/lib/dev_system/dev/panels/log_panel.rb +0 -13
  593. data/lib/dev_system/dev/panels/log_panel_test.rb +0 -16
  594. data/lib/dev_system/dev/panels/shell_panel.rb +0 -3
  595. data/lib/dev_system/dev/panels/shell_panel_test.rb +0 -12
  596. data/lib/dev_system/dev/panels/terminal_panel.rb +0 -3
  597. data/lib/dev_system/dev/panels/terminal_panel_test.rb +0 -12
  598. data/lib/happy_system/dev/happy_command.rb +0 -11
  599. data/lib/happy_system/happy/controllers/axo.rb +0 -7
  600. data/lib/happy_system/happy/happy_box.rb +0 -8
  601. data/lib/happy_system/happy/happy_box_test.rb +0 -16
  602. data/lib/happy_system/happy/panels/axo_panel.rb +0 -3
  603. data/lib/lerb.rb +0 -152
  604. data/lib/liza/base/box.rb +0 -90
  605. data/lib/liza/base/box_test.rb +0 -10
  606. data/lib/liza/base/controller.rb +0 -27
  607. data/lib/liza/base/controller_test.rb +0 -10
  608. data/lib/liza/base/panel.rb +0 -52
  609. data/lib/liza/base/panel_test.rb +0 -40
  610. data/lib/liza/base_parts/controller_renderer_part.rb +0 -140
  611. data/lib/liza/base_parts/controller_renderer_part_test.rb +0 -16
  612. data/lib/liza/meta/part.rb +0 -17
  613. data/lib/liza/meta/part_extension.rb +0 -16
  614. data/lib/liza/meta/part_test.rb +0 -6
  615. data/lib/liza/meta/system.rb +0 -18
  616. data/lib/liza/meta/system_test.rb +0 -11
  617. data/lib/liza/ruby_tests/module_test.rb +0 -21
  618. data/lib/liza/test/test.rb +0 -10
  619. data/lib/liza/test_parts/test_assertions_advanced_part.rb +0 -125
  620. data/lib/liza/test_parts/test_assertions_part.rb +0 -109
  621. data/lib/liza/test_parts/test_dsl_part.rb +0 -68
  622. data/lib/liza/test_parts/test_log_part.rb +0 -122
  623. data/lib/liza/test_parts/test_subject_part.rb +0 -22
  624. data/lib/liza/test_parts/test_tree_part.rb +0 -92
  625. data/lib/liza/unit_parts/unit_procedure_part.rb +0 -17
  626. data/lib/liza/unit_parts/unit_procedure_part_test.rb +0 -65
  627. data/lib/liza/unit_parts/unit_settings_part.rb +0 -76
  628. data/lib/liza/unit_parts/unit_settings_part_test.rb +0 -3
  629. data/lib/lizarb/ruby/class.rb +0 -17
  630. data/lib/lizarb/ruby/module.rb +0 -17
  631. data/lib/lizarb/ruby/proc.rb +0 -12
  632. data/lib/lizarb/ruby/string.rb +0 -33
  633. data/lib/lizarb/ruby/time.rb +0 -9
  634. data/lib/net_system/dev/net_command.rb +0 -22
  635. data/lib/net_system/net/controllers/client/redis_client.rb +0 -26
  636. data/lib/net_system/net/controllers/record.rb +0 -29
  637. data/lib/net_system/net/controllers/record_test.rb +0 -12
  638. data/lib/net_system/net/net_box.rb +0 -13
  639. data/lib/net_system/net/panels/database_panel.rb +0 -10
  640. data/lib/net_system/net/panels/database_panel_test.rb +0 -16
  641. data/lib/web_system/dev/request_command.rb +0 -129
  642. data/lib/web_system/dev/web_command.rb +0 -9
  643. data/lib/web_system/web/controllers/rack.rb +0 -6
  644. data/lib/web_system/web/panels/rack_panel.rb +0 -42
  645. data/lib/web_system/web/panels/rack_panel_test.rb +0 -12
  646. data/lib/web_system/web/panels/request_panel.rb +0 -70
  647. data/lib/web_system/web/panels/request_panel_test.rb +0 -33
  648. data/lib/web_system/web/web_box.rb +0 -18
  649. /data/lib/dev_system/{dev/controllers → subsystems/log}/log.rb +0 -0
  650. /data/lib/dev_system/{dev/controllers/shell → subsystems/shell/shells}/bin_shell.rb +0 -0
  651. /data/lib/net_system/{net/controllers → subsystems/client}/client.rb +0 -0
  652. /data/lib/net_system/{net/panels → subsystems/client}/client_panel.rb +0 -0
  653. /data/lib/net_system/{net/controllers → subsystems/database}/database.rb +0 -0
  654. /data/lib/net_system/{net/controllers/database → subsystems/database/databases}/redis_db.rb +0 -0
  655. /data/lib/net_system/{net/controllers/database → subsystems/database/databases}/sqlite_db.rb +0 -0
  656. /data/lib/web_system/{web/controllers → subsystems/request}/request.rb +0 -0
@@ -0,0 +1,187 @@
1
+ class DevSystem::SubsystemGenerator < DevSystem::SimpleGenerator
2
+
3
+ section :actions
4
+
5
+ # liza g subsystem name
6
+ def call_default
7
+ name = arg_name
8
+
9
+ if App.systems.values.map(&:subs).flatten.map(&:to_s).include? name
10
+ log stick :red, :white, :b, "controller and panel #{name} already exist"
11
+ return
12
+ end
13
+
14
+ add_sub_to_system
15
+ add_panel_to_box
16
+ create_controller_panel
17
+ create_command
18
+ create_generator
19
+ end
20
+
21
+ section :submethods
22
+
23
+ def add_sub_to_system
24
+ contents = read_file system_path
25
+ old_lines = contents.split("\n")
26
+
27
+ lines = LineShell.extract_between old_lines, "class ".."end"
28
+ lines << " panel :#{subsystem_name}"
29
+ lines = LineShell.replace_between old_lines, "class ".."end", lines
30
+
31
+ contents = lines.join("\n")
32
+ update_file system_path, contents
33
+ end
34
+
35
+ def add_panel_to_box
36
+ path = App.systems_directory / "#{system_name}_system/#{system_name}_box.rb"
37
+ contents = read_file path
38
+ contents = _add_panel_to_box path, contents, "preconfigure"
39
+ update_file path, contents
40
+
41
+ path = App.directory / "#{system_name}_box.rb"
42
+
43
+ contents = read_file path
44
+ return if contents.empty?
45
+ contents = _add_panel_to_box path, contents, "configure"
46
+ update_file path, contents
47
+ end
48
+
49
+ def _add_panel_to_box path, contents, verb
50
+ a = contents.split("\n")
51
+ a = a.map { _1.strip }
52
+ a = a.select { _1.start_with? " #{verb} :" }
53
+
54
+ # contents
55
+
56
+ old_lines = contents.split("\n")
57
+
58
+ generic_panel_line = " #{verb} :"
59
+
60
+ new_lines = [
61
+ " #{verb} :#{subsystem_name} do",
62
+ " # #{subsystem_name.camelcase}Panel.instance gives you read-access to this instance",
63
+ " end",
64
+ "",
65
+ ]
66
+
67
+ lines = LineShell.extract_between old_lines, "class ".."end"
68
+ if a.count == 0
69
+ lines += new_lines
70
+ else
71
+ panel_lines = LineShell.extract_wall_of lines, generic_panel_line
72
+ panel_lines += new_lines
73
+ panel_lines = panel_lines.sort
74
+ lines = LineShell.replace_wall_of lines, generic_panel_line, panel_lines
75
+ end
76
+
77
+ lines = LineShell.replace_between old_lines, "class ".."end", lines
78
+
79
+ lines.join("\n")
80
+ end
81
+
82
+ def create_controller_panel
83
+ class_name = "#{system_name.to_s.camelize}System::#{subsystem_name.to_s.camelize}"
84
+
85
+ # build
86
+
87
+ controller = UnitHelper.new
88
+ controller_test = UnitHelper.new
89
+ panel = UnitHelper.new
90
+ panel_test = UnitHelper.new
91
+
92
+ controller.section name: :subsystem, render_key: :section_controller, format: :rb
93
+ controller_test.section name: :subject, render_key: :section_controller_test
94
+ panel.section name: :subsystem, render_key: :section_panel, format: :rb
95
+ panel_test.section name: :subject, render_key: :section_panel_test
96
+
97
+ controller_class_names = ["#{class_name}", "Liza::Controller"]
98
+ controller_test_class_names = ["#{class_name}Test", "Liza::ControllerTest"]
99
+ panel_class_names = ["#{class_name}Panel", "Liza::Panel"]
100
+ panel_test_class_names = ["#{class_name}PanelTest", "Liza::PanelTest"]
101
+
102
+ controller_path = subsystem_path / "#{subsystem_name}.rb"
103
+ controller_test_path = subsystem_path / "#{subsystem_name}_test.rb"
104
+ panel_path = subsystem_path / "#{subsystem_name}_panel.rb"
105
+ panel_test_path = subsystem_path / "#{subsystem_name}_panel_test.rb"
106
+
107
+ # render and add
108
+
109
+ _create_controller_panel_unit(
110
+ controller,
111
+ controller_class_names,
112
+ controller_path
113
+ )
114
+
115
+ _create_controller_panel_unit(
116
+ controller_test,
117
+ controller_test_class_names,
118
+ controller_test_path
119
+ )
120
+
121
+ _create_controller_panel_unit(
122
+ panel,
123
+ panel_class_names,
124
+ panel_path
125
+ )
126
+
127
+ _create_controller_panel_unit(
128
+ panel_test,
129
+ panel_test_class_names,
130
+ panel_test_path
131
+ )
132
+ end
133
+
134
+ def _create_controller_panel_unit(unit, class_names, path)
135
+ log "Adding unit..."
136
+ log "unit: #{unit.inspect}"
137
+ log "class_names: #{class_names}"
138
+ log "path: #{path.inspect}"
139
+
140
+ add_unit unit, class_names, path
141
+ end
142
+
143
+ def create_command
144
+ generate "command", subsystem_name, "place=#{system_name}/#{subsystem_name}", "-prefix"
145
+ end
146
+
147
+ def create_generator
148
+ generate "generator:controller", subsystem_name, "place=#{system_name}/#{subsystem_name}", "-prefix"
149
+ end
150
+
151
+ section :helpers
152
+
153
+ def arg_name() = @arg_name ||= (name = command.simple_arg(1) until name.to_s.strip.length.positive?; name)
154
+
155
+ def system_name() = arg_place
156
+
157
+ def system_path() = @system_path ||= (App.systems_directory / "#{system_name}_system.rb")
158
+
159
+ def subsystem_name() = arg_name
160
+
161
+ def subsystem_path() = @subsystem_path ||= (App.root / arg_place_path)
162
+
163
+ def available_places() = @available_places ||= ControllerShell.places_for_systems(arg_name)
164
+
165
+ def arg_place_system() = App.systems[arg_place.to_sym]
166
+
167
+ def arg_place() = @arg_place ||= command.simple_string(:place)
168
+
169
+ def arg_place_path() = @arg_place_path ||= ControllerShell.path_for(arg_place, arg_name)
170
+
171
+ set_input_string :place do |default|
172
+ available_places = env[:generator].available_places
173
+ place = nil
174
+ place = available_places.keys[0] if available_places.count == 1
175
+ place ||= begin
176
+ options = available_places.map do |place, path|
177
+ [
178
+ "#{place.ljust 30} path: #{path}",
179
+ place
180
+ ]
181
+ end.to_h
182
+ InputShell.pick_one "Where should the controller be placed?", options
183
+ end
184
+ place
185
+ end
186
+
187
+ end
@@ -0,0 +1,8 @@
1
+ # view section_controller.rb.erb
2
+
3
+ def self.call(env)
4
+ super
5
+ log stick :b, "TODO: Build a great DSL!"
6
+ log "env"
7
+ log env
8
+ end
@@ -0,0 +1,18 @@
1
+ # view section_controller_test.rb.erb
2
+
3
+ test :subject_class, :subject do
4
+ assert_equality subject_class, <%= @class_name[0..-5] %>
5
+ assert_equality subject.class, <%= @class_name[0..-5] %>
6
+ end
7
+
8
+ test_sections(
9
+ :subsystem=>{
10
+ :constants=>[],
11
+ :class_methods=>[:call],
12
+ :instance_methods=>[]
13
+ }
14
+ )
15
+
16
+ test :settings do
17
+ assert_equality subject_class.log_level, 4
18
+ end
@@ -0,0 +1,19 @@
1
+ # view section_panel.rb.erb
2
+
3
+ define_error(:not_found) do |args|
4
+ "<%= subsystem_name %> not found: #{args[0].inspect}"
5
+ end
6
+
7
+ def call(other_env)
8
+ log "not implemented"
9
+ # log "forging"
10
+ # env = { other_env: }
11
+
12
+ # log "finding"
13
+ # k = Liza.const "#{other_env[:<%= subsystem_name %>]}_<%= subsystem_name %>"
14
+
15
+ # log "forwarding"
16
+ # k.call env
17
+ # rescue Liza::ConstNotFound
18
+ # raise_error :not_found, string
19
+ end
@@ -0,0 +1,18 @@
1
+ # view section_panel_test.rb.erb
2
+
3
+ test :subject_class, :subject do
4
+ assert_equality subject_class, <%= @class_name[0..-5] %>
5
+ assert_equality subject.class, <%= @class_name[0..-5] %>
6
+ end
7
+
8
+ test_sections(
9
+ :subsystem=>{
10
+ :constants=>[],
11
+ :class_methods=>[],
12
+ :instance_methods=>[:call]
13
+ }
14
+ )
15
+
16
+ test :settings do
17
+ assert_equality subject.log_level, 4
18
+ end
@@ -0,0 +1,17 @@
1
+ class DevSystem::SubsystemGeneratorTest < DevSystem::SimpleGeneratorTest
2
+
3
+ section :subject
4
+
5
+ test :subject_class, :subject do
6
+ assert_equality subject_class, DevSystem::SubsystemGenerator
7
+ assert_equality subject.class, DevSystem::SubsystemGenerator
8
+ end
9
+
10
+ test_erbs_defined(
11
+ "section_controller.rb.erb",
12
+ "section_controller_test.rb.erb",
13
+ "section_panel.rb.erb",
14
+ "section_panel_test.rb.erb"
15
+ )
16
+
17
+ end
@@ -0,0 +1,117 @@
1
+ class DevSystem::SystemGenerator < DevSystem::SimpleGenerator
2
+
3
+ # liza g system name color=coral
4
+
5
+ def call_default
6
+
7
+ create_system
8
+ create_system_box
9
+ append_system_to_app
10
+ create_app_box
11
+ create_command
12
+ end
13
+
14
+ # liza g system:gemspec name
15
+ def call_gemspec
16
+ @rake_version = Gem::Specification.find_by_name("rake").version.to_s
17
+ create_file "#{gem_name}.gemspec", :gemspec, :rb
18
+ end
19
+
20
+ private
21
+
22
+ section :name
23
+
24
+ set_input_arg 1 do |default|
25
+ title = "New systems must have two names:"
26
+ InputShell.ask title, default: default
27
+ end
28
+
29
+ def system_name() = @system_name ||= arg_name
30
+
31
+ def gem_name() = "#{system_name}_system"
32
+
33
+ def arg_name
34
+ @arg_name ||= begin
35
+ name = nil
36
+ index = 1
37
+ until name.to_s.strip.size.positive?
38
+ name = command.given_args[index]
39
+ if name.to_s.strip.split("_").count < 2
40
+ # establish a default name
41
+ username = ENV['USER'] || ENV['USERNAME']
42
+ name = username if name.to_s.strip.size.zero?
43
+ default = "#{username}_#{name}"
44
+ # hacks the input block
45
+ value = instance_exec(default, &input_args[index])
46
+ # hacks the command's args
47
+ command.env[:simple_args][index] = value
48
+ # sets name, used by the above `until` loop
49
+ name = value
50
+ end
51
+ end
52
+ name
53
+ end
54
+ end
55
+
56
+ def color() = @color ||= command.simple_color(:color, string: "#{system_name.camelize}System")
57
+
58
+ section :sub_methods
59
+
60
+ def append_system_to_app
61
+ contents = read_file App.filename
62
+
63
+ old_lines = contents.split("\n")
64
+ lines = LineShell.extract_wall_of old_lines, " system :"
65
+ lines << " system :#{system_name}"
66
+ new_lines = LineShell.replace_wall_of old_lines, " system :", lines
67
+
68
+ contents = new_lines.join("\n")
69
+ update_file App.filename, contents
70
+ end
71
+
72
+ def create_system
73
+ unit, test = UnitHelper.new, UnitHelper.new
74
+ unit_classes = ["#{system_name.camelize}System", "Liza::System"]
75
+ test_classes = ["#{system_name.camelize}System::#{system_name.camelize}SystemTest", "Liza::SystemTest"]
76
+ unit_path = App.systems_directory / "#{system_name.snakecase}_system.rb"
77
+ test_path = App.systems_directory / "#{system_name.snakecase}_system" / "#{system_name.snakecase}_system_test.rb"
78
+
79
+ log stick system.color, "Creating system: #{system_name}"
80
+
81
+ unit.section name: :default, render_key: :section_system_default
82
+ unit.section name: :info, render_key: :section_system_info
83
+ test.section name: :systemic, render_key: :section_system_test
84
+
85
+ add_unit unit, unit_classes, unit_path
86
+ add_unit test, test_classes, test_path
87
+ end
88
+
89
+ def create_system_box
90
+ unit, test = UnitHelper.new, UnitHelper.new
91
+ unit_classes = ["#{system_name.camelize}System::#{system_name.camelize}Box", "Liza::Box"]
92
+ test_classes = ["#{system_name.camelize}System::#{system_name.camelize}BoxTest", "Liza::BoxTest"]
93
+ unit_path = App.systems_directory / "#{system_name.snakecase}_system" / "#{system_name.snakecase}_box.rb"
94
+ test_path = App.systems_directory / "#{system_name.snakecase}_system" / "#{system_name.snakecase}_box_test.rb"
95
+
96
+ unit.section name: :preconfiguration, render_key: :section_system_box_settings
97
+ test.section name: :systemic, render_key: :section_system_box_test
98
+
99
+ add_unit unit, unit_classes, unit_path
100
+ add_unit test, test_classes, test_path
101
+ end
102
+
103
+ def create_app_box
104
+ unit = UnitHelper.new
105
+ classes = ["#{system_name.camelize}Box", "#{system_name.camelize}System::#{system_name.camelize}Box"]
106
+ path = App.directory / "#{system_name.snakecase}_box.rb"
107
+
108
+ unit.section name: :configuration, render_key: :section_app_box_settings
109
+
110
+ add_unit unit, classes, path
111
+ end
112
+
113
+ def create_command
114
+ generate %w[command -prefix], system_name, "place=#{system_name}"
115
+ end
116
+
117
+ end
@@ -0,0 +1,36 @@
1
+ # view gemspec.rb.erb
2
+ # frozen_string_literal: true
3
+
4
+ Gem::Specification.new do |spec|
5
+ spec.name = <%= gem_name.inspect %>
6
+ spec.version = "1.0.0"
7
+ spec.authors = "Your Name"
8
+ spec.email = "your@email.com"
9
+
10
+ spec.summary = "Write a short summary, because RubyGems requires one."
11
+ spec.description = "Write a longer description or delete this line."
12
+ spec.homepage = "https://<%= gem_name %>.github.io"
13
+ spec.license = "MIT"
14
+ spec.required_ruby_version = ">= 3.1.0"
15
+
16
+ spec.metadata = {
17
+ "homepage_uri" => "https://github.com/<%= gem_name %>/<%= gem_name %>",
18
+ "changelog_uri" => "https://github.com/<%= gem_name %>/<%= gem_name %>/blob/main/CHANGELOG.md",
19
+ "source_code_uri" => "https://github.com/<%= gem_name %>/<%= gem_name %>",
20
+ "bug_tracker_uri" => "https://github.com/<%= gem_name %>/<%= gem_name %>/issues"
21
+ }
22
+
23
+ # Specify which files should be added to the gem when it is released.
24
+ spec.files = Dir.glob("lib/<%= gem_name %>*/**/*")
25
+ # spec.bindir = "bin"
26
+ # spec.executables = [""]
27
+ spec.require_paths = ["lib"]
28
+
29
+ # runtime dependencies
30
+
31
+ spec.add_dependency "lizarb", ">= <%= Lizarb::VERSION %>"
32
+
33
+ # development dependencies
34
+
35
+ spec.add_development_dependency "rake", "~> <%= @rake_version %>"
36
+ end
@@ -0,0 +1,4 @@
1
+ # view section_app_box_settings.rb.erb
2
+
3
+ # set :min_x, 0
4
+ # set :max_x, 100
@@ -0,0 +1,4 @@
1
+ # view section_system_box_settings.rb.erb
2
+
3
+ set :min_x, 0
4
+ set :max_x, 100
@@ -0,0 +1,12 @@
1
+ # view section_system_box_test.rb.erb
2
+
3
+ test :subject_class do
4
+ assert_equality subject_class, <%= @class_name[0..-5] %>
5
+ end
6
+
7
+ test_sections(
8
+ )
9
+
10
+ test :settings do
11
+ assert_equality subject_class.log_level, 4
12
+ end
@@ -0,0 +1,3 @@
1
+ # view section_system_default.rb.erb
2
+
3
+ color :<%= color %>
@@ -0,0 +1,3 @@
1
+ # view section_system_info.rb.erb
2
+
3
+ #
@@ -0,0 +1,5 @@
1
+ # view section_system_test.rb.erb
2
+
3
+ test :subject_class do
4
+ assert_equality subject_class, <%= @class_name[0..-5] %>
5
+ end
@@ -0,0 +1,7 @@
1
+ # view unit.rb.erb
2
+ class <%= @class_names[0] %> < <%= @class_names[1] %>
3
+ <% @current_unit.sections.each do |section| %>
4
+ <%= " section #{section[:name].inspect}" %>
5
+ <%= section[:content] -%>
6
+ <% end %>
7
+ end
@@ -0,0 +1,18 @@
1
+ class DevSystem::SystemGeneratorTest < DevSystem::SimpleGeneratorTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == DevSystem::SystemGenerator
5
+ end
6
+
7
+ test_erbs_defined(
8
+ "gemspec.rb.erb",
9
+ "section_app_box_settings.rb.erb",
10
+ "section_system_box_settings.rb.erb",
11
+ "section_system_box_test.rb.erb",
12
+ "section_system_default.rb.erb",
13
+ "section_system_info.rb.erb",
14
+ "section_system_test.rb.erb",
15
+ "unit.rb.erb"
16
+ )
17
+
18
+ end
@@ -0,0 +1,40 @@
1
+ class DevSystem::UnitShell < DevSystem::Shell
2
+
3
+ # Returns a flattened array of all subunits for a given unit.
4
+ #
5
+ # @param unit [Object] The unit to retrieve subunits for.
6
+ # @return [Array] A flattened array of subunits.
7
+ def self.subunits_flat(unit)
8
+ ret = []
9
+
10
+ rec = get_subunits_recursive(unit)
11
+ while rec.is_a? Hash
12
+ rec.each do |subunit, next_subs|
13
+ ret << subunit
14
+ rec = next_subs
15
+ end
16
+ end
17
+ ret += rec
18
+
19
+ ret
20
+ end
21
+
22
+ # Recursively retrieves subunits for a given unit and caches the result.
23
+ #
24
+ # @param unit [Object] The unit to retrieve subunits for.
25
+ # @return [Array, Hash] An array or hash of subunits.
26
+ def self.get_subunits_recursive(unit)
27
+ subs = unit.subunits
28
+ return [] if subs.empty?
29
+ h = subs.map do |subunit|
30
+ next_subs = get_subunits_recursive(subunit)
31
+ [subunit, next_subs]
32
+ end.to_h
33
+ if h.values.all?(&:empty?)
34
+ h.keys
35
+ else
36
+ h
37
+ end
38
+ end
39
+
40
+ end
@@ -0,0 +1,24 @@
1
+ class DevSystem::UnitShellTest < DevSystem::ShellTest
2
+
3
+ section :subject
4
+
5
+ test :subject_class, :subject do
6
+ assert_equality subject_class, DevSystem::UnitShell
7
+ assert_equality subject.class, DevSystem::UnitShell
8
+ end
9
+
10
+ test :get_subunits_recursive do
11
+ actual = subject_class.get_subunits_recursive(Unit).keys.map(&:to_s).sort
12
+ expected = %w[Liza::System Liza::Box Liza::Panel Liza::Test Liza::Controller Liza::Part].sort
13
+ assert_equality actual, expected
14
+
15
+ actual = subject_class.get_subunits_recursive(Liza::System).map(&:to_s).sort
16
+ expected = %w[DevSystem HappySystem NetSystem WebSystem WorkSystem MicroSystem DeskSystem CryptoSystem MediaSystem ArtSystem DeepSystem PrimeSystem LabSystem EcoSystem].sort
17
+ assert_equality actual, expected
18
+
19
+ actual = subject_class.get_subunits_recursive(DevSystem::DevBox).map(&:to_s).sort
20
+ expected = %w[DevBox].sort
21
+ assert_equality actual, expected
22
+ end
23
+
24
+ end
@@ -0,0 +1,94 @@
1
+ class DevSystem::ZeitwerkShell < DevSystem::Shell
2
+
3
+ def self.get_units_in_core
4
+ get_core_mappings.values.map(&:get)
5
+ end
6
+
7
+ def self.get_units_in_systems
8
+ ret = {}
9
+
10
+ App.systems.each do |key, system|
11
+ ret[key] = get_units_in_system(system)
12
+ end
13
+
14
+ ret
15
+ end
16
+
17
+ def self.get_units_in_system(system)
18
+ s = system.source_location_radical
19
+ ret = get_main_mappings
20
+ ret = ret.select { _1.start_with? s }
21
+ ret.values.map(&:get)
22
+ end
23
+
24
+ def self.get_units_in_app
25
+ s = App.directory.to_s
26
+ ret = get_main_mappings
27
+ ret = ret.select { _1.start_with? s }
28
+ ret.values.map(&:get)
29
+ end
30
+
31
+ def self.get_core_mappings
32
+ ret = {}
33
+
34
+ core_loader.__autoloads.each do |path, reference|
35
+ ret[path] = reference
36
+ end
37
+ core_loader.__to_unload.each do |name, (path, reference)|
38
+ ret[path] = reference
39
+ end
40
+
41
+ ret
42
+ end
43
+
44
+ def self.get_main_mappings
45
+ ret = {}
46
+
47
+ main_loader.__autoloads.each do |path, reference|
48
+ ret[path] = reference
49
+ end
50
+ main_loader.__to_unload.each do |name, (path, reference)|
51
+ ret[path] = reference
52
+ end
53
+
54
+ ret
55
+ end
56
+
57
+ def self.get_unit_in_system(system, name)
58
+ cname = name.to_s.camelcase.to_sym
59
+ mappings = get_mappings_in_system(system)
60
+ references = mappings.values.select { _1.cname == cname }
61
+ references.first.get
62
+ rescue NoMethodError
63
+ nil
64
+ end
65
+
66
+ def self.get_unit_in_app(name)
67
+ cname = name.to_s.camelcase.to_sym
68
+ mappings = get_mappings_in_app
69
+ references = mappings.values.select { _1.cname == cname }
70
+ references.first.get
71
+ rescue NoMethodError
72
+ nil
73
+ end
74
+
75
+
76
+ def self.get_mappings_in_system(system)
77
+ s = system.source_location_radical
78
+ ret = get_main_mappings
79
+ ret = ret.select { _1.start_with? s }
80
+ ret
81
+ end
82
+
83
+ def self.get_mappings_in_app
84
+ s = App.directory.to_s
85
+ ret = get_main_mappings
86
+ ret = ret.select { _1.start_with? s }
87
+ ret
88
+ end
89
+
90
+ def self.core_loader() = Lizarb.loaders[0]
91
+
92
+ def self.main_loader() = Lizarb.loaders[1]
93
+
94
+ end
@@ -0,0 +1,14 @@
1
+ class DevSystem::ZeitwerkShellTest < DevSystem::ShellTest
2
+
3
+ section :subject
4
+
5
+ test :subject_class, :subject do
6
+ assert_equality subject_class, DevSystem::ZeitwerkShell
7
+ assert_equality subject.class, DevSystem::ZeitwerkShell
8
+ end
9
+
10
+ test :get_units_in_core do
11
+ assert_equality subject_class.get_units_in_core.count, 22
12
+ end
13
+
14
+ end
@@ -0,0 +1,9 @@
1
+ class DevSystem::Bench < Liza::Controller
2
+
3
+ #
4
+
5
+ set :plural, :benches
6
+
7
+ part :command_shortcut, :controller
8
+
9
+ end