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,28 @@
1
+ class DevSystem::Command < Liza::Controller
2
+
3
+ def self.call args
4
+ log "args = #{args}"
5
+ new.call args
6
+ end
7
+
8
+ def call args
9
+ log "args = #{args}"
10
+ raise NotImplementedError
11
+ end
12
+
13
+ def self.get_command_signatures
14
+ signatures = []
15
+ ancestors_until(Command).each do |c|
16
+ signatures +=
17
+ c.methods_defined.select do |name|
18
+ c.method(name).parameters == [[:req, :args]]
19
+ end.map do |name|
20
+ OpenStruct.new({
21
+ name: ( name == :call ? "" : name.to_s ),
22
+ description: "# no description",
23
+ })
24
+ end
25
+ end
26
+ signatures
27
+ end
28
+ end
@@ -0,0 +1,151 @@
1
+ class DevSystem::CommandPanel < Liza::Panel
2
+ class Error < StandardError; end
3
+ class ParseError < Error; end
4
+ class NotFoundError < Error; end
5
+ class AlreadySet < Error; end
6
+
7
+ def call args
8
+ log :lower, "args = #{args.inspect}"
9
+
10
+ return call_not_found args if args.none?
11
+
12
+ env = build_env args
13
+ find env
14
+ forward env
15
+ inform env
16
+ # rescue Exception => e
17
+ rescue Error => e
18
+ rescue_from_panel(e, with: env)
19
+ end
20
+
21
+ #
22
+
23
+ PARSE_REGEX = /(?<command_given>[A-Za-z0-9_]+)(?::(?<command_class_method>[a-z0-9_]+))?(?:#(?<command_instance_method>[a-z0-9_]+))?(?:\.(?<command_method>[a-z0-9_]+))?/
24
+
25
+ # Hash command_name class_method instance_method method
26
+ def parse string
27
+ md = string.to_s.match PARSE_REGEX
28
+ raise ParseError if md.nil?
29
+
30
+ env = md.named_captures.map { [_1.to_sym, _2] }.to_h
31
+ env[:command_arg] = string
32
+ log :lower, "{#{env.map { ":#{_1}=>#{_2.to_s.inspect}" }.join(", ") }}"
33
+ env
34
+ end
35
+
36
+ def build_env args
37
+ env = parse args[0]
38
+ env[:args] = Array(args[1..-1])
39
+ env[:command_args] = env[:args].dup
40
+ env[:command_name] = short env[:command_given]
41
+ env
42
+ end
43
+
44
+ #
45
+
46
+ def find env
47
+ raise "env[:command_name] is empty #{env}" if env[:command_name].empty?
48
+ env[:command_class] = Liza.const "#{env[:command_name]}_command"
49
+ rescue Liza::ConstNotFound
50
+ raise NotFoundError, "command not found: #{env[:command_name].inspect}"
51
+ end
52
+
53
+ def _find string
54
+ k = Liza.const "#{string}_command"
55
+ log :lower, k
56
+ k
57
+ rescue Liza::ConstNotFound
58
+ raise NotFoundError, "command not found: #{string.inspect}"
59
+ end
60
+
61
+ #
62
+
63
+ def forward env
64
+ command_class = env[:command_class]
65
+
66
+ return forward_base_command env if command_class < BaseCommand
67
+ return forward_command env if command_class < Command
68
+ end
69
+
70
+ def forward_base_command env
71
+ log :lower, "forwarding"
72
+ env[:command_class].call env
73
+ end
74
+
75
+ def forward_command env
76
+ case
77
+ when env[:command_class_method]
78
+ log :lower, "#{env[:command_class]}.#{env[:command_class_method]}(#{env[:args]})"
79
+ env[:command_class].public_send env[:command_class_method], env[:args]
80
+ when env[:command_instance_method]
81
+ log :lower, "#{env[:command_class]}.new.#{env[:command_instance_method]}(#{env[:args]})"
82
+ env[:command_class].new.public_send env[:command_instance_method], env[:args]
83
+ when env[:command_method]
84
+ if env[:command_class].respond_to?(env[:command_method])
85
+ log :lower, "#{env[:command_class]}.#{env[:command_method]}(#{env[:args]})"
86
+ env[:command_class].public_send env[:command_method], env[:args]
87
+ else
88
+ log :lower, "#{env[:command_class]}.new.#{env[:command_method]}(#{env[:args]})"
89
+ env[:command_class].new.public_send env[:command_method], env[:args]
90
+ end
91
+ else
92
+ log :lower, "#{env[:command_class]}.call(#{env[:args]})"
93
+ env[:command_class].call env[:args]
94
+ end
95
+ end
96
+
97
+ #
98
+
99
+ def inform env
100
+ return if env[:simple] == nil
101
+ return if env[:simple] == [""]
102
+
103
+ env[:simple].shift if env[:simple][0] == ""
104
+
105
+ puts if log? :higher
106
+
107
+ args = [*env[:command_args], *env[:simple]].join(" ")
108
+
109
+ log sticks :black, system.color, :b,
110
+ ["LIZA"],
111
+ ["HELPS", :u],
112
+ ["YOU", :u, :i],
113
+ ["REMEMBER", :i] \
114
+ if log? :higher
115
+
116
+ log stick system.color, "#{ $0.split("/").last } #{ env[:command_arg] } #{ args }" if log? :higher
117
+ end
118
+
119
+ #
120
+
121
+ def call_not_found args
122
+ Liza[:NotFoundCommand].call args
123
+ end
124
+
125
+ #
126
+
127
+ def input name = nil
128
+ return (@input || InputCommand) if name.nil?
129
+ raise AlreadySet, "input already set to #{@input.inspect}, but trying to set to #{name.inspect}", caller if @input
130
+ @input = _find "#{name}_input"
131
+ end
132
+
133
+ def pick_one title, options = ["Yes", "No"]
134
+ if log_level? :highest
135
+ puts
136
+ log "Pick One"
137
+ end
138
+ # input.pick_one title, options
139
+ TtyInputCommand.pick_one title, options
140
+ end
141
+
142
+ def pick_many title, options
143
+ if log_level? :highest
144
+ puts
145
+ log "Pick Many"
146
+ end
147
+ # input.pick_many title, options
148
+ TtyInputCommand.multi_select title, options
149
+ end
150
+
151
+ end
@@ -0,0 +1,78 @@
1
+ class DevSystem::CommandPanelTest < Liza::PanelTest
2
+
3
+ test :subject_class do
4
+ assert_equality subject_class, DevSystem::CommandPanel
5
+ end
6
+
7
+ test_methods_defined do
8
+ on_self
9
+ on_instance \
10
+ :build_env,
11
+ :call, :call_not_found,
12
+ :find,
13
+ :forward, :forward_base_command, :forward_command,
14
+ :inform,
15
+ :input,
16
+ :parse,
17
+ :pick_many, :pick_one
18
+ end
19
+
20
+ test :settings do
21
+ assert_equality subject_class.log_level, 0
22
+ end
23
+
24
+ test :parse do
25
+ def parse string
26
+ OpenStruct.new subject.parse(string)
27
+ end
28
+
29
+ struct = parse "generate"
30
+ assert_equality struct.command_given, "generate"
31
+ assert_equality struct.command_class_method, nil
32
+ assert_equality struct.command_instance_method, nil
33
+ assert_equality struct.command_method, nil
34
+
35
+ struct = parse "generate:install"
36
+ assert_equality struct.command_given, "generate"
37
+ assert_equality struct.command_class_method, "install"
38
+ assert_equality struct.command_instance_method, nil
39
+ assert_equality struct.command_method, nil
40
+
41
+ struct = parse "generate#install"
42
+ assert_equality struct.command_given, "generate"
43
+ assert_equality struct.command_class_method, nil
44
+ assert_equality struct.command_instance_method, "install"
45
+ assert_equality struct.command_method, nil
46
+
47
+ struct = parse "generate.install"
48
+ assert_equality struct.command_given, "generate"
49
+ assert_equality struct.command_class_method, nil
50
+ assert_equality struct.command_instance_method, nil
51
+ assert_equality struct.command_method, "install"
52
+
53
+ struct = parse "two_words"
54
+ assert_equality struct.command_given, "two_words"
55
+ assert_equality struct.command_class_method, nil
56
+ assert_equality struct.command_instance_method, nil
57
+ assert_equality struct.command_method, nil
58
+
59
+ struct = parse "word10"
60
+ assert_equality struct.command_given, "word10"
61
+ assert_equality struct.command_class_method, nil
62
+ assert_equality struct.command_instance_method, nil
63
+ assert_equality struct.command_method, nil
64
+ end
65
+
66
+ test :find do
67
+ klass = subject._find "generate"
68
+ assert_equality DevSystem::GenerateCommand, klass
69
+
70
+ begin
71
+ klass = subject._find "g"
72
+ assert false
73
+ rescue CommandPanel::NotFoundError
74
+ assert true
75
+ end
76
+ end
77
+
78
+ end
@@ -4,9 +4,13 @@ class DevSystem::CommandTest < Liza::ControllerTest
4
4
  assert subject_class == DevSystem::Command
5
5
  end
6
6
 
7
+ test_methods_defined do
8
+ on_self :call, :get_command_signatures
9
+ on_instance :call
10
+ end
11
+
7
12
  test :settings do
8
- assert subject_class.log_level == :normal
9
- assert subject_class.log_color == :green
13
+ assert_equality subject_class.log_level, 0
10
14
  end
11
15
 
12
16
  end
@@ -0,0 +1,48 @@
1
+ class DevSystem::BaseCommand < DevSystem::Command
2
+
3
+ #
4
+
5
+ def self.call(env)
6
+ log :lower, "env.count is #{env.count}"
7
+
8
+ command = env[:command] = new
9
+ command.call env
10
+ end
11
+
12
+ #
13
+
14
+ attr_reader :env
15
+
16
+ def call(env)
17
+ log :lower, "env.count is #{env.count}"
18
+ @env = env
19
+
20
+ method_name = env[:command_arg]
21
+ method_name = method_name.split(":")[1] || :default
22
+ method_name = "call_#{method_name}"
23
+ return public_send method_name if respond_to? method_name
24
+
25
+ log "method not found: #{method_name.inspect}"
26
+ raise NoMethodError, "method not found: #{method_name.inspect}"
27
+ end
28
+
29
+ #
30
+
31
+ def self.get_command_signatures
32
+
33
+ signatures = []
34
+ ancestors_until(BaseCommand).each do |c|
35
+ signatures +=
36
+ c.instance_methods_defined.select do |name|
37
+ name.start_with? "call_"
38
+ end.map do |name|
39
+ OpenStruct.new({
40
+ name: ( name.to_s.sub("call_", "").sub("default", "") ),
41
+ description: "# no description",
42
+ })
43
+ end
44
+ end
45
+ signatures
46
+ end
47
+
48
+ end
@@ -0,0 +1,11 @@
1
+ class DevSystem::BaseCommandTest < DevSystem::CommandTest
2
+
3
+ test :subject_class do
4
+ assert_equality subject_class, DevSystem::BaseCommand
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ end
@@ -1,4 +1,4 @@
1
- class DevSystem::IrbTerminal < DevSystem::Terminal
1
+ class DevSystem::IrbCommand < DevSystem::Command
2
2
 
3
3
  def self.call args
4
4
  log "args = #{args.inspect}"
@@ -11,13 +11,9 @@ class DevSystem::IrbTerminal < DevSystem::Terminal
11
11
  irb = IRB::Irb.new(workspace)
12
12
  IRB.conf[:MAIN_CONTEXT] = irb.context
13
13
 
14
- def irb.signal_status(status)
15
- super
16
- rescue Interrupt
17
- IrbTerminal.log "Control-C"
18
- end
19
-
20
14
  irb.eval_input
15
+ rescue Interrupt
16
+ log "Control-C"
21
17
  end
22
18
 
23
19
  end
@@ -0,0 +1,11 @@
1
+ class DevSystem::IrbCommandTest < DevSystem::CommandTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == DevSystem::IrbCommand
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ end
@@ -0,0 +1,156 @@
1
+ class DevSystem::NotFoundCommand < DevSystem::SimpleCommand
2
+
3
+ def call_default
4
+ h3 "Liza is a light application framework written in Ruby 3.3 ❤", color: DevSystem.color
5
+ h5 "We're optimizing for happiness. Come join us!", color: ColorShell.colors.keys.sample
6
+ puts
7
+
8
+ if App.global?
9
+ print_global
10
+ else
11
+ print_systems
12
+ print_app
13
+ end
14
+ end
15
+
16
+ # color helpers
17
+
18
+ def color klass
19
+ return klass unless klass < Liza::Unit
20
+
21
+ namespace, _sep, classname = klass.to_s.rpartition('::')
22
+
23
+ if namespace.empty?
24
+ return stick classname, Liza.const(classname).system.color
25
+ end
26
+
27
+ "#{
28
+ stick namespace, Liza.const(namespace).system.color
29
+ }::#{
30
+ stick classname, Liza.const(classname).color
31
+ }"
32
+ end
33
+
34
+ # print helpers
35
+
36
+ def print_class klass, description: nil
37
+ loc = klass.to_s
38
+
39
+ sidebar_length = 30
40
+ klass.get_command_signatures.each do |signature|
41
+ signature.name =
42
+ signature.name.empty? \
43
+ ? klass.token.to_s
44
+ : "#{klass.token}:#{signature.name}"
45
+ #
46
+ end.sort_by(&:name).map do |signature|
47
+ puts [
48
+ "liza #{signature.name}".ljust(sidebar_length),
49
+ (description or signature.description)
50
+ ].join ""
51
+ end
52
+ end
53
+
54
+ #
55
+
56
+ def print_systems
57
+ h1 "SYSTEMS"
58
+ AppShell.consts[:systems].each do |system_name, tree_system|
59
+ system = tree_system["system"][0]
60
+
61
+ h4 system
62
+ tree_system["controllers"].each do |family, klasses|
63
+ klasses = tree_system["controllers"][family].to_a.select { _1 < Command }
64
+ next if klasses.empty?
65
+
66
+ h5 "lib/#{system_name}_system/#{family.plural}/", color: system.color
67
+ klasses.each { print_class _1 }
68
+ end
69
+
70
+ print_system_sub system, system_name, tree_system
71
+ end
72
+ puts
73
+ end
74
+
75
+ def print_system_sub system, system_name, tree_system
76
+ tree_system["subsystems"].each do |subsystem, tree_subsystem|
77
+ klasses = tree_subsystem["controllers"].values.flatten.select { _1 < Command }
78
+ next if klasses.empty?
79
+
80
+ tree_subsystem["controllers"].each do |controller_class, klasses|
81
+ klasses = klasses.select { _1 < Command }
82
+ klasses = klasses.reject { _1 <= InputCommand } # TODO: setting to hide command classes
83
+ klasses = klasses.reject { _1 == BaseCommand }
84
+ klasses = klasses.reject { _1 == SimpleCommand }
85
+ klasses = klasses.reject { _1 == NewCommand }
86
+ next if klasses.empty?
87
+
88
+ h5 "lib/#{system_name}_system/sub/#{subsystem.singular}/#{controller_class.plural}/", color: system.color
89
+ klasses.each { print_class _1 }
90
+ end
91
+ end
92
+ end
93
+
94
+ def print_app
95
+ h1 "TEAM CODE AT app/"
96
+
97
+ system_name = "dev"
98
+ tree_system = AppShell.consts[:app]["dev"]
99
+
100
+ system = Liza.const "#{system_name}_system"
101
+ tree_system["controllers"].each do |family, structure|
102
+ structure.each do |division, klasses|
103
+ klasses = klasses.select { _1 < Command }
104
+ if klasses.any?
105
+ h5 "app/#{system_name}/#{division.plural}/", color: system.color
106
+ klasses.each { print_class _1 }
107
+ end
108
+ end
109
+ end
110
+ end
111
+
112
+ def print_global
113
+ klasses = {
114
+ NewCommand => "# Create a new project",
115
+ NotFoundCommand => "# This command",
116
+ }
117
+
118
+ klasses.each { print_class _1, description: _2 }
119
+
120
+ 5.times { puts }
121
+ end
122
+
123
+ # typography helpers
124
+
125
+ def h1 text
126
+ puts stick " #{ text } ".center(80, "="), :b
127
+ end
128
+
129
+ def h2 text, color: :white
130
+ puts stick " #{ text } ".center(80, "-"), :b, color
131
+ end
132
+
133
+ def h3 text, color: :white
134
+ puts
135
+ puts stick " #{ text } ".center(80, " "), :b, color
136
+ end
137
+
138
+ def h4 system
139
+ puts
140
+ s = system.to_s
141
+ s1 = s
142
+ s1 = "#{ color(system) }" if system < Liza::Unit
143
+ color = system.color rescue :white
144
+ t = s.rjust(80, " ")
145
+ t = "#{ stick t, :b, color }"
146
+ t = t.gsub(s, s1)
147
+ puts t
148
+ end
149
+
150
+ def h5 text, color: :white
151
+ puts
152
+ puts stick text.ljust(80, " "), color
153
+ puts
154
+ end
155
+
156
+ end
@@ -0,0 +1,11 @@
1
+ class DevSystem::NotFoundCommandTest < DevSystem::SimpleCommandTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == DevSystem::NotFoundCommand
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ end
@@ -1,9 +1,9 @@
1
- class DevSystem::PryTerminal < DevSystem::Terminal
1
+ class DevSystem::PryCommand < DevSystem::Command
2
2
 
