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,87 @@
1
+ class DevSystem::EnvGenerator < DevSystem::Generator
2
+
3
+ def self.call args
4
+ log "args = #{args.inspect}"
5
+
6
+ new.call args
7
+ end
8
+
9
+ def call args
10
+ log "args = #{args.inspect}"
11
+
12
+ if app_env_exists?
13
+ log "env files already exist".red.blink
14
+ else
15
+ write_env_files
16
+ end
17
+
18
+ puts
19
+ log "done"
20
+ end
21
+
22
+ private
23
+
24
+ def app_env_exists?
25
+ FileShell.exist? "app.env"
26
+ end
27
+
28
+ def write_env_files
29
+ # app
30
+ @env_name = nil
31
+ content = render :env, format: :env
32
+ puts "-" * 80
33
+ puts content.green
34
+ TextShell.write "app.env", content
35
+
36
+ # app.code
37
+ @env_name = :code
38
+ content = render :env, format: :env
39
+ puts "-" * 80
40
+ puts content.green
41
+ TextShell.write "app.code.env", content
42
+
43
+ # app.demo
44
+ @env_name = :demo
45
+ content = render :env, format: :env
46
+ puts "-" * 80
47
+ puts content.green
48
+ TextShell.write "app.demo.env", content
49
+ end
50
+
51
+ end
52
+
53
+ __END__
54
+
55
+ # view env.env.erb
56
+ #
57
+ <%= render :"#{@env_name || :blank}", format: :env -%>
58
+ #
59
+
60
+ # app variables
61
+
62
+
63
+
64
+ <% App.systems.keys.each do |k| -%>
65
+ # <%= k %> variables
66
+
67
+
68
+
69
+ <% end -%>
70
+
71
+ # view code.env.erb
72
+ # ENV VARIABLES FOR MODE=code (default)
73
+ #
74
+ # MODE=code lizarb commands
75
+ # lizarb commands
76
+
77
+ # view demo.env.erb
78
+ # ENV VARIABLES FOR MODE=demo
79
+ #
80
+ # MODE=demo lizarb commands
81
+
82
+ # view blank.env.erb
83
+ # ENV VARIABLES FOR ALL MODES
84
+ #
85
+ # MODE=code lizarb commands
86
+ # MODE=demo lizarb commands
87
+ # lizarb commands
@@ -0,0 +1,11 @@
1
+ class DevSystem::EnvGeneratorTest < DevSystem::GeneratorTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == DevSystem::EnvGenerator
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ end
@@ -0,0 +1,47 @@
1
+ class DevSystem::GemfileGenerator < DevSystem::SimpleGenerator
2
+
3
+ # liza g gemfile
4
+
5
+ def call_default
6
+ @gemspec_name = get_gemspec_name
7
+
8
+ create_file "Gemfile", :gemfile, :rb
9
+ end
10
+
11
+ def get_gemspec_name
12
+ ls = Dir["*.gemspec"]
13
+ ls.first.split(".").first if ls.any?
14
+ end
15
+
16
+ end
17
+
18
+ __END__
19
+
20
+ # view gemfile.rb.erb
21
+
22
+ # frozen_string_literal: true
23
+
24
+ source "https://rubygems.org"
25
+ <% if @gemspec_name -%>
26
+
27
+ # Specify your gem's dependencies in <%= @gemspec_name %>.gemspec
28
+ # gemspec path: "../path/to/<%= @gemspec_name %>"
29
+ gemspec :<%= @gemspec_name %>
30
+ <% end -%>
31
+
32
+ group :default do
33
+ gem "lizarb", "~> <%= Lizarb::VERSION %>"
34
+ # gem "lizarb", github: "lizarb/lizarb"
35
+ # gem "lizarb", path: "../lizarb"
36
+ end
37
+
38
+ group :dev do
39
+ # gems you only want to load if DevSystem is loaded
40
+
41
+ # Shell
42
+ # gem "htmlbeautifier", "~> 1.4"
43
+ # gem "commonmarker", "~> 0.23.9"
44
+ # gem "haml", "~> 6.1"
45
+ # gem "sassc", "~> 2.4"
46
+ # gem "coffee-script", "~> 2.4"
47
+ end
@@ -0,0 +1,11 @@
1
+ class DevSystem::GemfileGeneratorTest < DevSystem::GeneratorTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == DevSystem::GemfileGenerator
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ end
@@ -0,0 +1,70 @@
1
+ class DevSystem::SystemGenerator < DevSystem::SimpleGenerator
2
+
3
+ # liza g system name color=coral
4
+
5
+ def call_default
6
+ @name = command.simple_arg_ask_snakecase 0, "What is the name of the system you want to generate?"
7
+ log "@name = #{@name}"
8
+
9
+ @color = command.simple_color :color, string: "#{@name.camelize}System"
10
+ log "@color = #{@color}"
11
+
12
+ append_system_to_app
13
+ create_system
14
+ create_box
15
+ end
16
+
17
+ private
18
+
19
+ def append_system_to_app
20
+ file = TextFileShell.new App.filename
21
+
22
+ lines = LineShell.extract_wall_of file.old_lines, " system :"
23
+ lines << " system :#{@name}\n"
24
+ file.new_lines = LineShell.replace_wall_of file.old_lines, " system :", lines
25
+
26
+ add_change file
27
+ end
28
+
29
+ def create_system
30
+ unit = UnitHelper.new
31
+ classes = ["#{@name.camelize}System", "Liza::System"]
32
+ path = App.root.join("lib/#{@name.snakecase}_system.rb")
33
+
34
+ create_unit unit, classes, path, :system
35
+ end
36
+
37
+ def create_box
38
+ unit, test = UnitHelper.new, UnitHelper.new
39
+ unit_classes = ["#{@name.camelize}System::#{@name.camelize}Box", "Liza::Box"]
40
+ test_classes = ["#{@name.camelize}System::#{@name.camelize}BoxTest", "Liza::BoxTest"]
41
+ unit_path = App.root.join("lib/#{@name.snakecase}_system/#{@name.snakecase}_box.rb")
42
+ test_path = App.root.join("lib/#{@name.snakecase}_system/#{@name.snakecase}_box_test.rb")
43
+
44
+ @class_name = unit_classes[0]
45
+ test.section :box_test_section_1, caption: ""
46
+
47
+ create_unit unit, unit_classes, unit_path, :unit
48
+ create_unit test, test_classes, test_path, :unit
49
+ end
50
+
51
+ end
52
+
53
+ __END__
54
+
55
+ # view system.rb.erb
56
+ class <%= @class_names[0] %> < <%= @class_names[1] %>
57
+ class Error < Liza::Error; end
58
+
59
+ #
60
+
61
+ color :<%= @color %>
62
+
63
+ end
64
+
65
+ # view box_test_section_1.rb.erb
66
+
67
+ test :subject_class, :subject do
68
+ assert_equality <%= @class_name %>, subject_class
69
+ assert_equality <%= @class_name %>, subject.class
70
+ end
@@ -0,0 +1,11 @@
1
+ class DevSystem::SystemGeneratorTest < DevSystem::SimpleGeneratorTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == DevSystem::SystemGenerator
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ end
@@ -0,0 +1,7 @@
1
+ class DevSystem::Bench < Liza::Controller
2
+
3
+ #
4
+
5
+ set :plural, :benches
6
+
7
+ end
@@ -4,9 +4,13 @@ class DevSystem::BenchPanelTest < Liza::PanelTest
4
4
  assert subject_class == DevSystem::BenchPanel
