lizarb 1.0.4 → 1.0.5

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 (441) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +34 -7
  3. data/Gemfile.lock +176 -14
  4. data/README.md +53 -9
  5. data/app/dev/commands/color_command.rb +29 -0
  6. data/app/dev/commands/color_command_test.rb +10 -0
  7. data/app/dev/commands/stick_command.rb +102 -0
  8. data/app/dev/commands/stick_command_test.rb +19 -0
  9. data/app/dev_box.rb +49 -17
  10. data/app/happy_box.rb +3 -2
  11. data/app/net/databases/redis_db.rb +1 -1
  12. data/app/net/databases/redis_db_test.rb +5 -5
  13. data/app/net/databases/sqlite_db.rb +1 -1
  14. data/app/net/databases/sqlite_db_test.rb +5 -5
  15. data/app/net/records/app_record.rb +1 -1
  16. data/app/net/records/app_record_test.rb +1 -1
  17. data/app/net/records/post_record_test.rb +1 -1
  18. data/app/net/records/user_record_test.rb +1 -1
  19. data/app/net_box.rb +29 -6
  20. data/app/web/requests/app_request.rb +1 -1
  21. data/app/web/requests/app_request_test.rb +1 -1
  22. data/app/web/requests/foo_request.rb +26 -0
  23. data/app/web/requests/foo_request_test.rb +7 -0
  24. data/app/web_box.rb +16 -8
  25. data/app.rb +38 -6
  26. data/app_global.gemfile.rb +1 -1
  27. data/app_global.gemfile.rb.lock +25 -3
  28. data/app_global.rb +1 -0
  29. data/{app_new → examples/bench/app}/dev/benches/loops_bench.rb +10 -3
  30. data/{app_new → examples/bench/app}/dev/benches/loops_bench_test.rb +1 -2
  31. data/examples/bench/app/dev/benches/objects_bench.rb +48 -0
  32. data/{app_new → examples/bench/app}/dev/benches/objects_bench_test.rb +1 -2
  33. data/{app_new → examples/bench/app}/dev/benches/sorted_bench.rb +28 -8
  34. data/examples/bench/app/dev/benches/sorted_bench_test.rb +11 -0
  35. data/{app_new → examples/bench/app}/dev/benches/variables_bench.rb +8 -2
  36. data/{app_new → examples/bench/app}/dev/benches/variables_bench_test.rb +1 -2
  37. data/examples/client/app/net/clients/news_client.rb +42 -0
  38. data/examples/client/app/net/clients/news_client_test.rb +24 -0
  39. data/{app_new → examples/command/app}/dev/commands/calculator_command.rb +1 -1
  40. data/{app_new → examples/command/app}/dev/commands/calculator_command_test.rb +1 -2
  41. data/{app_new → examples/command/app}/dev/commands/circle_command.rb +1 -1
  42. data/{app_new → examples/command/app}/dev/commands/circle_command_test.rb +1 -2
  43. data/{app_new → examples/command/app}/dev/commands/narrative_method_command.rb +3 -3
  44. data/{app_new → examples/command/app}/dev/commands/narrative_method_command_test.rb +2 -3
  45. data/{app_new → examples/command/app}/dev/commands/quadratic_command.rb +1 -1
  46. data/{app_new → examples/command/app}/dev/commands/quadratic_command_test.rb +1 -2
  47. data/examples/command/app/dev_box.rb +3 -0
  48. data/examples/log/app/dev/logs/logger_log.rb +8 -0
  49. data/examples/log/app/dev/logs/logger_log_test.rb +16 -0
  50. data/examples/new/app/dev_box.rb +67 -0
  51. data/examples/new/app.rb +41 -0
  52. data/examples/shell/app/dev/shells/bash_adapter_shell.rb +25 -0
  53. data/examples/shell/app/dev/shells/bash_adapter_shell_test.rb +23 -0
  54. data/examples/shell/app/dev/shells/business_logic_shell.rb +42 -0
  55. data/examples/shell/app/dev/shells/business_logic_shell_test.rb +39 -0
  56. data/examples/shell/app/dev/shells/gem_adapter_shell.rb +33 -0
  57. data/examples/shell/app/dev/shells/gem_adapter_shell_test.rb +23 -0
  58. data/exe/liza +6 -1
  59. data/exe/lizarb +1 -1
  60. data/lib/app.rb +71 -74
  61. data/lib/art_system/art_box.rb +5 -0
  62. data/lib/art_system/art_box_test.rb +8 -0
  63. data/lib/art_system.rb +8 -0
  64. data/lib/crypto_system/crypto_box.rb +5 -0
  65. data/lib/crypto_system/crypto_box_test.rb +8 -0
  66. data/lib/crypto_system.rb +8 -0
  67. data/lib/deep_system/deep_box.rb +5 -0
  68. data/lib/deep_system/deep_box_test.rb +8 -0
  69. data/lib/deep_system.rb +8 -0
  70. data/lib/desk_system/commands/glimmer_command.rb +26 -0
  71. data/lib/desk_system/commands/glimmer_command_test.rb +10 -0
  72. data/lib/desk_system/desk_box.rb +5 -0
  73. data/lib/desk_system/desk_box_test.rb +8 -0
  74. data/lib/desk_system.rb +8 -0
  75. data/lib/dev_system/{dev/controllers/command → commands}/test_command.rb +32 -4
  76. data/lib/dev_system/{dev/controllers/command → commands}/test_command_test.rb +1 -2
  77. data/lib/dev_system/dev_box.rb +79 -0
  78. data/lib/dev_system/dev_box_test.rb +33 -0
  79. data/lib/dev_system/generators/env_generator.rb +87 -0
  80. data/lib/dev_system/generators/env_generator_test.rb +11 -0
  81. data/lib/dev_system/generators/gemfile_generator.rb +47 -0
  82. data/lib/dev_system/generators/gemfile_generator_test.rb +11 -0
  83. data/lib/dev_system/generators/system_generator.rb +70 -0
  84. data/lib/dev_system/generators/system_generator_test.rb +11 -0
  85. data/lib/dev_system/{dev/controllers → sub/bench}/bench.rb +4 -0
  86. data/lib/dev_system/{dev/panels → sub/bench}/bench_panel_test.rb +6 -2
  87. data/lib/dev_system/sub/bench/bench_test.rb +24 -0
  88. data/lib/dev_system/{dev/controllers/bench → sub/bench/benches}/not_found_bench.rb +1 -2
  89. data/lib/dev_system/{dev/controllers/bench → sub/bench/benches}/not_found_bench_test.rb +1 -2
  90. data/lib/dev_system/{dev/controllers/command → sub/bench/commands}/bench_command.rb +1 -5
  91. data/lib/dev_system/{dev/controllers/command → sub/bench/commands}/bench_command_test.rb +1 -2
  92. data/lib/dev_system/sub/bench/generators/bench_generator.rb +70 -0
  93. data/lib/dev_system/sub/bench/generators/bench_generator_test.rb +10 -0
  94. data/lib/dev_system/sub/command/command.rb +28 -0
  95. data/lib/dev_system/sub/command/command_panel.rb +151 -0
  96. data/lib/dev_system/sub/command/command_panel_test.rb +78 -0
  97. data/lib/dev_system/{dev/controllers → sub/command}/command_test.rb +6 -2
  98. data/lib/dev_system/sub/command/commands/base_command.rb +48 -0
  99. data/lib/dev_system/sub/command/commands/base_command_test.rb +11 -0
  100. data/lib/dev_system/{dev/controllers/terminal/irb_terminal.rb → sub/command/commands/irb_command.rb} +3 -7
  101. data/lib/dev_system/sub/command/commands/irb_command_test.rb +11 -0
  102. data/lib/dev_system/sub/command/commands/not_found_command.rb +156 -0
  103. data/lib/dev_system/sub/command/commands/not_found_command_test.rb +11 -0
  104. data/lib/dev_system/{dev/controllers/terminal/pry_terminal.rb → sub/command/commands/pry_command.rb} +2 -2
  105. data/lib/dev_system/sub/command/commands/pry_command_test.rb +11 -0
  106. data/lib/dev_system/sub/command/commands/simple_command.rb +143 -0
  107. data/lib/dev_system/sub/command/commands/simple_command_test.rb +11 -0
  108. data/lib/dev_system/sub/command/generators/command_generator.rb +90 -0
  109. data/lib/dev_system/sub/command/generators/command_generator_test.rb +11 -0
  110. data/lib/dev_system/sub/command/input_commands/highline_input_command.rb +17 -0
  111. data/lib/dev_system/sub/command/input_commands/highline_input_command_test.rb +19 -0
  112. data/lib/dev_system/sub/command/input_commands/input_command.rb +20 -0
  113. data/lib/dev_system/sub/command/input_commands/input_command_test.rb +19 -0
  114. data/lib/dev_system/sub/command/input_commands/tty_input_command.rb +55 -0
  115. data/lib/dev_system/sub/command/input_commands/tty_input_command_test.rb +19 -0
  116. data/lib/dev_system/sub/generator/commands/generate_command.rb +9 -0
  117. data/lib/dev_system/sub/generator/commands/generate_command_test.rb +11 -0
  118. data/lib/dev_system/sub/generator/commands/new_command.rb +10 -0
  119. data/lib/dev_system/{dev/controllers/command → sub/generator/commands}/new_command_test.rb +1 -1
  120. data/lib/dev_system/sub/generator/generator.rb +19 -0
  121. data/lib/dev_system/sub/generator/generator_panel.rb +98 -0
  122. data/lib/dev_system/sub/generator/generator_panel_test.rb +79 -0
  123. data/lib/dev_system/{dev/controllers → sub/generator}/generator_test.rb +6 -2
  124. data/lib/dev_system/sub/generator/generators/base_generator.rb +64 -0
  125. data/lib/dev_system/sub/generator/generators/base_generator_test.rb +11 -0
  126. data/lib/dev_system/sub/generator/generators/generator_generator.rb +71 -0
  127. data/lib/dev_system/sub/generator/generators/generator_generator_test.rb +11 -0
  128. data/lib/dev_system/sub/generator/generators/new_generator.rb +74 -0
  129. data/lib/dev_system/sub/generator/generators/new_generator_test.rb +11 -0
  130. data/lib/dev_system/sub/generator/generators/not_found_generator.rb +155 -0
  131. data/lib/dev_system/sub/generator/generators/not_found_generator_test.rb +11 -0
  132. data/lib/dev_system/sub/generator/generators/simple_generator.rb +257 -0
  133. data/lib/dev_system/sub/generator/generators/simple_generator_test.rb +38 -0
  134. data/lib/dev_system/sub/log/commands/log_command.rb +11 -0
  135. data/lib/dev_system/sub/log/commands/log_command_test.rb +11 -0
  136. data/lib/dev_system/sub/log/generators/log_generator.rb +54 -0
  137. data/lib/dev_system/sub/log/generators/log_generator_test.rb +10 -0
  138. data/lib/dev_system/sub/log/log_panel.rb +47 -0
  139. data/lib/dev_system/sub/log/log_panel_test.rb +50 -0
  140. data/lib/dev_system/{dev/controllers → sub/log}/log_test.rb +6 -2
  141. data/lib/dev_system/sub/log/logs/output_log.rb +74 -0
  142. data/lib/dev_system/sub/log/logs/output_log_test.rb +47 -0
  143. data/lib/dev_system/sub/log/logs/stick_log.rb +79 -0
  144. data/lib/dev_system/sub/log/logs/stick_log_test.rb +88 -0
  145. data/lib/dev_system/sub/shell/commands/convert_command.rb +27 -0
  146. data/lib/dev_system/sub/shell/commands/convert_command_test.rb +10 -0
  147. data/lib/dev_system/sub/shell/commands/format_command.rb +25 -0
  148. data/lib/dev_system/sub/shell/commands/format_command_test.rb +10 -0
  149. data/lib/dev_system/sub/shell/commands/loc_command.rb +211 -0
  150. data/lib/dev_system/sub/shell/commands/loc_command_test.rb +10 -0
  151. data/lib/dev_system/sub/shell/commands/shell_command.rb +45 -0
  152. data/lib/dev_system/sub/shell/commands/shell_command_test.rb +11 -0
  153. data/lib/dev_system/sub/shell/converter_shells/coffee_converter_shell.rb +21 -0
  154. data/lib/dev_system/sub/shell/converter_shells/coffee_converter_shell_test.rb +41 -0
  155. data/lib/dev_system/sub/shell/converter_shells/converter_shell.rb +13 -0
  156. data/lib/dev_system/sub/shell/converter_shells/converter_shell_test.rb +19 -0
  157. data/lib/dev_system/sub/shell/converter_shells/haml_converter_shell.rb +30 -0
  158. data/lib/dev_system/sub/shell/converter_shells/haml_converter_shell_test.rb +34 -0
  159. data/lib/dev_system/sub/shell/converter_shells/md_converter_shell.rb +21 -0
  160. data/lib/dev_system/sub/shell/converter_shells/md_converter_shell_test.rb +38 -0
  161. data/lib/dev_system/sub/shell/converter_shells/scss_converter_shell.rb +59 -0
  162. data/lib/dev_system/sub/shell/converter_shells/scss_converter_shell_test.rb +59 -0
  163. data/lib/dev_system/sub/shell/formatter_shells/formatter_shell.rb +13 -0
  164. data/lib/dev_system/sub/shell/formatter_shells/formatter_shell_test.rb +19 -0
  165. data/lib/dev_system/sub/shell/formatter_shells/html_formatter_shell.rb +20 -0
  166. data/lib/dev_system/sub/shell/formatter_shells/html_formatter_shell_test.rb +51 -0
  167. data/lib/dev_system/sub/shell/generators/shell_generator.rb +68 -0
  168. data/lib/dev_system/sub/shell/generators/shell_generator_test.rb +10 -0
  169. data/lib/dev_system/{dev/controllers → sub/shell}/shell.rb +2 -2
  170. data/lib/dev_system/sub/shell/shell_panel.rb +98 -0
  171. data/lib/dev_system/sub/shell/shell_panel_test.rb +18 -0
  172. data/lib/dev_system/{dev/controllers → sub/shell}/shell_test.rb +9 -5
  173. data/lib/dev_system/sub/shell/shells/app_shell.rb +185 -0
  174. data/lib/dev_system/sub/shell/shells/app_shell_test.rb +26 -0
  175. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/bin_shell_test.rb +1 -2
  176. data/lib/dev_system/sub/shell/shells/color_shell.rb +389 -0
  177. data/lib/dev_system/sub/shell/shells/color_shell_test.rb +27 -0
  178. data/lib/dev_system/sub/shell/shells/controller_shell.rb +20 -0
  179. data/lib/dev_system/sub/shell/shells/controller_shell_test.rb +16 -0
  180. data/lib/dev_system/sub/shell/shells/dir_shell.rb +27 -0
  181. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/dir_shell_test.rb +1 -5
  182. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/file_shell.rb +4 -4
  183. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/file_shell_test.rb +1 -2
  184. data/lib/dev_system/sub/shell/shells/gem_shell.rb +21 -0
  185. data/lib/dev_system/sub/shell/shells/gem_shell_test.rb +28 -0
  186. data/lib/dev_system/sub/shell/shells/kernel_shell.rb +22 -0
  187. data/lib/dev_system/sub/shell/shells/kernel_shell_test.rb +10 -0
  188. data/lib/dev_system/sub/shell/shells/line_diff_shell.rb +26 -0
  189. data/lib/dev_system/sub/shell/shells/line_diff_shell_test.rb +11 -0
  190. data/lib/dev_system/sub/shell/shells/line_shell.rb +56 -0
  191. data/lib/dev_system/sub/shell/shells/line_shell_test.rb +70 -0
  192. data/lib/dev_system/sub/shell/shells/method_shell.rb +52 -0
  193. data/lib/dev_system/sub/shell/shells/method_shell_test.rb +34 -0
  194. data/lib/dev_system/sub/shell/shells/text_file_shell.rb +14 -0
  195. data/lib/dev_system/sub/shell/shells/text_file_shell_test.rb +11 -0
  196. data/lib/dev_system/sub/shell/shells/text_shell.rb +65 -0
  197. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/text_shell_test.rb +1 -2
  198. data/lib/dev_system.rb +8 -2
  199. data/lib/happy_system/happy_box.rb +9 -0
  200. data/lib/happy_system/happy_box_test.rb +24 -0
  201. data/lib/happy_system/sub/axo/axo.rb +10 -0
  202. data/lib/happy_system/sub/axo/axo_panel.rb +9 -0
  203. data/lib/happy_system/sub/axo/axo_panel_test.rb +16 -0
  204. data/lib/happy_system/sub/axo/axo_test.rb +16 -0
  205. data/lib/happy_system/sub/axo/commands/axo_command.rb +40 -0
  206. data/lib/happy_system/sub/axo/commands/axo_command_test.rb +8 -0
  207. data/lib/happy_system/sub/axo/generators/axo_generator.rb +79 -0
  208. data/lib/happy_system/sub/axo/generators/axo_generator_test.rb +11 -0
  209. data/lib/happy_system.rb +4 -2
  210. data/lib/lab_system/clients/kroki_client.rb +134 -0
  211. data/lib/lab_system/clients/kroki_client_test.rb +32 -0
  212. data/lib/lab_system/clients/liza_kroki_client.rb +176 -0
  213. data/lib/lab_system/clients/liza_kroki_client_test.rb +32 -0
  214. data/lib/lab_system/commands/docker_command.rb +61 -0
  215. data/lib/lab_system/commands/docker_command_test.rb +11 -0
  216. data/lib/lab_system/lab_box.rb +5 -0
  217. data/lib/lab_system/lab_box_test.rb +8 -0
  218. data/lib/lab_system/requests/kroki_request.rb +182 -0
  219. data/lib/lab_system/requests/kroki_request_test.rb +11 -0
  220. data/lib/lab_system/shells/docker_shell.rb +60 -0
  221. data/lib/lab_system/shells/docker_shell_test.rb +61 -0
  222. data/lib/lab_system/shells/kroki_docker_shell.rb +20 -0
  223. data/lib/lab_system/shells/kroki_docker_shell_test.rb +11 -0
  224. data/lib/lab_system.rb +8 -0
  225. data/lib/liza/base/controller.rb +14 -15
  226. data/lib/liza/base/controller_test.rb +28 -2
  227. data/lib/liza/base/panel.rb +48 -6
  228. data/lib/liza/base/panel_test.rb +141 -2
  229. data/lib/liza/base_parts/controller_subsystem_part.rb +93 -0
  230. data/lib/liza/base_parts/panel_rescuer_part.rb +129 -0
  231. data/lib/liza/meta/box.rb +24 -0
  232. data/lib/liza/meta/box_test.rb +20 -0
  233. data/lib/liza/meta/part_test.rb +6 -1
  234. data/lib/liza/meta/system.rb +50 -7
  235. data/lib/liza/meta/system_test.rb +6 -2
  236. data/lib/liza/ruby_tests/app_test.rb +39 -0
  237. data/lib/liza/ruby_tests/class_test.rb +20 -0
  238. data/lib/liza/ruby_tests/module_test.rb +4 -4
  239. data/lib/liza/{ruby_test.rb → ruby_tests/object_test.rb} +1 -1
  240. data/lib/liza/ruby_tests/string_test.rb +3 -1
  241. data/lib/liza/{test → safety}/test.rb +9 -0
  242. data/lib/liza/{test → safety}/test_test.rb +40 -7
  243. data/lib/liza/{test_parts → safety_parts}/test_assertions_advanced_part.rb +1 -1
  244. data/lib/liza/{test_parts → safety_parts}/test_log_part.rb +20 -0
  245. data/lib/liza/{test_parts → safety_parts}/test_subject_part.rb +10 -0
  246. data/lib/liza/safety_parts/test_tree_part.rb +87 -0
  247. data/lib/liza/unit.rb +50 -100
  248. data/lib/liza/unit_parts/unit_classes_part.rb +37 -0
  249. data/lib/liza/unit_parts/unit_classes_part_test.rb +3 -0
  250. data/lib/liza/unit_parts/unit_logging_part.rb +139 -0
  251. data/lib/liza/unit_parts/unit_logging_part_test.rb +3 -0
  252. data/lib/liza/unit_parts/unit_methods_part.rb +35 -0
  253. data/lib/liza/unit_parts/unit_methods_part_test.rb +3 -0
  254. data/lib/liza/unit_parts/unit_procedure_part.rb +2 -2
  255. data/lib/liza/unit_parts/unit_renderer_part.rb +171 -0
  256. data/lib/liza/unit_parts/unit_renderer_part_test.rb +15 -0
  257. data/lib/liza/unit_parts/unit_settings_part.rb +8 -0
  258. data/lib/liza/unit_test.rb +114 -16
  259. data/lib/liza.rb +2 -2
  260. data/lib/lizarb/ruby/class.rb +9 -1
  261. data/lib/lizarb/ruby/string.rb +3 -1
  262. data/lib/lizarb/version.rb +1 -1
  263. data/lib/lizarb.rb +215 -64
  264. data/lib/micro_system/micro_box.rb +5 -0
  265. data/lib/micro_system/micro_box_test.rb +8 -0
  266. data/lib/micro_system.rb +8 -0
  267. data/lib/net_system/net_box.rb +21 -0
  268. data/lib/net_system/{net/net_box_test.rb → net_box_test.rb} +1 -2
  269. data/lib/net_system/{net/panels → sub/client}/client_panel_test.rb +1 -2
  270. data/lib/net_system/{net/controllers → sub/client}/client_test.rb +1 -2
  271. data/lib/net_system/sub/client/generators/client_generator.rb +88 -0
  272. data/lib/net_system/sub/client/generators/client_generator_test.rb +10 -0
  273. data/lib/net_system/sub/database/clients/mongo_client.rb +33 -0
  274. data/lib/net_system/sub/database/clients/mongo_client_test.rb +20 -0
  275. data/lib/net_system/sub/database/clients/mysql_client.rb +29 -0
  276. data/lib/net_system/sub/database/clients/mysql_client_test.rb +23 -0
  277. data/lib/net_system/sub/database/clients/pgsql_client.rb +29 -0
  278. data/lib/net_system/sub/database/clients/pgsql_client_test.rb +25 -0
  279. data/lib/net_system/{net/controllers/client → sub/database/clients}/redis_client.rb +4 -1
  280. data/lib/net_system/{net/controllers/client → sub/database/clients}/redis_client_test.rb +2 -2
  281. data/lib/net_system/{net/controllers/client → sub/database/clients}/sqlite_client.rb +4 -1
  282. data/lib/net_system/{net/controllers/client → sub/database/clients}/sqlite_client_test.rb +2 -2
  283. data/lib/net_system/sub/database/commands/database_command.rb +32 -0
  284. data/lib/net_system/sub/database/commands/database_command_test.rb +11 -0
  285. data/lib/net_system/{net/panels → sub/database}/database_panel_test.rb +1 -2
  286. data/lib/net_system/{net/controllers → sub/database}/database_test.rb +1 -2
  287. data/lib/net_system/sub/database/databases/mongo_db.rb +8 -0
  288. data/lib/net_system/sub/database/databases/mongo_db_test.rb +21 -0
  289. data/lib/net_system/sub/database/databases/mysql_db.rb +8 -0
  290. data/lib/net_system/sub/database/databases/mysql_db_test.rb +21 -0
  291. data/lib/net_system/sub/database/databases/pgsql_db.rb +8 -0
  292. data/lib/net_system/sub/database/databases/pgsql_db_test.rb +21 -0
  293. data/lib/net_system/{net/controllers/database → sub/database/databases}/redis_db_test.rb +1 -1
  294. data/lib/net_system/{net/controllers/database → sub/database/databases}/sqlite_db_test.rb +1 -1
  295. data/lib/net_system/sub/record/generators/record_generator.rb +33 -0
  296. data/lib/net_system/sub/record/generators/record_generator_test.rb +11 -0
  297. data/lib/net_system/sub/record/record_panel.rb +3 -0
  298. data/lib/net_system/sub/record/record_panel_test.rb +11 -0
  299. data/lib/net_system/{net/controllers → sub/record}/record_test.rb +1 -2
  300. data/lib/net_system.rb +8 -1
  301. data/lib/web_system/{dev → sub/rack/commands}/rack_command.rb +7 -5
  302. data/lib/web_system/sub/rack/commands/rack_command_test.rb +11 -0
  303. data/lib/web_system/sub/rack/middle_racks/first_middle_rack.rb +8 -0
  304. data/lib/web_system/sub/rack/middle_racks/first_middle_rack_test.rb +11 -0
  305. data/lib/web_system/sub/rack/middle_racks/last_middle_rack.rb +3 -0
  306. data/lib/web_system/sub/rack/middle_racks/last_middle_rack_test.rb +11 -0
  307. data/lib/web_system/sub/rack/middle_racks/middle_rack.rb +18 -0
  308. data/lib/web_system/sub/rack/middle_racks/middle_rack_test.rb +11 -0
  309. data/lib/web_system/sub/rack/middle_racks/zeitwerk_middle_rack.rb +11 -0
  310. data/lib/web_system/sub/rack/middle_racks/zeitwerk_middle_rack_test.rb +11 -0
  311. data/lib/web_system/sub/rack/rack_panel.rb +52 -0
  312. data/lib/web_system/{web/panels → sub/rack}/rack_panel_test.rb +1 -2
  313. data/lib/web_system/{web/controllers → sub/rack}/rack_test.rb +1 -2
  314. data/lib/web_system/sub/rack/server_racks/agoo_server_rack.rb +53 -0
  315. data/lib/web_system/sub/rack/server_racks/agoo_server_rack_test.rb +11 -0
  316. data/lib/web_system/sub/rack/server_racks/falcon_server_rack.rb +46 -0
  317. data/lib/web_system/sub/rack/server_racks/falcon_server_rack_test.rb +11 -0
  318. data/lib/web_system/sub/rack/server_racks/iodine_server_rack.rb +47 -0
  319. data/lib/web_system/sub/rack/server_racks/iodine_server_rack_test.rb +11 -0
  320. data/lib/web_system/sub/rack/server_racks/puma_server_rack.rb +48 -0
  321. data/lib/web_system/sub/rack/server_racks/puma_server_rack_test.rb +11 -0
  322. data/lib/web_system/sub/rack/server_racks/server_rack.rb +12 -0
  323. data/lib/web_system/sub/rack/server_racks/server_rack_test.rb +11 -0
  324. data/lib/web_system/sub/rack/server_racks/thin_server_rack.rb +85 -0
  325. data/lib/web_system/sub/rack/server_racks/thin_server_rack_test.rb +11 -0
  326. data/lib/web_system/sub/request/commands/request_command.rb +125 -0
  327. data/lib/web_system/sub/request/commands/request_command_test.rb +11 -0
  328. data/lib/web_system/sub/request/generators/request_generator.rb +96 -0
  329. data/lib/web_system/sub/request/generators/request_generator_test.rb +11 -0
  330. data/lib/web_system/sub/request/request_panel.rb +69 -0
  331. data/lib/web_system/sub/request/request_panel_test.rb +54 -0
  332. data/lib/web_system/{web/controllers → sub/request}/request_test.rb +1 -2
  333. data/lib/web_system/sub/request/requests/simple_request.rb +95 -0
  334. data/lib/web_system/sub/request/requests/simple_request_test.rb +11 -0
  335. data/lib/web_system/sub/request/router_requests/router_request.rb +7 -0
  336. data/lib/web_system/sub/request/router_requests/router_request_test.rb +11 -0
  337. data/lib/web_system/sub/request/router_requests/simple_router_request.rb +24 -0
  338. data/lib/web_system/sub/request/router_requests/simple_router_request_test.rb +11 -0
  339. data/lib/web_system/web_box.rb +17 -0
  340. data/lib/web_system/{web/web_box_test.rb → web_box_test.rb} +1 -2
  341. data/lib/web_system.rb +9 -3
  342. data/lib/work_system/work_box.rb +5 -0
  343. data/lib/work_system/work_box_test.rb +8 -0
  344. data/lib/work_system.rb +8 -0
  345. data/lizarb.gemspec +13 -7
  346. metadata +369 -167
  347. data/app/happy/axos/axo.rb +0 -50
  348. data/app_new/dev/benches/objects_bench.rb +0 -83
  349. data/app_new/dev/benches/sorted_bench_test.rb +0 -12
  350. data/app_new/dev_box.rb +0 -14
  351. data/app_new.rb +0 -15
  352. data/exe/lrb +0 -3
  353. data/lib/dev_system/dev/controllers/bench_test.rb +0 -12
  354. data/lib/dev_system/dev/controllers/command/generate_command.rb +0 -9
  355. data/lib/dev_system/dev/controllers/command/generate_command_test.rb +0 -12
  356. data/lib/dev_system/dev/controllers/command/new_command.rb +0 -9
  357. data/lib/dev_system/dev/controllers/command/not_found_command.rb +0 -48
  358. data/lib/dev_system/dev/controllers/command/not_found_command_test.rb +0 -12
  359. data/lib/dev_system/dev/controllers/command/terminal_command.rb +0 -22
  360. data/lib/dev_system/dev/controllers/command/terminal_command_test.rb +0 -12
  361. data/lib/dev_system/dev/controllers/command.rb +0 -13
  362. data/lib/dev_system/dev/controllers/generator.rb +0 -9
  363. data/lib/dev_system/dev/controllers/generator_dsl_main_part.rb +0 -50
  364. data/lib/dev_system/dev/controllers/generators/bench_generator/controller.rb.erb +0 -23
  365. data/lib/dev_system/dev/controllers/generators/bench_generator/controller_test.rb.erb +0 -12
  366. data/lib/dev_system/dev/controllers/generators/bench_generator.rb +0 -12
  367. data/lib/dev_system/dev/controllers/generators/bench_generator_test.rb +0 -12
  368. data/lib/dev_system/dev/controllers/generators/command_generator/controller.rb.erb +0 -41
  369. data/lib/dev_system/dev/controllers/generators/command_generator/controller_test.rb.erb +0 -12
  370. data/lib/dev_system/dev/controllers/generators/command_generator.rb +0 -19
  371. data/lib/dev_system/dev/controllers/generators/command_generator_test.rb +0 -12
  372. data/lib/dev_system/dev/controllers/generators/controller_generator.rb +0 -97
  373. data/lib/dev_system/dev/controllers/generators/controller_generator_test.rb +0 -12
  374. data/lib/dev_system/dev/controllers/generators/generator_generator/generator.rb.erb +0 -18
  375. data/lib/dev_system/dev/controllers/generators/generator_generator/generator_test.rb.erb +0 -12
  376. data/lib/dev_system/dev/controllers/generators/generator_generator/template.rb.erb +0 -9
  377. data/lib/dev_system/dev/controllers/generators/generator_generator/template_test.rb.erb +0 -12
  378. data/lib/dev_system/dev/controllers/generators/generator_generator.rb +0 -30
  379. data/lib/dev_system/dev/controllers/generators/generator_generator_test.rb +0 -12
  380. data/lib/dev_system/dev/controllers/generators/new_generator.rb +0 -117
  381. data/lib/dev_system/dev/controllers/generators/new_generator_test.rb +0 -12
  382. data/lib/dev_system/dev/controllers/generators/not_found_generator.rb +0 -39
  383. data/lib/dev_system/dev/controllers/generators/not_found_generator_test.rb +0 -12
  384. data/lib/dev_system/dev/controllers/generators/record_generator.rb +0 -46
  385. data/lib/dev_system/dev/controllers/generators/record_generator_test.rb +0 -12
  386. data/lib/dev_system/dev/controllers/generators/request_generator.rb +0 -63
  387. data/lib/dev_system/dev/controllers/generators/request_generator_test.rb +0 -12
  388. data/lib/dev_system/dev/controllers/shell/dir_shell.rb +0 -27
  389. data/lib/dev_system/dev/controllers/shell/text_shell.rb +0 -23
  390. data/lib/dev_system/dev/controllers/terminal/irb_terminal_test.rb +0 -12
  391. data/lib/dev_system/dev/controllers/terminal/pry_terminal_test.rb +0 -12
  392. data/lib/dev_system/dev/controllers/terminal.rb +0 -17
  393. data/lib/dev_system/dev/controllers/terminal_test.rb +0 -12
  394. data/lib/dev_system/dev/dev_box.rb +0 -33
  395. data/lib/dev_system/dev/dev_box_test.rb +0 -17
  396. data/lib/dev_system/dev/panels/command_panel.rb +0 -71
  397. data/lib/dev_system/dev/panels/command_panel_test.rb +0 -46
  398. data/lib/dev_system/dev/panels/generator_panel.rb +0 -73
  399. data/lib/dev_system/dev/panels/generator_panel_test.rb +0 -46
  400. data/lib/dev_system/dev/panels/log_panel.rb +0 -13
  401. data/lib/dev_system/dev/panels/log_panel_test.rb +0 -16
  402. data/lib/dev_system/dev/panels/shell_panel.rb +0 -3
  403. data/lib/dev_system/dev/panels/shell_panel_test.rb +0 -12
  404. data/lib/dev_system/dev/panels/terminal_panel.rb +0 -3
  405. data/lib/dev_system/dev/panels/terminal_panel_test.rb +0 -12
  406. data/lib/happy_system/dev/happy_command.rb +0 -11
  407. data/lib/happy_system/happy/controllers/axo.rb +0 -7
  408. data/lib/happy_system/happy/happy_box.rb +0 -8
  409. data/lib/happy_system/happy/happy_box_test.rb +0 -16
  410. data/lib/happy_system/happy/panels/axo_panel.rb +0 -3
  411. data/lib/liza/base/box.rb +0 -90
  412. data/lib/liza/base/box_test.rb +0 -10
  413. data/lib/liza/base_parts/controller_renderer_part.rb +0 -140
  414. data/lib/liza/base_parts/controller_renderer_part_test.rb +0 -16
  415. data/lib/liza/meta/part_extension.rb +0 -16
  416. data/lib/liza/test_parts/test_tree_part.rb +0 -92
  417. data/lib/net_system/dev/net_command.rb +0 -22
  418. data/lib/net_system/net/net_box.rb +0 -13
  419. data/lib/web_system/dev/request_command.rb +0 -129
  420. data/lib/web_system/dev/web_command.rb +0 -9
  421. data/lib/web_system/web/panels/rack_panel.rb +0 -42
  422. data/lib/web_system/web/panels/request_panel.rb +0 -70
  423. data/lib/web_system/web/panels/request_panel_test.rb +0 -33
  424. data/lib/web_system/web/web_box.rb +0 -18
  425. /data/lib/dev_system/{dev/panels → sub/bench}/bench_panel.rb +0 -0
  426. /data/lib/dev_system/{dev/controllers → sub/log}/log.rb +0 -0
  427. /data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/bin_shell.rb +0 -0
  428. /data/lib/liza/{test_parts → safety_parts}/test_assertions_part.rb +0 -0
  429. /data/lib/liza/{test_parts → safety_parts}/test_dsl_part.rb +0 -0
  430. /data/lib/net_system/{net/controllers → sub/client}/client.rb +0 -0
  431. /data/lib/net_system/{net/panels → sub/client}/client_panel.rb +0 -0
  432. /data/lib/net_system/{net/controllers → sub/database}/database.rb +0 -0
  433. /data/lib/net_system/{net/panels → sub/database}/database_panel.rb +0 -0
  434. /data/lib/net_system/{net/controllers/database → sub/database/databases}/redis_db.rb +0 -0
  435. /data/lib/net_system/{net/controllers/database → sub/database/databases}/sqlite_db.rb +0 -0
  436. /data/lib/net_system/{net/controllers → sub/record}/record.rb +0 -0
  437. /data/lib/web_system/{web/controllers → sub/rack}/rack.rb +0 -0
  438. /data/lib/web_system/{web/controllers → sub/request}/request.rb +0 -0
  439. /data/lib/web_system/{web/controllers/request → sub/request/requests}/client_error_request.rb +0 -0
  440. /data/lib/web_system/{web/controllers/request → sub/request/requests}/not_found_request.rb +0 -0
  441. /data/lib/web_system/{web/controllers/request → sub/request/requests}/server_error_request.rb +0 -0