3
3
  def self.call args
4
+ require "pry"
4
5
  log "args = #{args.inspect}"
5
6
 
6
- require "pry"
7
7
  Pry.start
8
8
  end
9
9
 
@@ -0,0 +1,11 @@
1
+ class DevSystem::PryCommandTest < DevSystem::CommandTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == DevSystem::PryCommand
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ end
@@ -0,0 +1,143 @@
1
+ class DevSystem::SimpleCommand < DevSystem::BaseCommand
2
+
3
+ #
4
+
5
+ def call(env)
6
+ env[:simple] = [""]
7
+ super
8
+ end
9
+
10
+ #
11
+
12
+ def log_simple_remember
13
+ log :lower, "env[:remember] is now #{stick system.color, (env[:simple].join " ")}", kaller: caller
14
+ end
15
+
16
+ #
17
+
18
+ # key=value
19
+ def simple_string(key, &block)
20
+ string = env[:args].find { _1.start_with? "#{key}=" }.to_s.sub("#{key}=", "")
21
+ return string unless string.empty?
22
+
23
+ value = yield.to_s.split(" ")[0]
24
+ log :high, value.inspect
25
+
26
+ env[:simple] << "#{key}=#{value}"
27
+
28
+ log_simple_remember
29
+
30
+ value
31
+ end
32
+
33
+ #
34
+
35
+ # key=value
36
+ def simple_color(key, string: "I LOVE RUBY")
37
+ simple_string key do
38
+ TtyInputCommand.pick_color string: string
39
+ end.to_sym.tap do |color|
40
+ log :high, color.inspect
41
+ end
42
+ end
43
+
44
+ #
45
+
46
+ # key=value
47
+ def simple_controller_placement(key, places)
48
+ simple_string key do
49
+ options = places.map do |place, path|
50
+ [
51
+ "#{place.ljust 30} path: #{path}",
52
+ place
53
+ ]
54
+ end.to_h
55
+ TtyInputCommand.pick_one "Where should the controller be placed?", options
56
+ end.tap do |place|
57
+ log :high, place.inspect
58
+ end
59
+ end
60
+
61
+ #
62
+
63
+ # arg0 arg1 arg2
64
+ def simple_args
65
+ env[:args]
66
+ .reject { _1.start_with? "+" }
67
+ .reject { _1.start_with? "-" }
68
+ .reject { _1.include? "=" }
69
+ end
70
+
71
+ # arg0 arg1 arg2
72
+ def simple_arg(index, &block)
73
+ string = env[:args][index]
74
+ return string if string
75
+
76
+ value = yield
77
+ value = "" if value.nil?
78
+ value = value.inspect if value.include? " "
79
+ log :high, value.inspect
80
+
81
+ string = env[:simple][0]
82
+ string << " " unless string.empty?
83
+ string << value
84
+
85
+ log_simple_remember
86
+
87
+ value
88
+ end
89
+
90
+ #
91
+
92
+ # arg0 arg1 arg2
93
+ def simple_arg_ask(index, title)
94
+ simple_arg index do
95
+ TtyInputCommand.prompt.ask(title)
96
+ end
97
+ end
98
+
99
+ #
100
+
101
+ # arg0 arg1 arg2
102
+ def simple_arg_ask_snakecase(index, title)
103
+ simple_arg index do
104
+ TtyInputCommand.prompt.ask(title) do |q|
105
+ q.required true
106
+ q.validate /^[a-zA-Z_]*$/
107
+ end.snakecase
108
+ end
109
+ end
110
+
111
+ #
112
+
113
+ # +key -key
114
+ def simple_boolean_yes(key, title)
115
+ simple_boolean key do
116
+ TtyInputCommand.prompt.yes? title
117
+ end
118
+ end
119
+
120
+ # +key -key
121
+ def simple_boolean_no(key, title)
122
+ simple_boolean key do
123
+ TtyInputCommand.prompt.no? title
124
+ end
125
+ end
126
+
127
+ # +key -key
128
+ def simple_boolean(key, &block)
129
+ return true if env[:args].find { _1 == "+#{key}" }
130
+ return false if env[:args].find { _1 == "-#{key}" }
131
+
132
+ value = yield
133
+ log :high, value.inspect
134
+
135
+ env[:simple] << "+#{key}" if TrueClass === value
136
+ env[:simple] << "-#{key}" if FalseClass === value
137
+
138
+ log_simple_remember
139
+
140
+ value
141
+ end
142
+
143
+ end