lizarb 1.0.3 → 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 (457) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +34 -7
  3. data/Gemfile.lock +179 -18
  4. data/README.md +53 -9
  5. data/Rakefile +38 -0
  6. data/app/dev/commands/color_command.rb +29 -0
  7. data/app/dev/commands/color_command_test.rb +10 -0
  8. data/app/dev/commands/stick_command.rb +102 -0
  9. data/app/dev/commands/stick_command_test.rb +19 -0
  10. data/app/dev_box.rb +54 -20
  11. data/app/happy_box.rb +4 -3
  12. data/app/net/databases/redis_db.rb +1 -1
  13. data/app/net/databases/redis_db_test.rb +5 -5
  14. data/app/net/databases/sqlite_db.rb +1 -1
  15. data/app/net/databases/sqlite_db_test.rb +5 -5
  16. data/app/net/records/app_record.rb +1 -1
  17. data/app/net/records/app_record_test.rb +1 -1
  18. data/app/net/records/post_record_test.rb +1 -1
  19. data/app/net/records/user_record_test.rb +1 -1
  20. data/app/net_box.rb +29 -6
  21. data/app/web/requests/app_request.rb +1 -1
  22. data/app/web/requests/app_request_test.rb +1 -1
  23. data/app/web/requests/foo_request.rb +26 -0
  24. data/app/web/requests/foo_request_test.rb +7 -0
  25. data/app/web_box.rb +17 -9
  26. data/app.rb +41 -10
  27. data/{exe/Gemfile → app_global.gemfile.rb} +2 -0
  28. data/app_global.gemfile.rb.lock +41 -0
  29. data/app_global.rb +5 -0
  30. data/{app → examples/bench/app}/dev/benches/loops_bench.rb +11 -3
  31. data/examples/bench/app/dev/benches/loops_bench_test.rb +11 -0
  32. data/examples/bench/app/dev/benches/objects_bench.rb +48 -0
  33. data/examples/bench/app/dev/benches/objects_bench_test.rb +11 -0
  34. data/examples/bench/app/dev/benches/sorted_bench.rb +74 -0
  35. data/examples/bench/app/dev/benches/sorted_bench_test.rb +11 -0
  36. data/examples/bench/app/dev/benches/variables_bench.rb +61 -0
  37. data/examples/bench/app/dev/benches/variables_bench_test.rb +11 -0
  38. data/examples/client/app/net/clients/news_client.rb +42 -0
  39. data/examples/client/app/net/clients/news_client_test.rb +24 -0
  40. data/{app → examples/command/app}/dev/commands/calculator_command.rb +2 -2
  41. data/{app → examples/command/app}/dev/commands/calculator_command_test.rb +1 -2
  42. data/{app → examples/command/app}/dev/commands/circle_command.rb +2 -2
  43. data/{app → examples/command/app}/dev/commands/circle_command_test.rb +1 -2
  44. data/{app → examples/command/app}/dev/commands/narrative_method_command.rb +8 -10
  45. data/{app → examples/command/app}/dev/commands/narrative_method_command_test.rb +2 -3
  46. data/{app → examples/command/app}/dev/commands/quadratic_command.rb +2 -2
  47. data/{app → examples/command/app}/dev/commands/quadratic_command_test.rb +1 -2
  48. data/examples/command/app/dev_box.rb +3 -0
  49. data/examples/log/app/dev/logs/logger_log.rb +8 -0
  50. data/examples/log/app/dev/logs/logger_log_test.rb +16 -0
  51. data/examples/new/app/dev_box.rb +67 -0
  52. data/examples/new/app.rb +41 -0
  53. data/examples/shell/app/dev/shells/bash_adapter_shell.rb +25 -0
  54. data/examples/shell/app/dev/shells/bash_adapter_shell_test.rb +23 -0
  55. data/examples/shell/app/dev/shells/business_logic_shell.rb +42 -0
  56. data/examples/shell/app/dev/shells/business_logic_shell_test.rb +39 -0
  57. data/examples/shell/app/dev/shells/gem_adapter_shell.rb +33 -0
  58. data/examples/shell/app/dev/shells/gem_adapter_shell_test.rb +23 -0
  59. data/exe/liza +6 -1
  60. data/exe/lizarb +9 -1
  61. data/lib/app.rb +74 -145
  62. data/lib/art_system/art_box.rb +5 -0
  63. data/lib/art_system/art_box_test.rb +8 -0
  64. data/lib/art_system.rb +8 -0
  65. data/lib/crypto_system/crypto_box.rb +5 -0
  66. data/lib/crypto_system/crypto_box_test.rb +8 -0
  67. data/lib/crypto_system.rb +8 -0
  68. data/lib/deep_system/deep_box.rb +5 -0
  69. data/lib/deep_system/deep_box_test.rb +8 -0
  70. data/lib/deep_system.rb +8 -0
  71. data/lib/desk_system/commands/glimmer_command.rb +26 -0
  72. data/lib/desk_system/commands/glimmer_command_test.rb +10 -0
  73. data/lib/desk_system/desk_box.rb +5 -0
  74. data/lib/desk_system/desk_box_test.rb +8 -0
  75. data/lib/desk_system.rb +8 -0
  76. data/lib/dev_system/{dev/controllers/command → commands}/test_command.rb +37 -9
  77. data/lib/dev_system/{dev/controllers/command → commands}/test_command_test.rb +1 -2
  78. data/lib/dev_system/dev_box.rb +79 -0
  79. data/lib/dev_system/dev_box_test.rb +33 -0
  80. data/lib/dev_system/generators/env_generator.rb +87 -0
  81. data/lib/dev_system/generators/env_generator_test.rb +11 -0
  82. data/lib/dev_system/generators/gemfile_generator.rb +47 -0
  83. data/lib/dev_system/generators/gemfile_generator_test.rb +11 -0
  84. data/lib/dev_system/generators/system_generator.rb +70 -0
  85. data/lib/dev_system/generators/system_generator_test.rb +11 -0
  86. data/lib/dev_system/sub/bench/bench.rb +7 -0
  87. data/lib/dev_system/{dev/panels → sub/bench}/bench_panel_test.rb +6 -2
  88. data/lib/dev_system/sub/bench/bench_test.rb +24 -0
  89. data/lib/dev_system/sub/bench/benches/not_found_bench.rb +33 -0
  90. data/lib/dev_system/{dev/controllers/bench → sub/bench/benches}/not_found_bench_test.rb +1 -2
  91. data/lib/dev_system/{dev/controllers/command → sub/bench/commands}/bench_command.rb +2 -7
  92. data/lib/dev_system/{dev/controllers/command → sub/bench/commands}/bench_command_test.rb +1 -2
  93. data/lib/dev_system/sub/bench/generators/bench_generator.rb +70 -0
  94. data/lib/dev_system/sub/bench/generators/bench_generator_test.rb +10 -0
  95. data/lib/dev_system/sub/command/command.rb +28 -0
  96. data/lib/dev_system/sub/command/command_panel.rb +151 -0
  97. data/lib/dev_system/sub/command/command_panel_test.rb +78 -0
  98. data/lib/dev_system/{dev/controllers → sub/command}/command_test.rb +6 -2
  99. data/lib/dev_system/sub/command/commands/base_command.rb +48 -0
  100. data/lib/dev_system/sub/command/commands/base_command_test.rb +11 -0
  101. data/lib/dev_system/{dev/controllers/terminal/irb_terminal.rb → sub/command/commands/irb_command.rb} +4 -2
  102. data/lib/dev_system/sub/command/commands/irb_command_test.rb +11 -0
  103. data/lib/dev_system/sub/command/commands/not_found_command.rb +156 -0
  104. data/lib/dev_system/sub/command/commands/not_found_command_test.rb +11 -0
  105. data/lib/dev_system/sub/command/commands/pry_command.rb +10 -0
  106. data/lib/dev_system/sub/command/commands/pry_command_test.rb +11 -0
  107. data/lib/dev_system/sub/command/commands/simple_command.rb +143 -0
  108. data/lib/dev_system/sub/command/commands/simple_command_test.rb +11 -0
  109. data/lib/dev_system/sub/command/generators/command_generator.rb +90 -0
  110. data/lib/dev_system/sub/command/generators/command_generator_test.rb +11 -0
  111. data/lib/dev_system/sub/command/input_commands/highline_input_command.rb +17 -0
  112. data/lib/dev_system/sub/command/input_commands/highline_input_command_test.rb +19 -0
  113. data/lib/dev_system/sub/command/input_commands/input_command.rb +20 -0
  114. data/lib/dev_system/sub/command/input_commands/input_command_test.rb +19 -0
  115. data/lib/dev_system/sub/command/input_commands/tty_input_command.rb +55 -0
  116. data/lib/dev_system/sub/command/input_commands/tty_input_command_test.rb +19 -0
  117. data/lib/dev_system/sub/generator/commands/generate_command.rb +9 -0
  118. data/lib/dev_system/sub/generator/commands/generate_command_test.rb +11 -0
  119. data/lib/dev_system/sub/generator/commands/new_command.rb +10 -0
  120. data/lib/dev_system/sub/generator/commands/new_command_test.rb +7 -0
  121. data/lib/dev_system/sub/generator/generator.rb +19 -0
  122. data/lib/dev_system/sub/generator/generator_panel.rb +98 -0
  123. data/lib/dev_system/sub/generator/generator_panel_test.rb +79 -0
  124. data/lib/dev_system/{dev/controllers → sub/generator}/generator_test.rb +6 -2
  125. data/lib/dev_system/sub/generator/generators/base_generator.rb +64 -0
  126. data/lib/dev_system/sub/generator/generators/base_generator_test.rb +11 -0
  127. data/lib/dev_system/sub/generator/generators/generator_generator.rb +71 -0
  128. data/lib/dev_system/sub/generator/generators/generator_generator_test.rb +11 -0
  129. data/lib/dev_system/sub/generator/generators/new_generator.rb +74 -0
  130. data/lib/dev_system/sub/generator/generators/new_generator_test.rb +11 -0
  131. data/lib/dev_system/sub/generator/generators/not_found_generator.rb +155 -0
  132. data/lib/dev_system/sub/generator/generators/not_found_generator_test.rb +11 -0
  133. data/lib/dev_system/sub/generator/generators/simple_generator.rb +257 -0
  134. data/lib/dev_system/sub/generator/generators/simple_generator_test.rb +38 -0
  135. data/lib/dev_system/sub/log/commands/log_command.rb +11 -0
  136. data/lib/dev_system/sub/log/commands/log_command_test.rb +11 -0
  137. data/lib/dev_system/sub/log/generators/log_generator.rb +54 -0
  138. data/lib/dev_system/sub/log/generators/log_generator_test.rb +10 -0
  139. data/lib/dev_system/sub/log/log.rb +3 -0
  140. data/lib/dev_system/sub/log/log_panel.rb +47 -0
  141. data/lib/dev_system/sub/log/log_panel_test.rb +50 -0
  142. data/lib/dev_system/sub/log/log_test.rb +16 -0
  143. data/lib/dev_system/sub/log/logs/output_log.rb +74 -0
  144. data/lib/dev_system/sub/log/logs/output_log_test.rb +47 -0
  145. data/lib/dev_system/sub/log/logs/stick_log.rb +79 -0
  146. data/lib/dev_system/sub/log/logs/stick_log_test.rb +88 -0
  147. data/lib/dev_system/sub/shell/commands/convert_command.rb +27 -0
  148. data/lib/dev_system/sub/shell/commands/convert_command_test.rb +10 -0
  149. data/lib/dev_system/sub/shell/commands/format_command.rb +25 -0
  150. data/lib/dev_system/sub/shell/commands/format_command_test.rb +10 -0
  151. data/lib/dev_system/sub/shell/commands/loc_command.rb +211 -0
  152. data/lib/dev_system/sub/shell/commands/loc_command_test.rb +10 -0
  153. data/lib/dev_system/sub/shell/commands/shell_command.rb +45 -0
  154. data/lib/dev_system/sub/shell/commands/shell_command_test.rb +11 -0
  155. data/lib/dev_system/sub/shell/converter_shells/coffee_converter_shell.rb +21 -0
  156. data/lib/dev_system/sub/shell/converter_shells/coffee_converter_shell_test.rb +41 -0
  157. data/lib/dev_system/sub/shell/converter_shells/converter_shell.rb +13 -0
  158. data/lib/dev_system/sub/shell/converter_shells/converter_shell_test.rb +19 -0
  159. data/lib/dev_system/sub/shell/converter_shells/haml_converter_shell.rb +30 -0
  160. data/lib/dev_system/sub/shell/converter_shells/haml_converter_shell_test.rb +34 -0
  161. data/lib/dev_system/sub/shell/converter_shells/md_converter_shell.rb +21 -0
  162. data/lib/dev_system/sub/shell/converter_shells/md_converter_shell_test.rb +38 -0
  163. data/lib/dev_system/sub/shell/converter_shells/scss_converter_shell.rb +59 -0
  164. data/lib/dev_system/sub/shell/converter_shells/scss_converter_shell_test.rb +59 -0
  165. data/lib/dev_system/sub/shell/formatter_shells/formatter_shell.rb +13 -0
  166. data/lib/dev_system/sub/shell/formatter_shells/formatter_shell_test.rb +19 -0
  167. data/lib/dev_system/sub/shell/formatter_shells/html_formatter_shell.rb +20 -0
  168. data/lib/dev_system/sub/shell/formatter_shells/html_formatter_shell_test.rb +51 -0
  169. data/lib/dev_system/sub/shell/generators/shell_generator.rb +68 -0
  170. data/lib/dev_system/sub/shell/generators/shell_generator_test.rb +10 -0
  171. data/lib/dev_system/{dev/controllers → sub/shell}/shell.rb +22 -0
  172. data/lib/dev_system/sub/shell/shell_panel.rb +98 -0
  173. data/lib/dev_system/sub/shell/shell_panel_test.rb +18 -0
  174. data/lib/dev_system/{dev/controllers → sub/shell}/shell_test.rb +31 -2
  175. data/lib/dev_system/sub/shell/shells/app_shell.rb +185 -0
  176. data/lib/dev_system/sub/shell/shells/app_shell_test.rb +26 -0
  177. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/bin_shell_test.rb +1 -2
  178. data/lib/dev_system/sub/shell/shells/color_shell.rb +389 -0
  179. data/lib/dev_system/sub/shell/shells/color_shell_test.rb +27 -0
  180. data/lib/dev_system/sub/shell/shells/controller_shell.rb +20 -0
  181. data/lib/dev_system/sub/shell/shells/controller_shell_test.rb +16 -0
  182. data/lib/dev_system/sub/shell/shells/dir_shell.rb +27 -0
  183. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/dir_shell_test.rb +1 -5
  184. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/file_shell.rb +4 -4
  185. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/file_shell_test.rb +1 -2
  186. data/lib/dev_system/sub/shell/shells/gem_shell.rb +21 -0
  187. data/lib/dev_system/sub/shell/shells/gem_shell_test.rb +28 -0
  188. data/lib/dev_system/sub/shell/shells/kernel_shell.rb +22 -0
  189. data/lib/dev_system/sub/shell/shells/kernel_shell_test.rb +10 -0
  190. data/lib/dev_system/sub/shell/shells/line_diff_shell.rb +26 -0
  191. data/lib/dev_system/sub/shell/shells/line_diff_shell_test.rb +11 -0
  192. data/lib/dev_system/sub/shell/shells/line_shell.rb +56 -0
  193. data/lib/dev_system/sub/shell/shells/line_shell_test.rb +70 -0
  194. data/lib/dev_system/sub/shell/shells/method_shell.rb +52 -0
  195. data/lib/dev_system/sub/shell/shells/method_shell_test.rb +34 -0
  196. data/lib/dev_system/sub/shell/shells/text_file_shell.rb +14 -0
  197. data/lib/dev_system/sub/shell/shells/text_file_shell_test.rb +11 -0
  198. data/lib/dev_system/sub/shell/shells/text_shell.rb +65 -0
  199. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/text_shell_test.rb +1 -2
  200. data/lib/dev_system.rb +8 -2
  201. data/lib/happy_system/happy_box.rb +9 -0
  202. data/lib/happy_system/happy_box_test.rb +24 -0
  203. data/lib/happy_system/sub/axo/axo.rb +10 -0
  204. data/lib/happy_system/sub/axo/axo_panel.rb +9 -0
  205. data/lib/happy_system/sub/axo/axo_panel_test.rb +16 -0
  206. data/lib/happy_system/sub/axo/axo_test.rb +16 -0
  207. data/lib/happy_system/sub/axo/commands/axo_command.rb +40 -0
  208. data/lib/happy_system/sub/axo/commands/axo_command_test.rb +8 -0
  209. data/lib/happy_system/sub/axo/generators/axo_generator.rb +79 -0
  210. data/lib/happy_system/sub/axo/generators/axo_generator_test.rb +11 -0
  211. data/lib/happy_system.rb +4 -2
  212. data/lib/lab_system/clients/kroki_client.rb +134 -0
  213. data/lib/lab_system/clients/kroki_client_test.rb +32 -0
  214. data/lib/lab_system/clients/liza_kroki_client.rb +176 -0
  215. data/lib/lab_system/clients/liza_kroki_client_test.rb +32 -0
  216. data/lib/lab_system/commands/docker_command.rb +61 -0
  217. data/lib/lab_system/commands/docker_command_test.rb +11 -0
  218. data/lib/lab_system/lab_box.rb +5 -0
  219. data/lib/lab_system/lab_box_test.rb +8 -0
  220. data/lib/lab_system/requests/kroki_request.rb +182 -0
  221. data/lib/lab_system/requests/kroki_request_test.rb +11 -0
  222. data/lib/lab_system/shells/docker_shell.rb +60 -0
  223. data/lib/lab_system/shells/docker_shell_test.rb +61 -0
  224. data/lib/lab_system/shells/kroki_docker_shell.rb +20 -0
  225. data/lib/lab_system/shells/kroki_docker_shell_test.rb +11 -0
  226. data/lib/lab_system.rb +8 -0
  227. data/lib/lerb.rb +95 -49
  228. data/lib/liza/base/controller.rb +14 -15
  229. data/lib/liza/base/controller_test.rb +28 -2
  230. data/lib/liza/base/panel.rb +64 -24
  231. data/lib/liza/base/panel_test.rb +168 -3
  232. data/lib/liza/base_parts/controller_subsystem_part.rb +93 -0
  233. data/lib/liza/base_parts/panel_rescuer_part.rb +129 -0
  234. data/lib/liza/meta/box.rb +24 -0
  235. data/lib/liza/meta/box_test.rb +20 -0
  236. data/lib/liza/meta/part_test.rb +6 -1
  237. data/lib/liza/meta/system.rb +50 -7
  238. data/lib/liza/meta/system_test.rb +6 -2
  239. data/lib/liza/ruby_tests/app_test.rb +39 -0
  240. data/lib/liza/ruby_tests/class_test.rb +20 -0
  241. data/lib/liza/ruby_tests/module_test.rb +4 -4
  242. data/lib/liza/{ruby_test.rb → ruby_tests/object_test.rb} +1 -1
  243. data/lib/liza/ruby_tests/string_test.rb +3 -1
  244. data/lib/liza/{test → safety}/test.rb +9 -0
  245. data/lib/liza/{test → safety}/test_test.rb +44 -7
  246. data/lib/liza/{test_parts → safety_parts}/test_assertions_advanced_part.rb +1 -1
  247. data/lib/liza/{test_parts → safety_parts}/test_assertions_part.rb +1 -1
  248. data/lib/liza/{test_parts → safety_parts}/test_dsl_part.rb +3 -3
  249. data/lib/liza/{test_parts → safety_parts}/test_log_part.rb +20 -0
  250. data/lib/liza/{test_parts → safety_parts}/test_subject_part.rb +10 -0
  251. data/lib/liza/safety_parts/test_tree_part.rb +87 -0
  252. data/lib/liza/unit.rb +64 -120
  253. data/lib/liza/unit_parts/unit_classes_part.rb +37 -0
  254. data/lib/liza/unit_parts/unit_classes_part_test.rb +3 -0
  255. data/lib/liza/unit_parts/unit_logging_part.rb +139 -0
  256. data/lib/liza/unit_parts/unit_logging_part_test.rb +3 -0
  257. data/lib/liza/unit_parts/unit_methods_part.rb +35 -0
  258. data/lib/liza/unit_parts/unit_methods_part_test.rb +3 -0
  259. data/lib/liza/unit_parts/unit_procedure_part.rb +2 -2
  260. data/lib/liza/unit_parts/unit_procedure_part_test.rb +9 -9
  261. data/lib/liza/unit_parts/unit_renderer_part.rb +171 -0
  262. data/lib/liza/unit_parts/unit_renderer_part_test.rb +15 -0
  263. data/lib/liza/unit_parts/unit_settings_part.rb +84 -0
  264. data/lib/liza/unit_parts/unit_settings_part_test.rb +3 -0
  265. data/lib/liza/unit_test.rb +114 -5
  266. data/lib/liza.rb +11 -2
  267. data/lib/lizarb/ruby/class.rb +9 -1
  268. data/lib/lizarb/ruby/module.rb +1 -1
  269. data/lib/lizarb/ruby/string.rb +3 -1
  270. data/lib/lizarb/version.rb +1 -1
  271. data/lib/lizarb.rb +404 -29
  272. data/lib/micro_system/micro_box.rb +5 -0
  273. data/lib/micro_system/micro_box_test.rb +8 -0
  274. data/lib/micro_system.rb +8 -0
  275. data/lib/net_system/net_box.rb +21 -0
  276. data/lib/net_system/{net/net_box_test.rb → net_box_test.rb} +1 -2
  277. data/lib/net_system/{net/panels → sub/client}/client_panel_test.rb +1 -2
  278. data/lib/net_system/{net/controllers → sub/client}/client_test.rb +1 -2
  279. data/lib/net_system/sub/client/generators/client_generator.rb +88 -0
  280. data/lib/net_system/sub/client/generators/client_generator_test.rb +10 -0
  281. data/lib/net_system/sub/database/clients/mongo_client.rb +33 -0
  282. data/lib/net_system/sub/database/clients/mongo_client_test.rb +20 -0
  283. data/lib/net_system/sub/database/clients/mysql_client.rb +29 -0
  284. data/lib/net_system/sub/database/clients/mysql_client_test.rb +23 -0
  285. data/lib/net_system/sub/database/clients/pgsql_client.rb +29 -0
  286. data/lib/net_system/sub/database/clients/pgsql_client_test.rb +25 -0
  287. data/lib/net_system/{net/controllers/client → sub/database/clients}/redis_client.rb +5 -2
  288. data/lib/net_system/{net/controllers/client → sub/database/clients}/redis_client_test.rb +2 -2
  289. data/lib/net_system/{net/controllers/client → sub/database/clients}/sqlite_client.rb +5 -2
  290. data/lib/net_system/{net/controllers/client → sub/database/clients}/sqlite_client_test.rb +2 -2
  291. data/lib/net_system/sub/database/commands/database_command.rb +32 -0
  292. data/lib/net_system/sub/database/commands/database_command_test.rb +11 -0
  293. data/lib/net_system/{net/panels → sub/database}/database_panel_test.rb +1 -2
  294. data/lib/net_system/{net/controllers → sub/database}/database_test.rb +1 -2
  295. data/lib/net_system/sub/database/databases/mongo_db.rb +8 -0
  296. data/lib/net_system/sub/database/databases/mongo_db_test.rb +21 -0
  297. data/lib/net_system/sub/database/databases/mysql_db.rb +8 -0
  298. data/lib/net_system/sub/database/databases/mysql_db_test.rb +21 -0
  299. data/lib/net_system/sub/database/databases/pgsql_db.rb +8 -0
  300. data/lib/net_system/sub/database/databases/pgsql_db_test.rb +21 -0
  301. data/lib/net_system/{net/controllers/database → sub/database/databases}/redis_db_test.rb +1 -1
  302. data/lib/net_system/{net/controllers/database → sub/database/databases}/sqlite_db_test.rb +1 -1
  303. data/lib/net_system/sub/record/generators/record_generator.rb +33 -0
  304. data/lib/net_system/sub/record/generators/record_generator_test.rb +11 -0
  305. data/lib/net_system/sub/record/record_panel.rb +3 -0
  306. data/lib/net_system/sub/record/record_panel_test.rb +11 -0
  307. data/lib/net_system/{net/controllers → sub/record}/record_test.rb +1 -2
  308. data/lib/net_system.rb +8 -1
  309. data/lib/web_system/sub/rack/commands/rack_command.rb +30 -0
  310. data/lib/web_system/sub/rack/commands/rack_command_test.rb +11 -0
  311. data/lib/web_system/sub/rack/middle_racks/first_middle_rack.rb +8 -0
  312. data/lib/web_system/sub/rack/middle_racks/first_middle_rack_test.rb +11 -0
  313. data/lib/web_system/sub/rack/middle_racks/last_middle_rack.rb +3 -0
  314. data/lib/web_system/sub/rack/middle_racks/last_middle_rack_test.rb +11 -0
  315. data/lib/web_system/sub/rack/middle_racks/middle_rack.rb +18 -0
  316. data/lib/web_system/sub/rack/middle_racks/middle_rack_test.rb +11 -0
  317. data/lib/web_system/sub/rack/middle_racks/zeitwerk_middle_rack.rb +11 -0
  318. data/lib/web_system/sub/rack/middle_racks/zeitwerk_middle_rack_test.rb +11 -0
  319. data/lib/web_system/sub/rack/rack_panel.rb +52 -0
  320. data/lib/web_system/{web/panels → sub/rack}/rack_panel_test.rb +1 -2
  321. data/lib/web_system/{web/controllers → sub/rack}/rack_test.rb +1 -2
  322. data/lib/web_system/sub/rack/server_racks/agoo_server_rack.rb +53 -0
  323. data/lib/web_system/sub/rack/server_racks/agoo_server_rack_test.rb +11 -0
  324. data/lib/web_system/sub/rack/server_racks/falcon_server_rack.rb +46 -0
  325. data/lib/web_system/sub/rack/server_racks/falcon_server_rack_test.rb +11 -0
  326. data/lib/web_system/sub/rack/server_racks/iodine_server_rack.rb +47 -0
  327. data/lib/web_system/sub/rack/server_racks/iodine_server_rack_test.rb +11 -0
  328. data/lib/web_system/sub/rack/server_racks/puma_server_rack.rb +48 -0
  329. data/lib/web_system/sub/rack/server_racks/puma_server_rack_test.rb +11 -0
  330. data/lib/web_system/sub/rack/server_racks/server_rack.rb +12 -0
  331. data/lib/web_system/sub/rack/server_racks/server_rack_test.rb +11 -0
  332. data/lib/web_system/sub/rack/server_racks/thin_server_rack.rb +85 -0
  333. data/lib/web_system/sub/rack/server_racks/thin_server_rack_test.rb +11 -0
  334. data/lib/web_system/sub/request/commands/request_command.rb +125 -0
  335. data/lib/web_system/sub/request/commands/request_command_test.rb +11 -0
  336. data/lib/web_system/sub/request/generators/request_generator.rb +96 -0
  337. data/lib/web_system/sub/request/generators/request_generator_test.rb +11 -0
  338. data/lib/web_system/sub/request/request_panel.rb +69 -0
  339. data/lib/web_system/sub/request/request_panel_test.rb +54 -0
  340. data/lib/web_system/{web/controllers → sub/request}/request_test.rb +1 -2
  341. data/lib/web_system/sub/request/requests/simple_request.rb +95 -0
  342. data/lib/web_system/sub/request/requests/simple_request_test.rb +11 -0
  343. data/lib/web_system/sub/request/router_requests/router_request.rb +7 -0
  344. data/lib/web_system/sub/request/router_requests/router_request_test.rb +11 -0
  345. data/lib/web_system/sub/request/router_requests/simple_router_request.rb +24 -0
  346. data/lib/web_system/sub/request/router_requests/simple_router_request_test.rb +11 -0
  347. data/lib/web_system/web_box.rb +17 -0
  348. data/lib/web_system/{web/web_box_test.rb → web_box_test.rb} +1 -2
  349. data/lib/web_system.rb +9 -3
  350. data/lib/work_system/work_box.rb +5 -0
  351. data/lib/work_system/work_box_test.rb +8 -0
  352. data/lib/work_system.rb +8 -0
  353. data/lizarb.gemspec +14 -8
  354. metadata +375 -168
  355. data/.ruby-version +0 -1
  356. data/app/dev/benches/app_bench.rb +0 -5
  357. data/app/dev/benches/app_bench_test.rb +0 -7
  358. data/app/dev/benches/loops_bench_test.rb +0 -11
  359. data/app/dev/commands/app_command.rb +0 -5
  360. data/app/dev/commands/app_command_test.rb +0 -7
  361. data/app/dev/commands/new_command.rb +0 -9
  362. data/app/dev/commands/new_command_test.rb +0 -7
  363. data/app/dev/generators/bench_generator/bench.rb.erb +0 -24
  364. data/app/dev/generators/bench_generator/bench_test.rb.erb +0 -12
  365. data/app/dev/generators/bench_generator.rb +0 -18
  366. data/app/dev/generators/bench_generator_test.rb +0 -12
  367. data/app/dev/generators/command_generator/command.rb.erb +0 -26
  368. data/app/dev/generators/command_generator/command_test.rb.erb +0 -12
  369. data/app/dev/generators/command_generator.rb +0 -18
  370. data/app/dev/generators/command_generator_test.rb +0 -12
  371. data/app/dev/generators/record_generator.rb +0 -46
  372. data/app/dev/generators/record_generator_test.rb +0 -12
  373. data/app/dev/generators/request_generator.rb +0 -63
  374. data/app/dev/generators/request_generator_test.rb +0 -12
  375. data/app/happy/axos/axo.rb +0 -50
  376. data/exe/Gemfile.lock +0 -13
  377. data/exe/lrb +0 -3
  378. data/lib/dev_system/dev/controllers/bench/not_found_bench.rb +0 -27
  379. data/lib/dev_system/dev/controllers/bench.rb +0 -9
  380. data/lib/dev_system/dev/controllers/bench_dsl_main_part.rb +0 -58
  381. data/lib/dev_system/dev/controllers/bench_test.rb +0 -12
  382. data/lib/dev_system/dev/controllers/command/echo_command.rb +0 -9
  383. data/lib/dev_system/dev/controllers/command/echo_command_test.rb +0 -12
  384. data/lib/dev_system/dev/controllers/command/generate_command.rb +0 -33
  385. data/lib/dev_system/dev/controllers/command/generate_command_test.rb +0 -12
  386. data/lib/dev_system/dev/controllers/command/not_found_command.rb +0 -27
  387. data/lib/dev_system/dev/controllers/command/not_found_command_test.rb +0 -12
  388. data/lib/dev_system/dev/controllers/command/terminal_command.rb +0 -22
  389. data/lib/dev_system/dev/controllers/command/terminal_command_test.rb +0 -12
  390. data/lib/dev_system/dev/controllers/command/version_command.rb +0 -7
  391. data/lib/dev_system/dev/controllers/command/version_command_test.rb +0 -12
  392. data/lib/dev_system/dev/controllers/command.rb +0 -17
  393. data/lib/dev_system/dev/controllers/generator.rb +0 -9
  394. data/lib/dev_system/dev/controllers/generator_dsl_main_part.rb +0 -52
  395. data/lib/dev_system/dev/controllers/generators/app_generator.rb +0 -146
  396. data/lib/dev_system/dev/controllers/generators/app_generator_test.rb +0 -12
  397. data/lib/dev_system/dev/controllers/generators/generator_generator/generator.rb.erb +0 -18
  398. data/lib/dev_system/dev/controllers/generators/generator_generator/generator_test.rb.erb +0 -12
  399. data/lib/dev_system/dev/controllers/generators/generator_generator/template.rb.erb +0 -9
  400. data/lib/dev_system/dev/controllers/generators/generator_generator/template_test.rb.erb +0 -12
  401. data/lib/dev_system/dev/controllers/generators/generator_generator.rb +0 -30
  402. data/lib/dev_system/dev/controllers/generators/generator_generator_test.rb +0 -12
  403. data/lib/dev_system/dev/controllers/generators/not_found_generator.rb +0 -27
  404. data/lib/dev_system/dev/controllers/generators/not_found_generator_test.rb +0 -12
  405. data/lib/dev_system/dev/controllers/shell/dir_shell.rb +0 -27
  406. data/lib/dev_system/dev/controllers/shell/text_shell.rb +0 -23
  407. data/lib/dev_system/dev/controllers/terminal/irb_terminal_test.rb +0 -12
  408. data/lib/dev_system/dev/controllers/terminal/pry_terminal.rb +0 -10
  409. data/lib/dev_system/dev/controllers/terminal/pry_terminal_test.rb +0 -12
  410. data/lib/dev_system/dev/controllers/terminal.rb +0 -17
  411. data/lib/dev_system/dev/controllers/terminal_test.rb +0 -12
  412. data/lib/dev_system/dev/dev_box.rb +0 -39
  413. data/lib/dev_system/dev/dev_box_test.rb +0 -17
  414. data/lib/dev_system/dev/panels/command_panel.rb +0 -28
  415. data/lib/dev_system/dev/panels/command_panel_test.rb +0 -21
  416. data/lib/dev_system/dev/panels/generator_panel.rb +0 -3
  417. data/lib/dev_system/dev/panels/generator_panel_test.rb +0 -12
  418. data/lib/dev_system/dev/panels/log_panel.rb +0 -13
  419. data/lib/dev_system/dev/panels/log_panel_test.rb +0 -16
  420. data/lib/dev_system/dev/panels/shell_panel.rb +0 -3
  421. data/lib/dev_system/dev/panels/shell_panel_test.rb +0 -12
  422. data/lib/dev_system/dev/panels/terminal_panel.rb +0 -3
  423. data/lib/dev_system/dev/panels/terminal_panel_test.rb +0 -12
  424. data/lib/happy_system/dev/happy_command.rb +0 -11
  425. data/lib/happy_system/happy/controllers/axo.rb +0 -7
  426. data/lib/happy_system/happy/happy_box.rb +0 -9
  427. data/lib/happy_system/happy/happy_box_test.rb +0 -16
  428. data/lib/happy_system/happy/panels/axo_panel.rb +0 -3
  429. data/lib/liza/base/box.rb +0 -85
  430. data/lib/liza/base/box_test.rb +0 -10
  431. data/lib/liza/base_parts/controller_renderer_part.rb +0 -140
  432. data/lib/liza/base_parts/controller_renderer_part_test.rb +0 -16
  433. data/lib/liza/meta/part_extension.rb +0 -16
  434. data/lib/liza/test_parts/test_tree_part.rb +0 -137
  435. data/lib/net_system/dev/net_command.rb +0 -22
  436. data/lib/net_system/net/net_box.rb +0 -15
  437. data/lib/web_system/dev/rack_command.rb +0 -35
  438. data/lib/web_system/dev/request_command.rb +0 -143
  439. data/lib/web_system/dev/web_command.rb +0 -9
  440. data/lib/web_system/web/panels/rack_panel.rb +0 -42
  441. data/lib/web_system/web/panels/request_panel.rb +0 -72
  442. data/lib/web_system/web/panels/request_panel_test.rb +0 -33
  443. data/lib/web_system/web/web_box.rb +0 -20
  444. /data/lib/dev_system/{dev/panels → sub/bench}/bench_panel.rb +0 -0
  445. /data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/bin_shell.rb +0 -0
  446. /data/lib/net_system/{net/controllers → sub/client}/client.rb +0 -0
  447. /data/lib/net_system/{net/panels → sub/client}/client_panel.rb +0 -0
  448. /data/lib/net_system/{net/controllers → sub/database}/database.rb +0 -0
  449. /data/lib/net_system/{net/panels → sub/database}/database_panel.rb +0 -0
  450. /data/lib/net_system/{net/controllers/database → sub/database/databases}/redis_db.rb +0 -0
  451. /data/lib/net_system/{net/controllers/database → sub/database/databases}/sqlite_db.rb +0 -0
  452. /data/lib/net_system/{net/controllers → sub/record}/record.rb +0 -0
  453. /data/lib/web_system/{web/controllers → sub/rack}/rack.rb +0 -0
  454. /data/lib/web_system/{web/controllers → sub/request}/request.rb +0 -0
  455. /data/lib/web_system/{web/controllers/request → sub/request/requests}/client_error_request.rb +0 -0
  456. /data/lib/web_system/{web/controllers/request → sub/request/requests}/not_found_request.rb +0 -0
  457. /data/lib/web_system/{web/controllers/request → sub/request/requests}/server_error_request.rb +0 -0
