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
data/lib/liza/unit.rb CHANGED
@@ -1,149 +1,687 @@
1
1
  class Liza::Unit
2
2
 
3
- # PARTS
3
+ # Define a section
4
+ def self.section(name)
5
+ @current_section = name.to_sym
6
+ end
4
7
 
5
- def self.part key, system: nil
6
- App.connect_part self, key, system
8
+ # Retrieve the sections
9
+ def self.sections
10
+ @sections ||= Hash.new { |h, k| h[k] = { constants: [], class_methods: [], instance_methods: [] } }
7
11
  end
8
12
 
9
- # CONST MISSING
13
+ # Hook into singleton method definition to capture class methods under the current section
14
+ def self.singleton_method_added(method_name)
15
+ sections[@current_section || :default][:class_methods] << method_name
16
+ end
17
+
18
+ singleton_method_added :section
19
+ singleton_method_added :sections
20
+
21
+ # Hook into method definition to capture instance methods under the current section
22
+ def self.method_added(method_name)
23
+ sections[@current_section || :default][:instance_methods] << method_name
24
+ end
25
+
26
+ # Hook into constant definition to capture constants under the current section
27
+ def self.const_added(name)
28
+ super
29
+ # ensures dynamic constants are not captured
30
+ return unless const_defined? name
31
+ # ensures constants defined in the System class are not captured
32
+ return if self < Liza::System
33
+ sections[@current_section || :default][:constants] << name
34
+ end
35
+
36
+ # Alias for class_methods_defined
37
+ def self.methods_defined() = class_methods_defined
10
38
 
11
- if Lizarb.ruby_supports_raise_cause?
39
+ # Retrieves all defined class methods.
40
+ # @return [Array<Symbol>] an array of all defined class method names
41
+ def self.class_methods_defined() = sections.values.map { _1[:class_methods] }.flatten
42
+
43
+ # Retrieves all defined instance methods.
44
+ # @return [Array<Symbol>] an array of all defined instance method names
45
+ def self.instance_methods_defined() = sections.values.map { _1[:instance_methods] }.flatten
46
+
47
+ # Retrieves all defined constants.
48
+ # @return [Array<Symbol>] an array of all defined constant names
49
+ def self.constants_defined() = sections.values.map { _1[:constants] }.flatten
50
+
51
+ # ERROR
52
+
53
+ class Error < Liza::Error; end
54
+
55
+ # PART
56
+
57
+ # Inserts a part into the unit.
58
+ # @param key [Symbol] the key of the part
59
+ # @param insertion [Symbol] the insertion method
60
+ def self.part(key, insertion = :default)
61
+ part_class = Liza.const "#{key}_part"
62
+ insertion = part_class.insertion(insertion)
63
+
64
+ section "#{key}_part"
65
+ class_exec(&insertion)
66
+ end
67
+
68
+ # CONST MISSING
12
69
 
13
- def self.const_missing name
14
- Liza.const name
15
- rescue Liza::ConstNotFound
70
+ def self.const_missing name
71
+ Liza.const name
72
+ rescue Liza::ConstNotFound
73
+ if Lizarb.ruby_supports_raise_cause?
16
74
  raise NameError, "uninitialized constant #{name}", caller[1..], cause: nil
75
+ else
76
+ raise NameError, "uninitialized constant #{name}", caller
17
77
  end
78
+ end
79
+
80
+ section :setting
81
+
82
+ def self.settings
83
+ @settings ||= {}
84
+ end
18
85
 
19
- else
86
+ def self.get key
87
+ return settings[key] if settings.has_key? key
20
88
 
21
- def self.const_missing name
22
- Liza.const name
23
- rescue Liza::ConstNotFound
24
- raise NameError, "uninitialized constant #{name}", caller[1..]
89
+ found = nil
90
+
91
+ for klass in ancestors
92
+ break unless klass.respond_to? :settings
93
+
94
+ if klass.settings.has_key? key
95
+ found = klass.settings[key]
96
+
97
+ break
98
+ end
25
99
  end