5
5
  end
6
6
 
7
+ test_methods_defined do
8
+ on_self
9
+ on_instance
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,24 @@
1
+ class DevSystem::BenchTest < Liza::ControllerTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == DevSystem::Bench
5
+ end
6
+
7
+ test_methods_defined do
8
+ on_self
9
+ on_instance
10
+ end
11
+
12
+ test :settings do
13
+ assert_equality subject_class.log_level, 0
14
+
15
+ assert_equality subject_class.token, nil
16
+ assert_equality subject_class.singular, :bench
17
+ assert_equality subject_class.plural, :benches
18
+
19
+ assert_equality subject_class.system, DevSystem
20
+ assert_equality subject_class.subsystem, DevSystem::Bench
21
+ assert_equality subject_class.division, DevSystem::Bench
22
+ end
23
+
24
+ end
@@ -0,0 +1,33 @@
1
+ class DevSystem::NotFoundBench < DevSystem::Bench
2
+
3
+ def self.call args
4
+ # 1. LOG
5
+
6
+ log "args = #{args.inspect}"
7
+ puts
8
+
9
+ # 2. FIND generators
10
+
11
+ benches = Liza::Bench.descendants
12
+ benches -= ignored_benches
13
+
14
+ # 3. LIST benches
15
+
16
+ keys = benches.map { _1.last_namespace.snakecase[0..-7] }.uniq.sort
17
+
18
+ log "This app has #{keys.count} benches you can use."
19
+ log "Here they are:"
20
+ puts
21
+
22
+ keys.each { |s| log "liza bench #{s}" }
23
+ end
24
+
25
+ def self.ignored_benches
26
+ [
27
+ self,
28
+ DevSystem::NotFoundBench,
29
+ (DevSystem::SortedBench if defined? SortedBench),
30
+ ].uniq.compact
31
+ end
32
+
33
+ end
@@ -5,8 +5,7 @@ class DevSystem::NotFoundBenchTest < DevSystem::BenchTest
5
5
  end