@@ -1,24 +1,81 @@
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
14
44
  end
15
45
 
46
+ def subsystem
47
+ controller
48
+ end
49
+
50
+ # color
51
+
52
+ def self.color
53
+ system.color
54
+ end
55
+
56
+ #
57
+
58
+ attr_reader :key
59
+
16
60
  def initialize key
17
61
  @key = key
18
62
  @blocks = []
19
63
  @unstarted = true
64
+ @short = {}
65
+ end
66
+
67
+ #
68
+
69
+ def short a, b = nil
70
+ if b
71
+ @short[a.to_s] = b.to_s
72
+ else
73
+ @short[a.to_s] || a.to_s
74
+ end
20
75
  end
21
76
 
77
+ #
78
+
22
79
  def push block
23
80
  @unstarted = true
24
81
  @blocks.push block
@@ -28,27 +85,10 @@ class Liza::Panel < Liza::Unit
28
85
  return self unless defined? @unstarted
29
86
  remove_instance_variable :@unstarted
30
87
 
31
- @blocks.each { |bl| instance_eval &bl }
88
+ @blocks.each { |bl| instance_eval(&bl) }
32
89
  @blocks.clear
33
90
 
34
91
  self
35
92
  end
36
-
37
- def log log_level = :normal, string
38
- raise "invalid log_level `#{log_level}`" unless LOG_LEVELS.keys.include? log_level
39
- return unless log_level? log_level
40
-
41
- source = box.to_s
42
-
43
- x = source.size
44
- source = source.bold.colorize log_color
45
-
46
- y = source.size
47
- source = "#{source}[:#{@key}]".ljust(LOG_JUST+y-x)
48
-
49
- string = "#{source} #{string}"
50
-
51
- DevBox[:log].call string
52
- end
53
93
 