@@ -0,0 +1,182 @@
1
+ class LabSystem::KrokiRequest < WebSystem::SimpleRequest
2
+
3
+ def call_index
4
+ @kroki_clients = []
5
+
6
+ @kroki_clients << KrokiClient.new_plantuml(:ab, :svg)
7
+ @kroki_clients << KrokiClient.new_nomnoml(:ab, :svg)
8
+
9
+ @kroki_clients.map &:call
10
+ end
11
+
12
+ #
13
+
14
+ def call_plantuml
15
+ @kroki_clients = []
16
+
17
+ @kroki_clients << KrokiClient.new_plantuml(:ab, :svg)
18
+
19
+ @kroki_clients.map &:call
20
+ end
21
+
22
+ #
23
+
24
+ def call_nomnoml
25
+ @kroki_clients = []
26
+
27
+ @kroki_clients << KrokiClient.new_nomnoml(:ab, :svg)
28
+
29
+ @kroki_clients.map &:call
30
+ end
31
+
32
+ #
33
+
34
+ def call_plantuml_liza
35
+ @kroki_clients = []
36
+
37
+ Lizarb.loaders.map &:eager_load
38
+
39
+ @kroki_clients << LizaKrokiClient.new_plantuml(:liza_1, :svg) {
40
+ @units = Unit.subclasses.sort { _1.name <=> _2.name }.reverse
41
+ }
42
+ @kroki_clients << LizaKrokiClient.new_plantuml(:liza_1, :svg) {
43
+ @units = [Liza::System]
44
+ @systems_in_objects = [DevSystem, NetSystem, WebSystem]
45
+ }
46
+ @kroki_clients << LizaKrokiClient.new_plantuml(:liza_1, :svg) {
47
+ @units = [Liza::System]
48
+ @systems_in_objects = [HappySystem, LabSystem]
49
+ }
50
+ @kroki_clients << LizaKrokiClient.new_plantuml(:liza_1, :svg) {
51
+ @units = [Liza::System]
52
+ @systems_in_objects = App.systems.values
53
+ }
54
+ @kroki_clients << LizaKrokiClient.new_plantuml(:liza_1, :svg) {
55
+ @units = [Box]
56
+ @boxes = [DevBox]
57
+ @subs = []
58
+ @objects = []
59
+ @systems = (@boxes+@subs+@objects).map(&:system).uniq
60
+ }
61
+ @kroki_clients << LizaKrokiClient.new_plantuml(:liza_1, :svg) {
62
+ @units = [Box]
63
+ @boxes = [DevBox, NetBox, WebBox]
64
+ @subs = []
65
+ @objects = []
66
+ @systems = (@boxes+@subs+@objects).map(&:system).uniq
67
+ }
68
+ @kroki_clients << LizaKrokiClient.new_plantuml(:liza_1, :svg) {
69
+ @units = [Panel, Controller]
70
+ @subs = [Command, Shell]
71
+ @objects = []
72
+ @systems = (@subs+@objects).map(&:system).uniq
73
+ }
74
+ @kroki_clients << LizaKrokiClient.new_plantuml(:liza_1, :svg) {
75
+ @units = [Controller]
76
+ @subs = []
77
+ @objects = App.systems.values.map { _1.box.panels.values.map(&:division) }.flatten
78
+ @systems = (@subs+@objects).map(&:system).uniq
79
+ }
80
+
81
+ # NetSystem
82
+
83
+ @kroki_clients << LizaKrokiClient.new_plantuml(:liza_1, :svg) {
84
+ @units = [Controller]
85
+ @subs = []
86
+ @objects = [Command, Database, Client, DatabaseCommand, *Database.descendants, *Client.descendants]
87
+ @systems = (@subs+@objects).map(&:system).uniq
88
+ }
89
+
90
+ # WebSystem
91
+
92
+ @kroki_clients << LizaKrokiClient.new_plantuml(:liza_1, :svg) {
93
+ @units = [Controller]
94
+ @subs = [Command, WebSystem::Rack]
95
+ @objects = [RackCommand, MiddleRack, ServerRack, *MiddleRack.subclasses, *ServerRack.subclasses]
96
+ @systems = (@subs+@objects).map(&:system).uniq
97
+ }
98
+
99
+ @kroki_clients << LizaKrokiClient.new_plantuml(:liza_1, :svg) {
100
+ @units = [Controller]
101
+ @subs = []
102
+ @objects = [Command, Request, RequestCommand, *Request.descendants]
103
+ @systems = (@subs+@objects).map(&:system).uniq
104
+ }
105
+
106
+ @kroki_clients.map &:call
107
+ end
108
+
109
+ end
110
+
111
+ __END__
112
+
113
+ # view index.html.erb
114
+ <%= render :shared %>
115
+
116
+ # view plantuml.html.erb
117
+ <%= render :shared %>
118
+
119
+ # view plantuml_liza.html.erb
120
+ <%= render :shared %>
121
+
122
+ # view nomnoml.html.erb
123
+ <%= render :shared %>
124
+
125
+ # view shared.html.erb
126
+ <%= render :header %>
127
+
128
+ <style>
129
+ td {
130
+ border: 1px dashed black;
131
+ vertical-align: top;
132
+ }
133
+ td svg {
134
+ text-align: center;
135
+ }
136
+ td code {
137
+ text-align: left;
138
+ }
139
+ </style>
140
+
141
+ <h3>plantuml</h3>
142
+
143
+ <table>
144
+ <tr>
145
+ <td>
146
+ template
147
+ </td>
148
+ <td>
149
+ code
150
+ </td>
151
+ <td>
152
+ SVG
153
+ </td>
154
+ </tr>
155
+
156
+ <% @kroki_clients.each do |kroki| %>
157
+ <tr>
158
+ <td>
159
+ <%= kroki.action %>
160
+ </td>
161
+ <td style="min-width: 700px">
162
+ <code>
163
+ <%= kroki.code.gsub "\n", "<br/>" %>
164
+ </code>
165
+ </td>
166
+ <td>
167
+ <%= kroki.result %>
168
+ </td>
169
+ </tr>
170
+ <% end %>
171
+
172
+ </table>
173
+
174
+ # view header.html.erb
175
+
176
+ <h1>KrokiClient</h1>
177
+ <a href="/kroki">/kroki</a> |
178
+
179
+ <a href="/kroki/plantuml">/kroki/plantuml</a> |
180
+ <a href="/kroki/plantuml_liza">/kroki/plantuml_liza</a> |
181
+ <a href="/kroki/nomnoml">/kroki/nomnoml</a>
182
+ <hr/>
@@ -0,0 +1,11 @@
1
+ class LabSystem::KrokiRequestTest < WebSystem::SimpleRequestTest
2
+
3
+ test :subject_class do
4
+ assert_equality subject_class, LabSystem::KrokiRequest
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ end
@@ -0,0 +1,60 @@
1
+ class LabSystem::DockerShell < DevSystem::Shell
2
+
3
+ #
4
+
5
+ def self.hello_world
6
+ KernelShell.call_backticks "docker run hello-world"
7
+
8
+ true
9
+ end
10
+
11
+ #
12
+
13
+ def self.hello_alpine
14
+ KernelShell.call_backticks "docker run alpine echo 'hello world'"
15
+
16
+ true
17
+ end
18
+
19
+ #
20
+
21
+ def self.version
22
+ output = KernelShell.call_backticks "docker version"
23
+ parse_version output
24
+ end
25
+
26
+ def self.parse_version output
27
+ h = {}
28
+ current_section = current_sub = nil
29
+
30
+ output.each_line do |line|
31
+ line = line.strip
32
+ next if line.empty?
33
+
34
+ if line.start_with?("Client:")
35
+
36
+ name = line.split(":", 2).last.strip
37
+ current_section = h["Client"] = {"Name" => name}
38
+ current_sub = current_section
39
+
40
+ elsif line.start_with?("Server:")
41
+ name = line.split(":", 2).last.strip
42
+ current_section = h["Server"] = {"Name" => name}
43
+
44
+ elsif current_section
45
+
46
+ if line.end_with?(":")
47
+ key = line.chomp(":")
48
+ current_sub = current_section[key] = {}
49
+ elsif line.include?(":")
50
+ key, value = line.split(":", 2).map(&:strip)
51
+ current_sub[key] = value
52
+ end
53
+
54
+ end
55
+ end
56
+
57
+ h
58
+ end
59
+
60
+ end
@@ -0,0 +1,61 @@
1
+ class LabSystem::DockerShellTest < DevSystem::ShellTest
2
+
3
+ test :subject_class do
4
+ assert_equality subject_class, LabSystem::DockerShell
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ test :parse_version do
12
+ output = render :docker_version, format: :txt
13
+ h = subject_class.parse_version output
14
+
15
+ assert_equality h.keys, ["Client", "Server"]
16
+ # I mostly wanted to start a conversation about which version of docker we should be support.
17
+ assert_equality h.dig("Client", "Name"), "Docker Engine - Community"
18
+ assert_equality h.dig("Server", "Name"), "Docker Engine - Community"
19
+
20
+ assert_equality h["Client"].keys, ["Name", "Version", "API version", "Go version", "Git commit", "Built", "OS/Arch", "Context"]
21
+ assert_equality h["Server"].keys, ["Name", "Engine", "containerd", "runc", "docker-init"]
22
+
23
+ assert_equality h["Server"]["Engine"].keys, ["Version", "API version", "Go version", "Git commit", "Built", "OS/Arch", "Experimental"]
24
+ assert_equality h["Server"]["containerd"].keys, ["Version", "GitCommit"]
25
+ assert_equality h["Server"]["runc"].keys, ["Version", "GitCommit"]
26
+ assert_equality h["Server"]["docker-init"].keys, ["Version", "GitCommit"]
27
+ end
28
+
29
+ end
30
+
31
+ __END__
32
+
33
+ # view docker_version.txt.erb
34
+
35
+ Client: Docker Engine - Community
36
+ Version: 24.0.6
37
+ API version: 1.43
38
+ Go version: go1.20.7
39
+ Git commit: ed223bc
40
+ Built: Mon Sep 4 12:31:44 2023
41
+ OS/Arch: linux/amd64
42
+ Context: default
43
+
44
+ Server: Docker Engine - Community
45
+ Engine:
46
+ Version: 24.0.6
47
+ API version: 1.43 (minimum version 1.12)
48
+ Go version: go1.20.7
49
+ Git commit: 1a79695
50
+ Built: Mon Sep 4 12:31:44 2023
51
+ OS/Arch: linux/amd64
52
+ Experimental: false
53
+ containerd:
54
+ Version: 1.6.24
55
+ GitCommit: 61f9fd88f79f081d64d6fa3bb1a0dc71ec870523
56
+ runc:
57
+ Version: 1.1.9
58
+ GitCommit: v1.1.9-0-gccaecfc
59
+ docker-init:
60
+ Version: 0.19.0
61
+ GitCommit: de40ad0
@@ -0,0 +1,20 @@
1
+ class LabSystem::KrokiDockerShell < LabSystem::DockerShell
2
+
3
+ #
4
+
5
+ set :port, 9001
6
+
7
+ def self.url
8
+ "http://localhost:#{get :port}"
9
+ end
10
+
11
+ def self.start_blocking_server
12
+ log "You can visit #{url} for your kroki server"
13
+
14
+ port = get :port
15
+ KernelShell.call_backticks "docker run -p#{port}:8000 yuzutech/kroki"
16
+
17
+ true
18
+ end
19
+
20
+ end
@@ -0,0 +1,11 @@
1
+ class LabSystem::KrokiDockerShellTest < LabSystem::DockerShellTest
2
+
3
+ test :subject_class do
4
+ assert_equality subject_class, LabSystem::KrokiDockerShell
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ end
data/lib/lab_system.rb ADDED
@@ -0,0 +1,8 @@
1
+ class LabSystem < Liza::System
2
+ class Error < Liza::Error; end
3
+
4
+ #
5
+
6
+ color :gray
7
+
8
+ end
@@ -1,27 +1,26 @@
1
1
  class Liza::Controller < Liza::Unit
