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
@@ -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,7 +1,7 @@
1
- class DevSystem::IrbTerminal < DevSystem::Terminal
1
+ class DevSystem::IrbCommand < DevSystem::Command
2
2
 
3
3
  def self.call args
4
- log :higher, "Called #{self}.#{__method__} with args #{args}"
4
+ log "args = #{args.inspect}"
5
5
 
6
6
  # https://github.com/ruby/ruby/blob/master/lib/irb.rb
7
7
  require "irb"
@@ -12,6 +12,8 @@ class DevSystem::IrbTerminal < DevSystem::Terminal
12
12
  IRB.conf[:MAIN_CONTEXT] = irb.context
13
13
 
14
14
  irb.eval_input
15
+ rescue Interrupt
16
+ log "Control-C"
15
17
  end
16
18
 
17
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
@@ -0,0 +1,10 @@
1
+ class DevSystem::PryCommand < DevSystem::Command
2
+
3
+ def self.call args
4
+ require "pry"
5
+ log "args = #{args.inspect}"
6
+
7
+ Pry.start
8
+ end
9
+
10
+ end
@@ -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
@@ -0,0 +1,11 @@
1
+ class DevSystem::SimpleCommandTest < DevSystem::BaseCommandTest
2
+
3
+ test :subject_class do
4
+ assert_equality subject_class, DevSystem::SimpleCommand
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ end
@@ -0,0 +1,90 @@
1
+ class DevSystem::CommandGenerator < DevSystem::SimpleGenerator
2
+
3
+ # liza g command name place=app
4
+
5
+ def call_default
6
+ call_simple
7
+ end
8
+
9
+ # liza g command:simple name place=app
10
+
11
+ def call_simple
12
+ @controller_class = Command
13
+
14
+ name!
15
+ place!
16
+ @args = Array command.simple_args[1..-1]
17
+
18
+ ancestor = SimpleCommand
19
+ create_controller @name, @controller_class, @place, @path, ancestor: ancestor do |unit, test|
20
+ unit.section :controller_section_1,
21
+ caption: "liza #{ @name }",
22
+ method_name: "default"
23
+
24
+ @args.each.with_index do |arg, i|
25
+ unit.section :controller_section_1,
26
+ caption: "liza #{ @name }:#{ arg }",
27
+ method_name: arg
28
+ end
29
+
30
+ test.section :controller_test_section_1
31
+ end
32
+ end
33
+
34
+ # liza g command:base name place=app
35
+
36
+ def call_base
37
+ @controller_class = Command
38
+
39
+ name!
40
+ place!
41
+ @args = Array command.simple_args[1..-1]
42
+
43
+ ancestor = BaseCommand
44
+ create_controller @name, @controller_class, @place, @path, ancestor: ancestor do |unit, test|
45
+ unit.section :base_command_section_1,
46
+ caption: "liza #{ @name }"
47
+
48
+ test.section :controller_test_section_1
49
+ end
50
+ end
51
+
52
+ # liza g command:examples
53
+
54
+ def call_examples
55
+ copy_examples Command
56
+ end
57
+
58
+ end
59
+
60
+ __END__
61
+
62
+ # view controller_section_1.rb.erb
63
+
64
+ def call_<%= @current_section[:method_name] %>
65
+ args = env[:args]
66
+ log :lower, "args is #{ args.inspect }"
67
+ log "simple_args is #{ simple_args.inspect }"
68
+
69
+ log stick :b, :<%= ColorShell.colors.keys.sample %>, "I just think Ruby is the Best for coding!"
70
+
71
+ log "done at #{ Time.now }"
72
+ end
73
+
74
+ # view base_command_section_1.rb.erb
75
+
76
+ def self.call(env)
77
+ args = env[:args]
78
+ log :lower, "args is #{ args.inspect }"
79
+
80
+ log stick :b, :<%= ColorShell.colors.keys.sample %>, "I just think Ruby is the Best for coding!"
81
+
82
+ log "done at #{ Time.now }"
83
+ end
84
+
85
+ # view controller_test_section_1.rb.erb
86
+
87
+ test :subject_class, :subject do
88
+ assert_equality <%= @class_name %>, subject_class
89
+ assert_equality <%= @class_name %>, subject.class
90
+ end
@@ -0,0 +1,11 @@
1
+ class DevSystem::CommandGeneratorTest < DevSystem::SimpleGeneratorTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == DevSystem::CommandGenerator
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ end
@@ -0,0 +1,17 @@
1
+ class DevSystem::HighlineInputCommand < DevSystem::InputCommand
2
+
3
+ def self.highline
4
+ require "highline"
5
+ @highline ||= HighLine.new
6
+ end
7
+
8
+ def self.pick_one title, options = ["Yes", "No"]
9
+ highline.choose do |menu|
10
+ menu.prompt = title
11
+ options.each do |option|
12
+ menu.choice option
13
+ end
14
+ end
15
+ end
16
+
17
+ end
@@ -0,0 +1,19 @@
1
+ class DevSystem::HighlineInputCommandTest < DevSystem::InputCommandTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == DevSystem::HighlineInputCommand
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+
10
+ assert_equality subject_class.token, :highline
11
+ assert_equality subject_class.singular, :highline_input_command
12
+ assert_equality subject_class.plural, :highline_input_commands
13
+
14
+ assert_equality subject_class.system, DevSystem
15
+ assert_equality subject_class.subsystem, DevSystem::Command
16
+ assert_equality subject_class.division, DevSystem::InputCommand
17
+ end
18
+
19
+ end
@@ -0,0 +1,20 @@
1
+ class DevSystem::InputCommand < DevSystem::Command
2
+
3
+ #
4
+
5
+ division!
6
+
7
+ #
8
+
9
+ def self.call args
10
+ log "args = #{args.inspect}"
11
+ end
12
+
13
+ def self.pick_one title, options = ["Yes", "No"]
14
+ log "#{title} #{options.inspect}"
15
+
16
+ s = Kernel.gets.chomp.downcase
17
+ options.find { _1.downcase.start_with? s } || options.first
18
+ end
19
+
20
+ end