54
94
  end
@@ -4,11 +4,176 @@ class Liza::PanelTest < Liza::UnitTest
4
4
  end
5
5
 
6
6
  def subject
7
- subject_class.new "name"
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
150
+ end
151
+
152
+ #
153
+
154
+ test :short do
155
+ assert_equality subject.short("m"), "m"
156
+ assert_equality subject.short("i"), "i"
157
+ assert_equality subject.short("n"), "n"
158
+ assert_equality subject.short("s"), "s"
159
+ assert_equality subject.short("w"), "w"
160
+ assert_equality subject.short("a"), "a"
161
+ assert_equality subject.short("n"), "n"
162
+
163
+ subject.short :m, :matz
164
+ subject.short :i, :is
165
+ subject.short :n, :nice
166
+ subject.short :s, :so
167
+ subject.short :w, :we
168
+ subject.short :a, :are
169
+
170
+ assert_equality subject.short("m"), "matz"
171
+ assert_equality subject.short("i"), "is"
172
+ assert_equality subject.short("n"), "nice"
173
+ assert_equality subject.short("s"), "so"
174
+ assert_equality subject.short("w"), "we"
175
+ assert_equality subject.short("a"), "are"
176
+ assert_equality subject.short("n"), "nice"
13
177
  end
178
+
14
179
  end