2
- part :controller_renderer
3
2
 
4
- inherited_explicitly_sets_system
3
+ part :controller_subsystem
5
4
 
6
- def self.on_connected box_klass, panel
7
- set :box, box_klass
8
- set :panel, panel
9
- end
5
+ def self.on_connected
6
+ token = self.last_namespace.snakecase.to_sym
7
+ panel = system.const("#{token}_panel").new name
10
8
 
11
- def self.box
12
- get :box
9
+ subsystem! system.box, panel
10
+ division!
13
11
  end
14
12
 
15
- def self.panel
16
- get :panel
17
- end
13
+ def self.inherited klass
14
+ super
18
15
 
19
- def box
20
- self.class.box
16
+ klass.on_connected if klass.superclass == Liza::Controller
21
17
  end
22
18
 
23
- def panel
24
- self.class.panel
19
+ # color
20
+
21
+ def self.color
22
+ return system.color if subsystem?
23
+ subsystem.color
25
24
  end
26
25
 
27
26
  end
@@ -3,8 +3,34 @@ class Liza::ControllerTest < Liza::UnitTest
3
3
  assert subject_class == Liza::Controller
4
4
  end
5
5
 
6
+ test_methods_defined do
7
+ on_self :box, \
8
+ :color,
9
+ :division!, :division?,
10
+ :inherited,
11
+ :on_connected,
12
+ :panel, :plural,
13
+ :puts,
14
+ :singular,
15
+ :subsystem, :subsystem!, :subsystem?,
16
+ :token
17
+ on_instance :box, :panel
18
+ end
19
+
20
+ test :erbs_defined do
21
+ erbs_defined = subject_class.erbs_defined.map(&:key)
22
+ expected = []
23
+ assert_equality erbs_defined, expected
24
+ end
25
+
26
+ test :erbs_available do
27
+ erbs_available = subject_class.erbs_available.map(&:key)
28
+ expected = []
29
+ assert_equality erbs_available, expected
30
+ end
31
+
6
32
  test :settings do