26
100
 
101
+ found = settings[key] = found.dup if found.is_a? Enumerable
102
+
103
+ found
27
104
  end
28
105
 
29
- part :unit_procedure
30
- part :unit_settings
106
+ def self.set key, value
107
+ settings[key] = value
108
+ value
109
+ end
31
110
 
32
- # LOG
111
+ def self.add list, key = nil, value
112
+ if key
113
+ fetch(list) { Hash.new }[key] = value
114
+ else
115
+ fetch(list) { Set.new } << value
116
+ end
117
+ end
118
+
119
+ def self.fetch key, &block
120
+ x = get key
121
+ x ||= set key, instance_eval(&block)
122
+ x
123
+ end
124
+
125
+ def settings
126
+ @settings ||= {}
127
+ end
33
128
 
34
- LOG_LEVELS = {
35
- :higher => 2,
36
- :high => 1,
37
- :normal => 0,
38
- :low => -1,
39
- :lower => -2,
40
- }
129
+ def get key
130
+ return settings[key] if settings.has_key? key
41
131
 
42
- set :log_level, :normal
43
- set :log_color, :white
132
+ self.class.get key
133
+ end
134
+
135
+ def set key, value
136
+ settings[key] = value
137
+ end
138
+
139
+ def add list, key = nil, value
140
+ if key
141
+ fetch(list) { Hash.new }[key] = value
142
+ else
143
+ fetch(list) { Set.new } << value
144
+ end
145
+ end
146
+
147
+ def fetch key, &block
148
+ x = get key
149
+ x ||= set key, instance_eval(&block)
150
+ x
151
+ end
44
152
 
45
- # NOTE: improve logs performance and readability
153
+ section :associating
46
154
 
47
- LOG_JUST = 60
155
+ def self.namespace
156
+ return @namespace if defined? @namespace
48
157
 
49
- def self.build_log_sidebar_for source, method_key, method_sep, panel_key: nil
50
- source = (source.is_a? Class) ? source : source.class
51
- source_color = source.log_color
52
- source = source.to_s
158
+ @namespace ||= Object unless to_s.include? "::"
159
+ @namespace ||= Liza if to_s.start_with? "Liza::"
160
+ @namespace ||= system
161
+ @namespace
162
+ end
53
163
 
54
- s = source.bold.colorize(source_color)
55
- s << "[:#{panel_key}]" if panel_key
56
- s << "#{method_sep}#{method_key}"
57
- s.ljust(LOG_JUST)
164
+ def self.subclasses_select system:
165
+ subclasses.select { _1.system? system }
58
166
  end
59
167
 