@@ -0,0 +1,93 @@
1
+ class Liza::ControllerSubsystemPart < Liza::Part
2
+ insertion do
3
+
4
+ # subsystem
5
+
6
+ def self.subsystem
7
+ get :subsystem
8
+ end
9
+
10
+ def self.subsystem?
11
+ get(:subsystem) == self
12
+ end
13
+
14
+ def self.subsystem! box_klass, panel
15
+ # FIRST, subsystem settings
16
+ set :subsystem, self
17
+ set :box, box_klass
18
+ set :panel, panel
19
+
20
+ # LAST, panel settings
21
+ panel.settings.each do |k, v|
22
+ set k, v
23
+ end
24
+ end
25
+
26
+ # box and panel
27
+
28
+ def self.box
29
+ get :box
30
+ end
31
+
32
+ def self.panel
33
+ get :panel
34
+ end
35
+
36
+ def box
37
+ self.class.box
38
+ end
39
+
40
+ def panel
41
+ self.class.panel
42
+ end
43
+
44
+ # division
45
+
46
+ def self.division
47
+ get :division
48
+ end
49
+
50
+ def self.division?
51
+ get(:division) == self
52
+ end
53
+
54
+ def self.division!
55
+ set :division, self
56
+
57
+ camel = last_namespace
58
+ singular = camel.snakecase.to_sym
59
+ plural = "#{camel}s".snakecase.to_sym
60
+ fetch(:singular) { singular }
61
+ fetch(:plural) { plural }
62
+ end
63
+
64
+ # grammar
65
+
66
+ def self.singular
67
+ case
68
+ when subsystem? then get :singular
69
+ when division? then :"#{token}_#{subsystem.singular}"
70
+ else :"#{token}_#{division.singular}"
71
+ end
72
+ end
73
+
74
+ def self.plural
75
+ case
76
+ when subsystem? then get :plural
77
+ when division? then :"#{token}_#{subsystem.plural}"
78
+ else :"#{token}_#{division.plural}"
79
+ end
80
+ end
81
+
82
+ def self.token
83
+ if subsystem?
84
+ nil
85
+ elsif division?
86
+ last_namespace.gsub(/#{subsystem.last_namespace}$/, '').snakecase.to_sym
87
+ else
88
+ last_namespace.gsub(/#{division.last_namespace}$/, '').snakecase.to_sym
89
+ end
90
+ end
91
+
92
+ end
93
+ end
@@ -0,0 +1,129 @@
1
+ class Liza::PanelRescuerPart < Liza::Part
2
+ insertion do
3
+
4
+ #
5
+
6
+ def rescue_from(*args, with: nil, &block)
7
+ rescuer = Rescuer.new
8
+
9
+ raise ArgumentError, "either with: or block is required, but not both" if with && block
10
+
11
+ case args.count
12
+ when 1
13
+
14
+ e_class = args[0]
15
+ e_class = _rescue_from_parse_symbol(e_class) if Symbol === e_class
16
+
17
+ when 2
18
+
19
+ e_class = args[0]
20
+ e_class = _rescue_from_parse_symbols(args) if Symbol === e_class
21
+
22
+ else
23
+
24
+ raise ArgumentError, "wrong number of arguments (given #{args.count}, expected 1..2)"
25
+
26
+ end
27
+
28
+ unless e_class
29
+ msg = "args #{args} parsed to #{e_class} (expected a descendant of Exception)"
30
+ raise ArgumentError, msg
31
+ end
32
+
33
+ e_class_is_exception = e_class.ancestors.include? Exception
34
+ unless e_class_is_exception
35
+ msg = "args #{args} parsed to #{e_class} (expected a descendant of Exception)"
36
+ raise ArgumentError, msg
37
+ end
38
+
39
+ rescuer[:exception_class] = e_class
40
+ rescuer[:with] = with
41
+ rescuer[:block] = block
42
+
43
+ if with.nil? && block.nil?
44
+ puts "rescue_from #{e_class} with: or block: is required".red
45
+ raise ArgumentError, "with: or block: is required", caller
46
+ end
47
+
48
+ rescuers.push(rescuer)
49
+ end
50
+
51
+ def _rescue_from_parse_symbol(arg)
52
+ return Liza::Error if arg == :error
53
+
54
+ Object.const_get(arg.to_s.camelcase)
55
+ rescue NameError => e
56
+ msg = "rescue_from parsed to #{arg.to_s.camelcase} which does not exist"
57
+ puts msg.red
58
+ raise e, msg, caller
59
+ end
60
+
61
+ def _rescue_from_parse_symbols(args)
62
+ namespace = Liza.const(args[0])
63
+ begin
64
+ namespace.const_get("#{args[1].to_s.camelcase}Error")
65
+ rescue NameError => e
66
+ msg = "rescue_from parsed to #{args[0].to_s.camelcase}::#{args[1].to_s.camelcase}Error which does not exist"
67
+ puts msg.red
68
+ raise e, msg, caller
69
+ end
70
+ end
71
+
72
+ #
73
+
74
+ def rescuers
75
+ @rescuers ||= []
76
+ end
77
+
78
+ #
79
+
80
+ def rescue_from_panel(exception, with: )
81
+ rescuer = _rescue_from_panel_find exception
82
+ raise exception.class, exception.message, caller[1..-1] unless rescuer
83
+
84
+ ret = nil
85
+
86
+ log :lower, "rescuer = #{rescuer.inspect}"
87
+ case with
88
+ when Array
89
+ with.push(rescuer)
90
+ rescuer[:args] = with
91
+ ret = rescuer.call
92
+ when Hash
93
+ with[:rescuer] = rescuer
94
+ rescuer[:env] = with
95
+ ret = rescuer.call
96
+ else
97
+ raise ArgumentError, "wrong argument type #{with.class} (expected Array or Hash)"
98
+ end
99
+
100
+ ret
101
+ end
102
+
103
+ def _rescue_from_panel_find(exception)
104
+ rescuer = rescuers.reverse.find { exception.class.ancestors.include? _1[:exception_class] }
105
+ log :lower, "rescuer = #{rescuer.inspect}"
106
+ return nil unless rescuer
107
+ rescuer = rescuer.dup
108
+ rescuer[:exception] = exception
109
+ rescuer
110
+ end
111
+
112
+ #
113
+
114
+ class Rescuer < Hash
115
+ def call
116
+ if self[:block]
117
+ self[:block].call self
118
+ elsif self[:env]
119
+ self[:with].call self[:env]
120
+ elsif self[:args]
121
+ self[:with].call self[:args]
122
+ else
123
+ raise "not expected"
124
+ end
125
+ end
126
+ end
127
+
128
+ end
129
+ end
@@ -0,0 +1,24 @@
1
+ class Liza::Box < Liza::Unit
2
+
3
+ def self.panels
4
+ fetch(:panels) { {} }
5
+ end
6
+
7
+ def self.[] symbol
8
+ panels[symbol].started
9
+ end
10
+
11
+ def self.configure name, &block
12
+ raise ArgumentError, "block required" unless block_given?
13
+ raise ArgumentError, "Invalid panel: #{name}. Valid panels are: #{system.subs}" unless system.subs.include? name
14
+
15
+ panel = panels[name] ||= Liza.const("#{name}_panel").new name
16
+ panel.push block
17
+ end
18
+
19
+ # color
20
+
21
+ def self.color
22
+ system.color
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ class Liza::BoxTest < Liza::UnitTest
2
+ test :subject_class do
3
+ assert subject_class == Liza::Box
4
+ end
5
+
6
+ test_methods_defined do
7
+ on_self :[], :color, :configure, :panels, :puts
8
+ on_instance
9
+ end
10
+
11
+ def assert_sub name, controller_class, panel_class, kaller: caller
12
+ assert_equality subject_class[name].class, panel_class, kaller: kaller
13
+ assert_equality panel_class.controller, controller_class, kaller: kaller
14
+ end
15
+
16
+ test :settings do
17
+ assert_equality subject_class.log_level, 0
18
+ end
19
+
20
+ end
@@ -1,6 +1,11 @@
1
- class Liza::PartTest < Liza::Test
1
+ class Liza::PartTest < Liza::UnitTest
2
2
  test :subject_class do
3
3
  assert subject_class == Liza::Part
4
4
  end
5
5
 
6
+ test_methods_defined do
7
+ on_self :extension, :insertion
8
+ on_instance
9
+ end
10
+
6
11
  end
@@ -4,15 +4,58 @@ class Liza::System < Liza::Unit
4
4
  const_get name.to_s.camelize
5
5
  end
6
6
 
7
- def self.insertion key, &block
8
- if block_given?
9
- registrar[:"insertion_#{key}"] = block
7
+ # Ignore this for now.
8
+ # This feature has been commented out for simplicity purposes.
9
+ # It injects code into other classes just like Part does. Lizarb connects them
10
+
11
+ # def self.insertion key, &block
12
+ # if block_given?
13
+ # registrar[:"insertion_#{key}"] = block
14
+ # else
15
+ # registrar[:"insertion_#{key}"]
16
+ # end
17
+ # end
18
+
19
+ # def self.registrar
20
+ # @registrar ||= {}
21
+ # end
22
+
23
+ #
24
+
25
+ def self.subs
26
+ @subs ||= []
27
+ end
28
+
29
+ def self.subsystems
30
+ @subsystems ||= subs.map { const _1 }
31
+ end
32
+
33
+ def self.sub name
34
+ subs << name
35
+ end
36
+
37
+ def self.token
38
+ @token ||= name.gsub(/System$/, '').snakecase.to_sym
39
+ end
40
+
41
+ def self.box
42
+ @box ||= self.const_get "#{token}_box".camelize
43
+ end
44
+
45
+ # SYSTEM
46
+
47
+ def self.system
48
+ self
49
+ end
50
+
51
+ # COLOR
52
+
53
+ def self.color color = nil
54
+ if color
55
+ @color = color
10
56
  else
11
- registrar[:"insertion_#{key}"]
57
+ @color
12
58
  end
13
59
  end
14
60
 
15
- def self.registrar
16
- @registrar ||= {}
17
- end
18
61
  end
@@ -3,9 +3,13 @@ class Liza::SystemTest < Liza::UnitTest
3
3
  assert subject_class == Liza::System
4
4
  end
5
5
 
6
+ test_methods_defined do
7
+ on_self :box, :color, :const, :sub, :subs, :subsystems, :token
8
+ on_instance
9
+ end
10
+
6
11
  test :settings do
7
- assert subject_class.log_level == :normal
8
- assert subject_class.log_color == :white
12
+ assert_equality subject_class.log_level, 0
9
13
  end
10
14
 
11
15
  end
@@ -0,0 +1,39 @@
1
+ class Liza::AppTest < Liza::ObjectTest
2
+
3
+ test :subject_class do
4
+ assert_equality subject_class, App
5
+ end
6
+
7
+ test :cwd, :root do
8
+ # returns a Pathname
9
+ assert_equality App.root.class, Pathname
10
+
11
+ # returns a new object each time
12
+ refute_equality App.cwd.object_id, App.cwd.object_id
13
+
14
+ # returns the same object each time
15
+ assert_equality App.root.object_id, App.root.object_id
16
+
17
+ # the join method creates a new object
18
+ refute_equality App.root.object_id, App.root.join("lib").object_id
19
+
20
+ # matches the current working directory
21
+ assert_equality App.root, App.cwd
22
+ Dir.chdir "lib" do
23
+ refute_equality App.root, App.cwd
24
+ end
25
+ assert_equality App.root, App.cwd
26
+ end
27
+
28
+ test :path, :relative_path do
29
+ # returns a Pathname
30
+ assert_equality App.path.class, Pathname
31
+ assert_equality App.relative_path.class, Pathname
32
+ assert_equality App.relative_path, Pathname("app")
33
+
34
+ # App.path starts with App.root
35
+ assert App.path.to_s.start_with?(App.root.to_s)
36
+ assert App.path.to_s.end_with?("app")
37
+ end
38
+
39
+ end