7
- assert subject_class.log_level == :normal
8
- assert subject_class.log_color == :white
33
+ assert_equality subject_class.log_level, 0
9
34
  end
35
+
10
36
  end
@@ -1,20 +1,62 @@
1
1
  class Liza::Panel < Liza::Unit
2
- inherited_explicitly_sets_system
3
2
 
4
- def self.on_connected box_klass
5
- set :box, box_klass
6
- end
3
+ #
4
+
5
+ part :panel_rescuer
6
+
7
+ #
8
+
9
+ set :box, Liza::Box
10
+ set :controller, Liza::Controller
11
+
12
+ #
7
13
 
8
14
  def self.box
9
- get :box
15
+ system.box
10
16
  end
11
17
 
12
18
  def box
13
- self.class.box
19
+ system.box
20
+ end
21
+
22
+ def self.controller
23
+ @controller ||= system.const token
24
+ end
25
+
26
+ def controller
27
+ self.class.controller
28
+ end
29
+
30
+ def self.division
31
+ controller.division
32
+ end
33
+
34
+ def division
35
+ controller.division
36
+ end
37
+
38
+ def self.token
39
+ @token ||= last_namespace.gsub(/Panel$/, '').snakecase.to_sym
40
+ end
41
+
42
+ def self.subsystem
43
+ controller
44
+ end
45
+
46
+ def subsystem
47
+ controller
48
+ end
49
+
50
+ # color
51
+
52
+ def self.color
53
+ system.color
14
54
  end