60
- # NOTE: This code needs to be optimized.
61
- def self._log_extract_method_name kaller
62
- kaller.each do |s|
63
- t = s.match(/`(.*)'/)[1]
168
+ def self.descendants_select system:
169
+ descendants.select { _1.system? system }
170
+ end
64
171
 
65
- next if t.include? " in <class:"
66
- return t.split(" ").last if t.include? " in "
67
-
68
- next if t == "log"
69
- next if t == "each"
70
- next if t == "map"
71
- next if t == "with_index"
72
- next if t == "instance_exec"
73
- next if t.start_with? "_"
74
- return t
172
+ def self.subunits
173
+ Lizarb.eager_load!
174
+ subclasses.select { _1.name&.start_with?(/[A-Z]/) }
175
+ end
176
+
177
+ def self.system? system
178
+ system = Liza.const "#{system}_system" if system.is_a? Symbol
179
+ system == get(:system)
180
+ end
181
+
182
+ # TEST
183
+
184
+ def self.test_class
185
+ if first_namespace == "Liza"
186
+ Liza.const_get "#{last_namespace}Test"
187
+ elsif self < Liza::System
188
+ const "#{last_namespace}Test"
189
+ else
190
+ Object.const_get "#{name}Test"
75
191
  end
192
+ end
193
+
194
+ # CONTROLLER
195
+
196
+ def self.division
197
+ Liza::Controller
198
+ end
199
+
200
+ # SYSTEM
201
+
202
+ def self.system
203
+ if name&.include? "::"
204
+ return System if first_namespace == "Liza"
205
+ Object.const_get first_namespace
206
+ else
207
+ superclass.system
208
+ end
209
+ end
210
+
211
+ singleton_class.send :public, :system
76
212
 
77
- raise "there's something wrong with kaller"
213
+ def system
214
+ self.class.system
78
215
  end
79
216
 
80
- def _log_extract_method_name kaller
81
- self.class._log_extract_method_name kaller
217
+ public :system
218
+
219
+ section :erroring
220
+
221
+ def self.errors
222
+ fetch(:errors) { {} }
82
223
  end
83
224
 
84
- def self.log log_level = :normal, string, kaller: caller
85
- raise "invalid log_level `#{log_level}`" unless LOG_LEVELS.keys.include? log_level
86
- return unless log_level? log_level
225
+ def self.define_error(error_key, &block)
226
+ self.const_set :Error, Class.new(StandardError) unless defined? Error
87
227
 
88
- method_key = _log_extract_method_name kaller
89
- source = Liza::Unit.build_log_sidebar_for self, method_key, ":"
228
+ error_class = Error
229
+ error_class = Class.new error_class
230
+ error_class = self.const_set "#{error_key.to_s.camelcase}Error", error_class
231
+
232
+ errors[error_key] = [error_class, block]
233
+ end
90
234
 
91
- DevBox[:log].call "#{source} #{string}"
235
+ def self.raise_error(error_key, *args, kaller: caller)
236
+ error, message_block = errors[error_key]
237
+ raise error, message_block.call(args), kaller
92
238
  end
93
239
 
94
- def log log_level = :normal, string, kaller: caller
95
- raise "invalid log_level `#{log_level}`" unless LOG_LEVELS.keys.include? log_level
96
- return unless log_level? log_level
240
+ def raise_error(error_key, *args, kaller: caller)
241
+ error, message_block = self.class.errors[error_key]
242
+ raise error, message_block.call(args), kaller
243
+ end
244
+
245
+ section :logging
97
246
 
98
- method_key = _log_extract_method_name kaller
247
+ # LOG
99
248
 
100
- case self
101
- when Liza::Panel
102
- source = Liza::Unit.build_log_sidebar_for box, method_key, ".", panel_key: @key
103
- when Liza::UnitTest
104
- source = Liza::Unit.build_log_sidebar_for self, " ", " "
249
+ def self.log_levels()=App::LOG_LEVELS
250
+ def log_levels()= App::LOG_LEVELS
251
+
252
+ def self.log(
253
+ log_level = App::DEFAULT_LOG_LEVEL,
254
+ object,
255
+ unit: self,
256
+ method_name: nil,
257
+ sidebar: nil,
258
+ kaller: caller
259
+ )
260
+ log_level = log_levels[log_level] if log_level.is_a? Symbol
261
+ raise "invalid log_level `#{log_level}`" unless log_levels.values.include? log_level
262
+ return unless log_level? log_level
263
+
264
+ unit_class = unit.is_a?(Class) ? unit : unit.class
265
+ object_class = object.is_a?(Class) ? object : object.class
266
+
267
+ env = {}
268
+ env[:type] = :log
269
+ env[:unit] = unit
270
+ env[:unit_class] = unit_class
271
+ env[:method_name] = method_name
272
+ env[:sidebar] = sidebar
273
+ env[:message_log_level] = log_level
274
+ env[:unit_log_level] = unit.log_level
275
+ env[:caller] = kaller
276
+ env[:object] = object
277
+ env[:object_class] = object_class
278
+
279
+ DevBox.logg env
280
+ end
281
+
282
+ def log(
283
+ log_level = App::DEFAULT_LOG_LEVEL,
284
+ object,
285
+ unit: self,
286
+ method_name: nil,
287
+ sidebar: nil,
288
+ kaller: caller
289
+ )
290
+ log_level = log_levels[log_level] if log_level.is_a? Symbol
291
+ raise "invalid log_level `#{log_level}`" unless log_levels.values.include? log_level
292
+ return unless log_level? log_level
293
+
294
+ unit_class = unit.is_a?(Class) ? unit : unit.class
295
+ object_class = object.is_a?(Class) ? object : object.class
296
+
297
+ env = {}
298
+ env[:type] = :log
299
+ env[:unit] = unit
300
+ env[:unit_class] = unit_class
301
+ env[:method_name] = method_name
302
+ env[:sidebar] = sidebar
303
+ env[:message_log_level] = log_level
304
+ env[:unit_log_level] = unit.log_level
305
+ env[:caller] = kaller
306
+ env[:object] = object
307
+ env[:object_class] = object_class
308
+
309
+ DevBox.logg env
310
+ end
311
+
312
+ def self.stick(*args)
313
+ StickLog.new(*args)
314
+ end
315
+
316
+ def stick(*args)
317
+ StickLog.new(*args)
318
+ end
319
+
320
+ def self.sticks(*args)
321
+ StickLog.bundle(*args)
322
+ end
323
+
324
+ def sticks(*args)
325
+ StickLog.bundle(*args)
326
+ end
327
+
328
+ #
329
+
330
+ def self.log_level new_value = nil
331
+ if new_value
332
+ new_value = log_levels[new_value] if new_value.is_a? Symbol
333
+ raise "invalid log_level `#{new_value}`" unless log_levels.values.include? new_value
334
+ set :log_level, new_value
335
+ else
336
+ get :log_level
337
+ end
338
+ end
339
+
340
+ def log_level new_value = nil
341
+ if new_value
342
+ new_value = log_levels[new_value] if new_value.is_a? Symbol
343
+ raise "invalid log_level `#{new_value}`" unless log_levels.values.include? new_value
344
+ set :log_level, new_value
345
+ else
346
+ get :log_level
347
+ end
348
+ end
349
+
350
+ #
351
+
352
+ def self.log_hash log_level = :normal, hash, prefix: "", kaller: caller[1..-1]
353
+ prefix = prefix.to_s
354
+ size = hash.keys.map(&:to_s).map(&:size).max
355
+
356
+ hash.each do |k,v|
357
+ log log_level, "#{prefix}#{k.to_s.ljust size} = #{v.to_s.inspect}", kaller: kaller
358
+ end
359
+ end
360
+
361
+ def log_hash log_level = :normal, hash, prefix: "", kaller: caller[1..-1]
362
+ prefix = prefix.to_s
363
+ size = hash.keys.map(&:to_s).map(&:size).max
364
+
365
+ hash.each do |k,v|
366
+ log log_level, "#{prefix}#{k.to_s.ljust size} = #{v.to_s.inspect}", kaller: kaller
367
+ end
368
+ end
369
+
370
+ #
371
+
372
+ def self.log_array log_level = :normal, array, prefix: "", kaller: caller[1..-1]
373
+ prefix = prefix.to_s
374
+ size = array.size.to_s.size+1
375
+
376
+ array.each.with_index do |v, i|
377
+ log log_level, "#{prefix}#{i.to_s.ljust size} = #{v.inspect}", kaller: kaller
378
+ end
379
+ end
380
+
381
+ def log_array log_level = :normal, array, prefix: "", kaller: caller[1..-1]
382
+ prefix = prefix.to_s
383
+ size = array.size.to_s.size+1
384
+
385
+ array.each.with_index do |v, i|
386
+ log log_level, "#{prefix}#{i.to_s.ljust size} = #{v.inspect}", kaller: kaller
387
+ end
388
+ end
389
+
390
+ #
391
+
392
+ def self.log?(...)= log_level?(...)
393
+ def log?(...)= log_level?(...)
394
+
395
+ def self.log_level? log_level = App::DEFAULT_LOG_LEVEL
396
+ log_level = log_levels[log_level] if log_level.is_a? Symbol
397
+ log_level <= self.log_level
398
+ end
399
+
400
+ def log_level? log_level = App::DEFAULT_LOG_LEVEL
401
+ log_level = log_levels[log_level] if log_level.is_a? Symbol
402
+ log_level <= self.log_level
403
+ end
404
+
405
+ section :sleep
406
+
407
+ def self.sleep(seconds)
408
+ log :lower, "Sleeping for #{seconds}s... #{ "| #{caller[0]}" if log? :low }"
409
+ Kernel.sleep seconds
410
+ end
411
+
412
+ def sleep(seconds)
413
+ log :lower, "Sleeping for #{seconds}s... #{ caller[0] if log? :low }"
414
+ Kernel.sleep seconds
415
+ end
416
+
417
+
418
+ section :rendering
419
+
420
+ define_error(:renderer_not_found) do |args|
421
+ "ERB \"#{args[0]}.#{args[1]}.erb\" not found"
422
+ end
423
+
424
+ define_error(:render_stack_is_empty) do |args|
425
+ <<~STRING
426
+ You called render without ERB keys,
427
+ but the render stack is empty.
428
+ Did you forget to add ERB keys?
429
+ STRING
430
+ end
431
+
432
+ define_error(:render_stack_is_full) do |args|
433
+ <<~STRING
434
+ You called render with too many ERB keys.
435
+ Did you accidentally fall into an infinite loop?
436
+ STRING
437
+ end
438
+
439
+ def render!(
440
+ *keys,
441
+ format: nil,
442
+ converted: false,
443
+ formatted: false
444
+ )
445
+ render(
446
+ *keys,
447
+ format: format,
448
+ converted: converted,
449
+ formatted: formatted,
450
+ allow_missing: false
451
+ )
452
+ end
453
+
454
+ def render(
455
+ *keys,
456
+ format: nil,
457
+ converted: false,
458
+ formatted: false,
459
+ allow_missing: true
460
+ )
461
+ original_render_format = @render_format
462
+ format = @render_format ||= @format if format.nil?
463
+ raise "@render_format or @format must be set, or format keyword-argument must be given" if format.nil?
464
+ @render_format = format = format.to_sym
465
+
466
+ log_rendering = log_level? :high
467
+
468
+ if keys.any?
469
+ log_render_in keys, kaller: caller if log_rendering
470
+
471
+ erbs = self.class.erbs_for format, keys, allow_missing: allow_missing
472
+ erbs.to_a.reverse.each do |key, erb|
473
+ if true
474
+ t = Time.now
475
+ s = erb.result binding, self
476
+ log_render_out "#{erb.name}.#{erb.format}", s.length, t.diff, kaller: caller if log_rendering
477
+ end
478
+
479
+ if converted and DevBox[:shell].convert? erb.format
480
+ t = Time.now
481
+ convert_env = {format: format, convert_in: s}
482
+ DevBox.convert(convert_env)
483
+ s = convert_env[:convert_out]
484
+ log_render_convert "#{erb.name}.#{format}", s.length, t.diff, kaller: caller if log_rendering
485
+ end
486
+
487
+ if formatted and DevBox[:shell].format? erb.format
488
+ t = Time.now
489
+ format_env = {format: format, format_in: s}
490
+ DevBox.format(format_env)
491
+ s = format_env[:format_out]
492
+ log_render_format "#{erb.name}.#{format}", s.length, t.diff, kaller: caller if log_rendering
493
+ end
494
+
495
+ render_stack.push s
496
+
497
+ raise_error :render_stack_is_full, kaller: caller if render_stack.size > 10
498
+ end
499
+
500
+ @render_format = original_render_format
501
+ render_stack.pop
502
+ elsif render_stack.any?
503
+ @render_format = original_render_format
504
+ render_stack.pop
105
505
  else
106
- source = Liza::Unit.build_log_sidebar_for self, method_key, "#"
506
+ raise_error :render_stack_is_empty, kaller: caller
107
507
  end
508
+ end
108
509
 
109
- DevBox[:log].call "#{source} #{string}"
510
+ def render_stack
511
+ @render_stack ||= []
110
512
  end
111
513
 
112
- #
514
+ def log_render_in keys, kaller:
515
+ if render_stack.any?
516
+ log "render → #{keys.join " "}", kaller: kaller
517
+ else
518
+ log "render #{"→ " * keys.size}#{keys.join " "}", kaller: kaller
519
+ end
520
+ end
113
521
 
114
- def self.log_level
115
- get(:log_level) || :normal
522
+ def log_render_out key, length, t, kaller:
523
+ if render_stack.any?
524
+ log "render #{"← #{key}".ljust_blanks 25} #{length.to_s.rjust_blanks 4} characters in #{t}s", kaller: kaller
525
+ else
526
+ log "render #{"← #{key}".ljust_blanks 25} #{length.to_s.rjust_blanks 4} characters in #{t}s", kaller: kaller
527
+ end
116
528
  end
117
529
 
118
- def self.log_level? log_level = :normal
119
- # TODO
120
- true
530
+ def log_render_convert key, length, t, kaller:
531
+ log "convert #{"#{key}".ljust_blanks 23} #{length.to_s.rjust_blanks 4} characters in #{t}s", kaller: kaller
121
532
  end
122
533
 
123
- def self.log_color
124
- (get(:system) || self).get :log_color
534
+ def log_render_format key, length, t, kaller:
535
+ log "format #{"#{key}".ljust_blanks 23} #{length.to_s.rjust_blanks 4} characters in #{t}s", kaller: kaller
125
536
  end
126
537
 
127
- def self.log?(log_level = :normal)= log_level? log_level
128
- def log_level(...)= self.class.log_level(...)
129
- def log?(...)= self.class.log?(...)
130
- def log_level?(...)= self.class.log_level?(...)
131
- def log_color(...)= self.class.log_color(...)
538
+ # class level methods
132
539
 
133
- # SYSTEM
540
+ def self.erbs_defined
541
+ @erbs_defined ||= ErbShell.load(self.source_location_radical)
542
+ end
543
+
544
+ def self.erbs_available ref = Liza::Unit
545
+ @erbs_available ||= begin
546
+ h = {}
547
+
548
+ ancestors.take_while do |ancestor|
549
+ ancestor != ref
550
+ end.reverse.each do |ancestor|
551
+ ancestor.erbs_defined.each do |erb|
552
+ h[erb.key] = erb
553
+ end
554
+ end
555
+
556
+ h.values
557
+ end
558
+ end
134
559
 
135
- def self.inherited_explicitly_sets_system
560
+ def self.renderable_names
561
+ erbs_available.map(&:name).uniq
562
+ end
136
563
 
137
- def self.inherited sub
138
- super
564
+ def self.renderable_formats_for name_string
565
+ erbs_available.select { _1.name == name_string }
566
+ end
139
567
 
140
- return unless sub.name.to_s.include? "::"
568
+ def self.erbs_for format, names, allow_missing:
569
+ @erbs_for ||= {}
570
+ k = "#{format}-#{names.join("-")}"
571
+ @erbs_for[k] ||= _erbs_for format, names, allow_missing:
572
+ end
141
573
 
142
- system = Object.const_get sub.first_namespace
574
+ def self._erbs_for format, names, allow_missing:
575
+ ret = {}
143
576
 
144
- sub.set :system, system
577
+ log_erb = log_level? :higher
578
+
579
+ converters = DevBox[:shell].converters_to[format] || []
580
+ converters_from = converters.map { _1[:from] }
581
+ format_with_converters_from = [format, *converters_from]
582
+ log "names #{stick :light_green, names.join(" ")} | formats #{stick :light_green, format_with_converters_from.join(" ")}" if log_erb
583
+
584
+ names.each do |name|
585
+ name_string = name.to_s
586
+ log stick :onyx, " #{name_string}#{".*.erb # filtering name "} #{renderable_names.join(" ")}" if log_erb
587
+
588
+ name_candidates = renderable_formats_for name_string
589
+ if name_candidates.none?
590
+
591
+ if allow_missing
592
+ log stick :light_yellow, " #{name_string}.#{format}.erb not found, but allow_missing: true" if log_erb
593
+ found = Liza::Unit.erbs_defined.first
594
+ else
595
+ log stick :light_red, " #{name}.#{format}.erb not found, and allow_missing: false"
596
+ raise_error :renderer_not_found, name, format
597
+ end
598
+
599
+ else
600
+
601
+ log stick :onyx, " #{name_string}#{".*.erb # filtering format "}#{name_candidates.map(&:format).join(" ")}" if log_erb
602
+
603
+ found = name_candidates.find do |erb|
604
+ erb_format_sym = erb.format.to_sym
605
+ format_with_converters_from.include? erb_format_sym
606
+ end
607
+
608
+ if found
609
+ log stick :light_green, " #{found.key} found" if log_erb
610
+ else
611
+ if allow_missing
612
+ log stick :light_yellow, " #{name}.#{format}.erb not found, but allow_missing: true" if log_erb
613
+ found = Liza::Unit.erbs_defined.first
614
+ else
615
+ log stick :light_red, " #{name}.#{format}.erb not found, and allow_missing: false"
616
+ raise_error :renderer_not_found, name, format
617
+ end
618
+ end
619
+
620
+ end
621
+
622
+ ret[name] = found
145
623
  end
146
624
 
625
+ ret
147
626
  end
148
627
 
628
+ section :default
629
+
630
+ def self.reload!
631
+ Lizarb.reload
632
+ end
633
+
634
+ def reload!
635
+ Lizarb.reload
636
+ end
637
+
638
+ ##
639
+ # :call-seq:
640
+ # Unit.cl -> Class
641
+ #
642
+ # Returns the class itself.
643
+ def self.cl() = self
644
+
645
+ ##
646
+ # :call-seq:
647
+ # unit_instance.cl -> Class
648
+ #
649
+ # Returns the class of the current instance.
650
+ def cl() = self.class
651
+
652
+ ##
653
+ # :call-seq:
654
+ # Unit.time_diff(t[, digits]) -> String
655
+ #
656
+ # Returns a time difference string with a fixed decimal precision.
657
+ #
658
+ # - +t+: A time-like object to compare to the current time.
659
+ # - +digits+: Integer specifying the decimal precision (defaults to 4).
660
+ #
661
+ # Raises ArgumentError if +digits+ is not a positive Integer.
662
+ #
663
+ def self.time_diff(t, digits = 4)
664
+ raise ArgumentError, "digits must be a positive integer" unless digits.is_a?(Integer) && digits.positive?
665
+ f = (Time.now.to_f - t.to_f).floor(digits)
666
+ u, d = f.to_s.split "."
667
+ "#{u}.#{d.ljust digits, "0"}"
668
+ end
669
+
670
+ ##
671
+ # :call-seq:
672
+ # unit_instance.time_diff(t[, digits]) -> String
673
+ #
674
+ # Convenience instance method delegating to +Unit.time_diff+.
675
+ # Returns the time difference string with the specified decimal precision.
676
+ #
677
+ def time_diff(t, digits = 4)= self.class.time_diff t, digits
678
+
679
+ set :log_level, App.log_level
680
+ set :division, Liza::Controller
681
+
149
682
  end
683
+
684
+ __END__
685
+
686
+ # view render.txt.erb
687
+ <%= render if render_stack.any? -%>