6
6
 
7
7
  test :settings do
8
- assert subject_class.log_level == :normal
9
- assert subject_class.log_color == :green
8
+ assert_equality subject_class.log_level, 0
10
9
  end
11
10
 
12
11
  end
@@ -3,12 +3,11 @@ class DevSystem::BenchCommand < DevSystem::Command
3
3
  def self.call args
4
4
  # 1. LOG
5
5
 
6
- log :higher, "args: #{args}"
7
- puts
6
+ log "args = #{args.inspect}"
8
7
 
9
8
  # 2. FIND bench
10
9
 
11
- return call_not_found args if args.none?
10
+ return NotFoundBench.call args if args.none?
12
11
 
13
12
  bench = args[0]
14
13
 
@@ -25,8 +24,4 @@ class DevSystem::BenchCommand < DevSystem::Command
25
24
  bench_klass.call args[1..-1]
26
25
  end
27
26
 
28
- def self.call_not_found args
29
- Liza::NotFoundBench.call args
30
- end
31
-
32
27
  end
@@ -5,8 +5,7 @@ class DevSystem::BenchCommandTest < DevSystem::CommandTest
5
5
  end
6
6
 
7
7
  test :settings do
8
- assert subject_class.log_level == :normal
9
- assert subject_class.log_color == :green
8
+ assert_equality subject_class.log_level, 0
10
9
  end
11
10
 
12
11
  end
@@ -0,0 +1,70 @@
1
+ class DevSystem::BenchGenerator < DevSystem::SimpleGenerator
2
+
3
+ # liza g bench name place=app +sorted
4
+
5
+ def call_default
6
+ @controller_class = Bench
7
+
8
+ name!
9
+ place!
10
+
11
+ @args = Array command.simple_args[1..-1]
12
+ ancestor = @controller_class
13
+
14
+ # THIS IS A HACK! WILL BE FIXED SOON!
15
+ if File.exist? "app/dev/benches/sorted_bench.rb"
16
+ @sorted = command.simple_boolean_yes :sorted, "Use SortedBench?"
17
+ log "@sorted = #{@sorted.inspect}"
18
+ ancestor = "SortedBench" if @sorted
19
+ end
20
+
21
+ create_controller @name, @controller_class, @place, @path, ancestor: ancestor do |unit, test|
22
+ unit.section :controller_section_1, caption: "liza bench #{ @name }"
23
+ test.section :controller_test_section_1
24
+ end
25
+ end
26
+
27
+ # liza g bench:examples
28
+
29
+ def call_examples
30
+ copy_examples Bench
31
+ end
32
+
33
+ end
34
+
35
+ __END__
36
+
37
+ # view controller_section_1.rb.erb
38
+
39
+ repetitions 1_000_000
40
+ # repetitions 10_000_000
41
+ # repetitions 100_000_000
42
+
43
+ setup do
44
+ log "repetitions: #{repetitions}"
45
+ end
46
+
47
+ #
48
+
49
+ <% if @args.any? -%>
50
+ <% @args.each do |arg| -%>
51
+ mark "<%= arg %>" do
52
+ a = 1.to_s.to_sym
53
+ end
54
+
55
+ <% end -%>
56
+ <% else -%>
57
+ mark "alternative 1" do
58
+ a = "1".to_sym
59
+ end
60
+
61
+ mark "alternative 2" do
62
+ a = :"1"
63
+ end
64
+ <% end -%>
65
+ # view controller_test_section_1.rb.erb
66
+
67
+ test :subject_class, :subject do
68
+ assert_equality <%= @class_name %>, subject_class
69
+ assert_equality <%= @class_name %>, subject.class
70
+ end
@@ -0,0 +1,10 @@
1
+ class DevSystem::BenchGeneratorTest < DevSystem::SimpleGeneratorTest
2
+
3
+ #
4
+
5
+ test :subject do
6
+ assert_equality DevSystem::BenchGenerator, subject_class
7
+ assert_equality DevSystem::BenchGenerator, subject.class
8
+ end
9
+
10
+ end
@@ -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