15
55
 
16
56
  #
17
57
 
58
+ attr_reader :key
59
+
18
60
  def initialize key
19
61
  @key = key
20
62
  @blocks = []
@@ -7,11 +7,150 @@ class Liza::PanelTest < Liza::UnitTest
7
7
  @subject ||= subject_class.new "name"
8
8
  end
9
9
 
10
+ test_methods_defined do
11
+ on_self :box,
12
+ :color,
13
+ :controller,
14
+ :puts,
15
+ :subsystem,
16
+ :token
17
+ on_instance \
18
+ :box,
19
+ :controller, :division,
20
+ :key, :push,
21
+ :rescue_from, :rescue_from_panel, :rescuers,
22
+ :short, :started,
23
+ :subsystem
24
+ end
25
+
26
+ #
27
+
28
+ def assert_raises_2 e_class, &block
29
+ kaller = caller
30
+ begin
31
+ block.call
32
+ assert false, kaller: kaller
33
+ rescue e_class => e
34
+ assert true, kaller: kaller
35
+ rescue Exception => e
36
+ assert false, kaller: kaller
37
+ end
38
+ end
39
+
40
+ def refute_raises_2 e_class, &block
41
+ kaller = caller
42
+ begin
43
+ block.call
44
+ assert true, kaller: kaller
45
+ rescue e_class => e
46
+ assert false, kaller: kaller
47
+ rescue Exception => e
48
+ assert false, kaller: kaller
49
+ end
50
+ end
51
+
52
+ #
53
+
54
+ test :rescue_from, :validations do
55
+ assert_raises_2 ArgumentError do
56
+ subject.rescue_from(Liza)
57
+ end
58
+
59
+ assert_raises_2 ArgumentError do
60
+ subject.rescue_from(Liza::Error)
61
+ end
62
+
63
+ refute_raises_2 ArgumentError do
64
+ subject.rescue_from(Liza::Error) { }
65
+ end
66
+
67
+ refute_raises_2 ArgumentError do
68
+ subject.rescue_from(Liza::Error, with: Controller)
69
+ end
70
+
71
+ assert_raises_2 ArgumentError do
72
+ subject.rescue_from(Liza::Error, with: Controller) { }
73
+ end
74
+ end
75
+
76
+ test :rescue_from, :rescuers, :rescue_from_panel do
77
+ assert_equality subject.rescuers, []
78
+
79
+ #
80
+
81
+ subject.rescue_from(:command_panel, :parse) { }
82
+ actual = subject.rescuers.last
83
+
84
+ #
85
+
86
+ assert_equality actual.class, Liza::PanelRescuerPart::Rescuer
87
+ assert_equality actual[:exception_class], CommandPanel::ParseError
88
+ assert_equality actual[:with], nil
89
+ assert_equality actual[:block].class, Proc
90
+
91
+ #
92
+
93
+ subject.rescue_from(:command_panel, :parse, with: NotFoundCommand)
94
+ actual = subject.rescuers.last
95
+
96
+ #
97
+
98
+ assert_equality actual.class, Liza::PanelRescuerPart::Rescuer
99
+ assert_equality actual[:exception_class], CommandPanel::ParseError
100
+ assert_equality actual[:with], DevSystem::NotFoundCommand
101
+ assert_equality actual[:block], nil
102
+ end
103
+
104
+ test :rescue_from, :rescuers, :_rescue_from_panel_find do
105
+ assert_equality subject.rescuers, []
106
+
107
+ subject.rescue_from(CommandPanel::ParseError, with: NotFoundCommand)
108
+ original_rescuer = subject.rescuers.last
109
+
110
+ assert_equality original_rescuer[:exception_class], CommandPanel::ParseError
111
+
112
+ actual = subject._rescue_from_panel_find CommandPanel::ParseError.new
113
+
114
+ assert_equality actual.class, Liza::PanelRescuerPart::Rescuer
115
+ refute_equality actual, original_rescuer
116
+
117
+ assert_equality original_rescuer[:exception], nil
118
+ assert_equality actual[:exception].class, CommandPanel::ParseError
119
+ end
120
+
121
+ test :rescue_from_panel do
122
+ todo "test this"
123
+ end
124
+
125
+ test :_rescue_from_parse_symbol do
126
+ actual = subject._rescue_from_parse_symbol(:error)
127
+ assert_equality Liza::Error, actual
128
+
129
+ assert_raises_2 NameError do
130
+ subject._rescue_from_parse_symbol(:errorx)
131
+ end
132
+ end
133
+
134
+ test :_rescue_from_parse_symbols do
135
+ actual = subject._rescue_from_parse_symbols([:command_panel, :parse])
136
+ assert_equality CommandPanel::ParseError, actual
137
+
138
+ actual = subject._rescue_from_parse_symbols([:command_panel, :not_found])
139
+ assert_equality CommandPanel::NotFoundError, actual
140
+
141
+ assert_raises_2 NameError do
142
+ subject._rescue_from_parse_symbols([:command_panel, :not_foxund])
143
+ end
144
+ end
145
+
146
+ #
147
+
10
148
  test :settings do
11
- assert subject_class.log_level == :normal
12
- assert subject_class.log_color == :white
149
+ assert_equality subject_class.log_level, 0
13
150
  end
14
151
 
152
+ #
153
+
15
154
  test :short do
16
155
  assert_equality subject.short("m"), "m"
17
156
  assert_equality subject.short("i"), "i"