lizarb 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +34 -7
  3. data/Gemfile.lock +176 -14
  4. data/README.md +53 -9
  5. data/app/dev/commands/color_command.rb +29 -0
  6. data/app/dev/commands/color_command_test.rb +10 -0
  7. data/app/dev/commands/stick_command.rb +102 -0
  8. data/app/dev/commands/stick_command_test.rb +19 -0
  9. data/app/dev_box.rb +49 -17
  10. data/app/happy_box.rb +3 -2
  11. data/app/net/databases/redis_db.rb +1 -1
  12. data/app/net/databases/redis_db_test.rb +5 -5
  13. data/app/net/databases/sqlite_db.rb +1 -1
  14. data/app/net/databases/sqlite_db_test.rb +5 -5
  15. data/app/net/records/app_record.rb +1 -1
  16. data/app/net/records/app_record_test.rb +1 -1
  17. data/app/net/records/post_record_test.rb +1 -1
  18. data/app/net/records/user_record_test.rb +1 -1
  19. data/app/net_box.rb +29 -6
  20. data/app/web/requests/app_request.rb +1 -1
  21. data/app/web/requests/app_request_test.rb +1 -1
  22. data/app/web/requests/foo_request.rb +26 -0
  23. data/app/web/requests/foo_request_test.rb +7 -0
  24. data/app/web_box.rb +16 -8
  25. data/app.rb +38 -6
  26. data/app_global.gemfile.rb +1 -1
  27. data/app_global.gemfile.rb.lock +25 -3
  28. data/app_global.rb +1 -0
  29. data/{app_new → examples/bench/app}/dev/benches/loops_bench.rb +10 -3
  30. data/{app_new → examples/bench/app}/dev/benches/loops_bench_test.rb +1 -2
  31. data/examples/bench/app/dev/benches/objects_bench.rb +48 -0
  32. data/{app_new → examples/bench/app}/dev/benches/objects_bench_test.rb +1 -2
  33. data/{app_new → examples/bench/app}/dev/benches/sorted_bench.rb +28 -8
  34. data/examples/bench/app/dev/benches/sorted_bench_test.rb +11 -0
  35. data/{app_new → examples/bench/app}/dev/benches/variables_bench.rb +8 -2
  36. data/{app_new → examples/bench/app}/dev/benches/variables_bench_test.rb +1 -2
  37. data/examples/client/app/net/clients/news_client.rb +42 -0
  38. data/examples/client/app/net/clients/news_client_test.rb +24 -0
  39. data/{app_new → examples/command/app}/dev/commands/calculator_command.rb +1 -1
  40. data/{app_new → examples/command/app}/dev/commands/calculator_command_test.rb +1 -2
  41. data/{app_new → examples/command/app}/dev/commands/circle_command.rb +1 -1
  42. data/{app_new → examples/command/app}/dev/commands/circle_command_test.rb +1 -2
  43. data/{app_new → examples/command/app}/dev/commands/narrative_method_command.rb +3 -3
  44. data/{app_new → examples/command/app}/dev/commands/narrative_method_command_test.rb +2 -3
  45. data/{app_new → examples/command/app}/dev/commands/quadratic_command.rb +1 -1
  46. data/{app_new → examples/command/app}/dev/commands/quadratic_command_test.rb +1 -2
  47. data/examples/command/app/dev_box.rb +3 -0
  48. data/examples/log/app/dev/logs/logger_log.rb +8 -0
  49. data/examples/log/app/dev/logs/logger_log_test.rb +16 -0
  50. data/examples/new/app/dev_box.rb +67 -0
  51. data/examples/new/app.rb +41 -0
  52. data/examples/shell/app/dev/shells/bash_adapter_shell.rb +25 -0
  53. data/examples/shell/app/dev/shells/bash_adapter_shell_test.rb +23 -0
  54. data/examples/shell/app/dev/shells/business_logic_shell.rb +42 -0
  55. data/examples/shell/app/dev/shells/business_logic_shell_test.rb +39 -0
  56. data/examples/shell/app/dev/shells/gem_adapter_shell.rb +33 -0
  57. data/examples/shell/app/dev/shells/gem_adapter_shell_test.rb +23 -0
  58. data/exe/liza +6 -1
  59. data/exe/lizarb +1 -1
  60. data/lib/app.rb +71 -74
  61. data/lib/art_system/art_box.rb +5 -0
  62. data/lib/art_system/art_box_test.rb +8 -0
  63. data/lib/art_system.rb +8 -0
  64. data/lib/crypto_system/crypto_box.rb +5 -0
  65. data/lib/crypto_system/crypto_box_test.rb +8 -0
  66. data/lib/crypto_system.rb +8 -0
  67. data/lib/deep_system/deep_box.rb +5 -0
  68. data/lib/deep_system/deep_box_test.rb +8 -0
  69. data/lib/deep_system.rb +8 -0
  70. data/lib/desk_system/commands/glimmer_command.rb +26 -0
  71. data/lib/desk_system/commands/glimmer_command_test.rb +10 -0
  72. data/lib/desk_system/desk_box.rb +5 -0
  73. data/lib/desk_system/desk_box_test.rb +8 -0
  74. data/lib/desk_system.rb +8 -0
  75. data/lib/dev_system/{dev/controllers/command → commands}/test_command.rb +32 -4
  76. data/lib/dev_system/{dev/controllers/command → commands}/test_command_test.rb +1 -2
  77. data/lib/dev_system/dev_box.rb +79 -0
  78. data/lib/dev_system/dev_box_test.rb +33 -0
  79. data/lib/dev_system/generators/env_generator.rb +87 -0
  80. data/lib/dev_system/generators/env_generator_test.rb +11 -0
  81. data/lib/dev_system/generators/gemfile_generator.rb +47 -0
  82. data/lib/dev_system/generators/gemfile_generator_test.rb +11 -0
  83. data/lib/dev_system/generators/system_generator.rb +70 -0
  84. data/lib/dev_system/generators/system_generator_test.rb +11 -0
  85. data/lib/dev_system/{dev/controllers → sub/bench}/bench.rb +4 -0
  86. data/lib/dev_system/{dev/panels → sub/bench}/bench_panel_test.rb +6 -2
  87. data/lib/dev_system/sub/bench/bench_test.rb +24 -0
  88. data/lib/dev_system/{dev/controllers/bench → sub/bench/benches}/not_found_bench.rb +1 -2
  89. data/lib/dev_system/{dev/controllers/bench → sub/bench/benches}/not_found_bench_test.rb +1 -2
  90. data/lib/dev_system/{dev/controllers/command → sub/bench/commands}/bench_command.rb +1 -5
  91. data/lib/dev_system/{dev/controllers/command → sub/bench/commands}/bench_command_test.rb +1 -2
  92. data/lib/dev_system/sub/bench/generators/bench_generator.rb +70 -0
  93. data/lib/dev_system/sub/bench/generators/bench_generator_test.rb +10 -0
  94. data/lib/dev_system/sub/command/command.rb +28 -0
  95. data/lib/dev_system/sub/command/command_panel.rb +151 -0
  96. data/lib/dev_system/sub/command/command_panel_test.rb +78 -0
  97. data/lib/dev_system/{dev/controllers → sub/command}/command_test.rb +6 -2
  98. data/lib/dev_system/sub/command/commands/base_command.rb +48 -0
  99. data/lib/dev_system/sub/command/commands/base_command_test.rb +11 -0
  100. data/lib/dev_system/{dev/controllers/terminal/irb_terminal.rb → sub/command/commands/irb_command.rb} +3 -7
  101. data/lib/dev_system/sub/command/commands/irb_command_test.rb +11 -0
  102. data/lib/dev_system/sub/command/commands/not_found_command.rb +156 -0
  103. data/lib/dev_system/sub/command/commands/not_found_command_test.rb +11 -0
  104. data/lib/dev_system/{dev/controllers/terminal/pry_terminal.rb → sub/command/commands/pry_command.rb} +2 -2
  105. data/lib/dev_system/sub/command/commands/pry_command_test.rb +11 -0
  106. data/lib/dev_system/sub/command/commands/simple_command.rb +143 -0
  107. data/lib/dev_system/sub/command/commands/simple_command_test.rb +11 -0
  108. data/lib/dev_system/sub/command/generators/command_generator.rb +90 -0
  109. data/lib/dev_system/sub/command/generators/command_generator_test.rb +11 -0
  110. data/lib/dev_system/sub/command/input_commands/highline_input_command.rb +17 -0
  111. data/lib/dev_system/sub/command/input_commands/highline_input_command_test.rb +19 -0
  112. data/lib/dev_system/sub/command/input_commands/input_command.rb +20 -0
  113. data/lib/dev_system/sub/command/input_commands/input_command_test.rb +19 -0
  114. data/lib/dev_system/sub/command/input_commands/tty_input_command.rb +55 -0
  115. data/lib/dev_system/sub/command/input_commands/tty_input_command_test.rb +19 -0
  116. data/lib/dev_system/sub/generator/commands/generate_command.rb +9 -0
  117. data/lib/dev_system/sub/generator/commands/generate_command_test.rb +11 -0
  118. data/lib/dev_system/sub/generator/commands/new_command.rb +10 -0
  119. data/lib/dev_system/{dev/controllers/command → sub/generator/commands}/new_command_test.rb +1 -1
  120. data/lib/dev_system/sub/generator/generator.rb +19 -0
  121. data/lib/dev_system/sub/generator/generator_panel.rb +98 -0
  122. data/lib/dev_system/sub/generator/generator_panel_test.rb +79 -0
  123. data/lib/dev_system/{dev/controllers → sub/generator}/generator_test.rb +6 -2
  124. data/lib/dev_system/sub/generator/generators/base_generator.rb +64 -0
  125. data/lib/dev_system/sub/generator/generators/base_generator_test.rb +11 -0
  126. data/lib/dev_system/sub/generator/generators/generator_generator.rb +71 -0
  127. data/lib/dev_system/sub/generator/generators/generator_generator_test.rb +11 -0
  128. data/lib/dev_system/sub/generator/generators/new_generator.rb +74 -0
  129. data/lib/dev_system/sub/generator/generators/new_generator_test.rb +11 -0
  130. data/lib/dev_system/sub/generator/generators/not_found_generator.rb +155 -0
  131. data/lib/dev_system/sub/generator/generators/not_found_generator_test.rb +11 -0
  132. data/lib/dev_system/sub/generator/generators/simple_generator.rb +257 -0
  133. data/lib/dev_system/sub/generator/generators/simple_generator_test.rb +38 -0
  134. data/lib/dev_system/sub/log/commands/log_command.rb +11 -0
  135. data/lib/dev_system/sub/log/commands/log_command_test.rb +11 -0
  136. data/lib/dev_system/sub/log/generators/log_generator.rb +54 -0
  137. data/lib/dev_system/sub/log/generators/log_generator_test.rb +10 -0
  138. data/lib/dev_system/sub/log/log_panel.rb +47 -0
  139. data/lib/dev_system/sub/log/log_panel_test.rb +50 -0
  140. data/lib/dev_system/{dev/controllers → sub/log}/log_test.rb +6 -2
  141. data/lib/dev_system/sub/log/logs/output_log.rb +74 -0
  142. data/lib/dev_system/sub/log/logs/output_log_test.rb +47 -0
  143. data/lib/dev_system/sub/log/logs/stick_log.rb +79 -0
  144. data/lib/dev_system/sub/log/logs/stick_log_test.rb +88 -0
  145. data/lib/dev_system/sub/shell/commands/convert_command.rb +27 -0
  146. data/lib/dev_system/sub/shell/commands/convert_command_test.rb +10 -0
  147. data/lib/dev_system/sub/shell/commands/format_command.rb +25 -0
  148. data/lib/dev_system/sub/shell/commands/format_command_test.rb +10 -0
  149. data/lib/dev_system/sub/shell/commands/loc_command.rb +211 -0
  150. data/lib/dev_system/sub/shell/commands/loc_command_test.rb +10 -0
  151. data/lib/dev_system/sub/shell/commands/shell_command.rb +45 -0
  152. data/lib/dev_system/sub/shell/commands/shell_command_test.rb +11 -0
  153. data/lib/dev_system/sub/shell/converter_shells/coffee_converter_shell.rb +21 -0
  154. data/lib/dev_system/sub/shell/converter_shells/coffee_converter_shell_test.rb +41 -0
  155. data/lib/dev_system/sub/shell/converter_shells/converter_shell.rb +13 -0
  156. data/lib/dev_system/sub/shell/converter_shells/converter_shell_test.rb +19 -0
  157. data/lib/dev_system/sub/shell/converter_shells/haml_converter_shell.rb +30 -0
  158. data/lib/dev_system/sub/shell/converter_shells/haml_converter_shell_test.rb +34 -0
  159. data/lib/dev_system/sub/shell/converter_shells/md_converter_shell.rb +21 -0
  160. data/lib/dev_system/sub/shell/converter_shells/md_converter_shell_test.rb +38 -0
  161. data/lib/dev_system/sub/shell/converter_shells/scss_converter_shell.rb +59 -0
  162. data/lib/dev_system/sub/shell/converter_shells/scss_converter_shell_test.rb +59 -0
  163. data/lib/dev_system/sub/shell/formatter_shells/formatter_shell.rb +13 -0
  164. data/lib/dev_system/sub/shell/formatter_shells/formatter_shell_test.rb +19 -0
  165. data/lib/dev_system/sub/shell/formatter_shells/html_formatter_shell.rb +20 -0
  166. data/lib/dev_system/sub/shell/formatter_shells/html_formatter_shell_test.rb +51 -0
  167. data/lib/dev_system/sub/shell/generators/shell_generator.rb +68 -0
  168. data/lib/dev_system/sub/shell/generators/shell_generator_test.rb +10 -0
  169. data/lib/dev_system/{dev/controllers → sub/shell}/shell.rb +2 -2
  170. data/lib/dev_system/sub/shell/shell_panel.rb +98 -0
  171. data/lib/dev_system/sub/shell/shell_panel_test.rb +18 -0
  172. data/lib/dev_system/{dev/controllers → sub/shell}/shell_test.rb +9 -5
  173. data/lib/dev_system/sub/shell/shells/app_shell.rb +185 -0
  174. data/lib/dev_system/sub/shell/shells/app_shell_test.rb +26 -0
  175. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/bin_shell_test.rb +1 -2
  176. data/lib/dev_system/sub/shell/shells/color_shell.rb +389 -0
  177. data/lib/dev_system/sub/shell/shells/color_shell_test.rb +27 -0
  178. data/lib/dev_system/sub/shell/shells/controller_shell.rb +20 -0
  179. data/lib/dev_system/sub/shell/shells/controller_shell_test.rb +16 -0
  180. data/lib/dev_system/sub/shell/shells/dir_shell.rb +27 -0
  181. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/dir_shell_test.rb +1 -5
  182. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/file_shell.rb +4 -4
  183. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/file_shell_test.rb +1 -2
  184. data/lib/dev_system/sub/shell/shells/gem_shell.rb +21 -0
  185. data/lib/dev_system/sub/shell/shells/gem_shell_test.rb +28 -0
  186. data/lib/dev_system/sub/shell/shells/kernel_shell.rb +22 -0
  187. data/lib/dev_system/sub/shell/shells/kernel_shell_test.rb +10 -0
  188. data/lib/dev_system/sub/shell/shells/line_diff_shell.rb +26 -0
  189. data/lib/dev_system/sub/shell/shells/line_diff_shell_test.rb +11 -0
  190. data/lib/dev_system/sub/shell/shells/line_shell.rb +56 -0
  191. data/lib/dev_system/sub/shell/shells/line_shell_test.rb +70 -0
  192. data/lib/dev_system/sub/shell/shells/method_shell.rb +52 -0
  193. data/lib/dev_system/sub/shell/shells/method_shell_test.rb +34 -0
  194. data/lib/dev_system/sub/shell/shells/text_file_shell.rb +14 -0
  195. data/lib/dev_system/sub/shell/shells/text_file_shell_test.rb +11 -0
  196. data/lib/dev_system/sub/shell/shells/text_shell.rb +65 -0
  197. data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/text_shell_test.rb +1 -2
  198. data/lib/dev_system.rb +8 -2
  199. data/lib/happy_system/happy_box.rb +9 -0
  200. data/lib/happy_system/happy_box_test.rb +24 -0
  201. data/lib/happy_system/sub/axo/axo.rb +10 -0
  202. data/lib/happy_system/sub/axo/axo_panel.rb +9 -0
  203. data/lib/happy_system/sub/axo/axo_panel_test.rb +16 -0
  204. data/lib/happy_system/sub/axo/axo_test.rb +16 -0
  205. data/lib/happy_system/sub/axo/commands/axo_command.rb +40 -0
  206. data/lib/happy_system/sub/axo/commands/axo_command_test.rb +8 -0
  207. data/lib/happy_system/sub/axo/generators/axo_generator.rb +79 -0
  208. data/lib/happy_system/sub/axo/generators/axo_generator_test.rb +11 -0
  209. data/lib/happy_system.rb +4 -2
  210. data/lib/lab_system/clients/kroki_client.rb +134 -0
  211. data/lib/lab_system/clients/kroki_client_test.rb +32 -0
  212. data/lib/lab_system/clients/liza_kroki_client.rb +176 -0
  213. data/lib/lab_system/clients/liza_kroki_client_test.rb +32 -0
  214. data/lib/lab_system/commands/docker_command.rb +61 -0
  215. data/lib/lab_system/commands/docker_command_test.rb +11 -0
  216. data/lib/lab_system/lab_box.rb +5 -0
  217. data/lib/lab_system/lab_box_test.rb +8 -0
  218. data/lib/lab_system/requests/kroki_request.rb +182 -0
  219. data/lib/lab_system/requests/kroki_request_test.rb +11 -0
  220. data/lib/lab_system/shells/docker_shell.rb +60 -0
  221. data/lib/lab_system/shells/docker_shell_test.rb +61 -0
  222. data/lib/lab_system/shells/kroki_docker_shell.rb +20 -0
  223. data/lib/lab_system/shells/kroki_docker_shell_test.rb +11 -0
  224. data/lib/lab_system.rb +8 -0
  225. data/lib/liza/base/controller.rb +14 -15
  226. data/lib/liza/base/controller_test.rb +28 -2
  227. data/lib/liza/base/panel.rb +48 -6
  228. data/lib/liza/base/panel_test.rb +141 -2
  229. data/lib/liza/base_parts/controller_subsystem_part.rb +93 -0
  230. data/lib/liza/base_parts/panel_rescuer_part.rb +129 -0
  231. data/lib/liza/meta/box.rb +24 -0
  232. data/lib/liza/meta/box_test.rb +20 -0
  233. data/lib/liza/meta/part_test.rb +6 -1
  234. data/lib/liza/meta/system.rb +50 -7
  235. data/lib/liza/meta/system_test.rb +6 -2
  236. data/lib/liza/ruby_tests/app_test.rb +39 -0
  237. data/lib/liza/ruby_tests/class_test.rb +20 -0
  238. data/lib/liza/ruby_tests/module_test.rb +4 -4
  239. data/lib/liza/{ruby_test.rb → ruby_tests/object_test.rb} +1 -1
  240. data/lib/liza/ruby_tests/string_test.rb +3 -1
  241. data/lib/liza/{test → safety}/test.rb +9 -0
  242. data/lib/liza/{test → safety}/test_test.rb +40 -7
  243. data/lib/liza/{test_parts → safety_parts}/test_assertions_advanced_part.rb +1 -1
  244. data/lib/liza/{test_parts → safety_parts}/test_log_part.rb +20 -0
  245. data/lib/liza/{test_parts → safety_parts}/test_subject_part.rb +10 -0
  246. data/lib/liza/safety_parts/test_tree_part.rb +87 -0
  247. data/lib/liza/unit.rb +50 -100
  248. data/lib/liza/unit_parts/unit_classes_part.rb +37 -0
  249. data/lib/liza/unit_parts/unit_classes_part_test.rb +3 -0
  250. data/lib/liza/unit_parts/unit_logging_part.rb +139 -0
  251. data/lib/liza/unit_parts/unit_logging_part_test.rb +3 -0
  252. data/lib/liza/unit_parts/unit_methods_part.rb +35 -0
  253. data/lib/liza/unit_parts/unit_methods_part_test.rb +3 -0
  254. data/lib/liza/unit_parts/unit_procedure_part.rb +2 -2
  255. data/lib/liza/unit_parts/unit_renderer_part.rb +171 -0
  256. data/lib/liza/unit_parts/unit_renderer_part_test.rb +15 -0
  257. data/lib/liza/unit_parts/unit_settings_part.rb +8 -0
  258. data/lib/liza/unit_test.rb +114 -16
  259. data/lib/liza.rb +2 -2
  260. data/lib/lizarb/ruby/class.rb +9 -1
  261. data/lib/lizarb/ruby/string.rb +3 -1
  262. data/lib/lizarb/version.rb +1 -1
  263. data/lib/lizarb.rb +215 -64
  264. data/lib/micro_system/micro_box.rb +5 -0
  265. data/lib/micro_system/micro_box_test.rb +8 -0
  266. data/lib/micro_system.rb +8 -0
  267. data/lib/net_system/net_box.rb +21 -0
  268. data/lib/net_system/{net/net_box_test.rb → net_box_test.rb} +1 -2
  269. data/lib/net_system/{net/panels → sub/client}/client_panel_test.rb +1 -2
  270. data/lib/net_system/{net/controllers → sub/client}/client_test.rb +1 -2
  271. data/lib/net_system/sub/client/generators/client_generator.rb +88 -0
  272. data/lib/net_system/sub/client/generators/client_generator_test.rb +10 -0
  273. data/lib/net_system/sub/database/clients/mongo_client.rb +33 -0
  274. data/lib/net_system/sub/database/clients/mongo_client_test.rb +20 -0
  275. data/lib/net_system/sub/database/clients/mysql_client.rb +29 -0
  276. data/lib/net_system/sub/database/clients/mysql_client_test.rb +23 -0
  277. data/lib/net_system/sub/database/clients/pgsql_client.rb +29 -0
  278. data/lib/net_system/sub/database/clients/pgsql_client_test.rb +25 -0
  279. data/lib/net_system/{net/controllers/client → sub/database/clients}/redis_client.rb +4 -1
  280. data/lib/net_system/{net/controllers/client → sub/database/clients}/redis_client_test.rb +2 -2
  281. data/lib/net_system/{net/controllers/client → sub/database/clients}/sqlite_client.rb +4 -1
  282. data/lib/net_system/{net/controllers/client → sub/database/clients}/sqlite_client_test.rb +2 -2
  283. data/lib/net_system/sub/database/commands/database_command.rb +32 -0
  284. data/lib/net_system/sub/database/commands/database_command_test.rb +11 -0
  285. data/lib/net_system/{net/panels → sub/database}/database_panel_test.rb +1 -2
  286. data/lib/net_system/{net/controllers → sub/database}/database_test.rb +1 -2
  287. data/lib/net_system/sub/database/databases/mongo_db.rb +8 -0
  288. data/lib/net_system/sub/database/databases/mongo_db_test.rb +21 -0
  289. data/lib/net_system/sub/database/databases/mysql_db.rb +8 -0
  290. data/lib/net_system/sub/database/databases/mysql_db_test.rb +21 -0
  291. data/lib/net_system/sub/database/databases/pgsql_db.rb +8 -0
  292. data/lib/net_system/sub/database/databases/pgsql_db_test.rb +21 -0
  293. data/lib/net_system/{net/controllers/database → sub/database/databases}/redis_db_test.rb +1 -1
  294. data/lib/net_system/{net/controllers/database → sub/database/databases}/sqlite_db_test.rb +1 -1
  295. data/lib/net_system/sub/record/generators/record_generator.rb +33 -0
  296. data/lib/net_system/sub/record/generators/record_generator_test.rb +11 -0
  297. data/lib/net_system/sub/record/record_panel.rb +3 -0
  298. data/lib/net_system/sub/record/record_panel_test.rb +11 -0
  299. data/lib/net_system/{net/controllers → sub/record}/record_test.rb +1 -2
  300. data/lib/net_system.rb +8 -1
  301. data/lib/web_system/{dev → sub/rack/commands}/rack_command.rb +7 -5
  302. data/lib/web_system/sub/rack/commands/rack_command_test.rb +11 -0
  303. data/lib/web_system/sub/rack/middle_racks/first_middle_rack.rb +8 -0
  304. data/lib/web_system/sub/rack/middle_racks/first_middle_rack_test.rb +11 -0
  305. data/lib/web_system/sub/rack/middle_racks/last_middle_rack.rb +3 -0
  306. data/lib/web_system/sub/rack/middle_racks/last_middle_rack_test.rb +11 -0
  307. data/lib/web_system/sub/rack/middle_racks/middle_rack.rb +18 -0
  308. data/lib/web_system/sub/rack/middle_racks/middle_rack_test.rb +11 -0
  309. data/lib/web_system/sub/rack/middle_racks/zeitwerk_middle_rack.rb +11 -0
  310. data/lib/web_system/sub/rack/middle_racks/zeitwerk_middle_rack_test.rb +11 -0
  311. data/lib/web_system/sub/rack/rack_panel.rb +52 -0
  312. data/lib/web_system/{web/panels → sub/rack}/rack_panel_test.rb +1 -2
  313. data/lib/web_system/{web/controllers → sub/rack}/rack_test.rb +1 -2
  314. data/lib/web_system/sub/rack/server_racks/agoo_server_rack.rb +53 -0
  315. data/lib/web_system/sub/rack/server_racks/agoo_server_rack_test.rb +11 -0
  316. data/lib/web_system/sub/rack/server_racks/falcon_server_rack.rb +46 -0
  317. data/lib/web_system/sub/rack/server_racks/falcon_server_rack_test.rb +11 -0
  318. data/lib/web_system/sub/rack/server_racks/iodine_server_rack.rb +47 -0
  319. data/lib/web_system/sub/rack/server_racks/iodine_server_rack_test.rb +11 -0
  320. data/lib/web_system/sub/rack/server_racks/puma_server_rack.rb +48 -0
  321. data/lib/web_system/sub/rack/server_racks/puma_server_rack_test.rb +11 -0
  322. data/lib/web_system/sub/rack/server_racks/server_rack.rb +12 -0
  323. data/lib/web_system/sub/rack/server_racks/server_rack_test.rb +11 -0
  324. data/lib/web_system/sub/rack/server_racks/thin_server_rack.rb +85 -0
  325. data/lib/web_system/sub/rack/server_racks/thin_server_rack_test.rb +11 -0
  326. data/lib/web_system/sub/request/commands/request_command.rb +125 -0
  327. data/lib/web_system/sub/request/commands/request_command_test.rb +11 -0
  328. data/lib/web_system/sub/request/generators/request_generator.rb +96 -0
  329. data/lib/web_system/sub/request/generators/request_generator_test.rb +11 -0
  330. data/lib/web_system/sub/request/request_panel.rb +69 -0
  331. data/lib/web_system/sub/request/request_panel_test.rb +54 -0
  332. data/lib/web_system/{web/controllers → sub/request}/request_test.rb +1 -2
  333. data/lib/web_system/sub/request/requests/simple_request.rb +95 -0
  334. data/lib/web_system/sub/request/requests/simple_request_test.rb +11 -0
  335. data/lib/web_system/sub/request/router_requests/router_request.rb +7 -0
  336. data/lib/web_system/sub/request/router_requests/router_request_test.rb +11 -0
  337. data/lib/web_system/sub/request/router_requests/simple_router_request.rb +24 -0
  338. data/lib/web_system/sub/request/router_requests/simple_router_request_test.rb +11 -0
  339. data/lib/web_system/web_box.rb +17 -0
  340. data/lib/web_system/{web/web_box_test.rb → web_box_test.rb} +1 -2
  341. data/lib/web_system.rb +9 -3
  342. data/lib/work_system/work_box.rb +5 -0
  343. data/lib/work_system/work_box_test.rb +8 -0
  344. data/lib/work_system.rb +8 -0
  345. data/lizarb.gemspec +13 -7
  346. metadata +369 -167
  347. data/app/happy/axos/axo.rb +0 -50
  348. data/app_new/dev/benches/objects_bench.rb +0 -83
  349. data/app_new/dev/benches/sorted_bench_test.rb +0 -12
  350. data/app_new/dev_box.rb +0 -14
  351. data/app_new.rb +0 -15
  352. data/exe/lrb +0 -3
  353. data/lib/dev_system/dev/controllers/bench_test.rb +0 -12
  354. data/lib/dev_system/dev/controllers/command/generate_command.rb +0 -9
  355. data/lib/dev_system/dev/controllers/command/generate_command_test.rb +0 -12
  356. data/lib/dev_system/dev/controllers/command/new_command.rb +0 -9
  357. data/lib/dev_system/dev/controllers/command/not_found_command.rb +0 -48
  358. data/lib/dev_system/dev/controllers/command/not_found_command_test.rb +0 -12
  359. data/lib/dev_system/dev/controllers/command/terminal_command.rb +0 -22
  360. data/lib/dev_system/dev/controllers/command/terminal_command_test.rb +0 -12
  361. data/lib/dev_system/dev/controllers/command.rb +0 -13
  362. data/lib/dev_system/dev/controllers/generator.rb +0 -9
  363. data/lib/dev_system/dev/controllers/generator_dsl_main_part.rb +0 -50
  364. data/lib/dev_system/dev/controllers/generators/bench_generator/controller.rb.erb +0 -23
  365. data/lib/dev_system/dev/controllers/generators/bench_generator/controller_test.rb.erb +0 -12
  366. data/lib/dev_system/dev/controllers/generators/bench_generator.rb +0 -12
  367. data/lib/dev_system/dev/controllers/generators/bench_generator_test.rb +0 -12
  368. data/lib/dev_system/dev/controllers/generators/command_generator/controller.rb.erb +0 -41
  369. data/lib/dev_system/dev/controllers/generators/command_generator/controller_test.rb.erb +0 -12
  370. data/lib/dev_system/dev/controllers/generators/command_generator.rb +0 -19
  371. data/lib/dev_system/dev/controllers/generators/command_generator_test.rb +0 -12
  372. data/lib/dev_system/dev/controllers/generators/controller_generator.rb +0 -97
  373. data/lib/dev_system/dev/controllers/generators/controller_generator_test.rb +0 -12
  374. data/lib/dev_system/dev/controllers/generators/generator_generator/generator.rb.erb +0 -18
  375. data/lib/dev_system/dev/controllers/generators/generator_generator/generator_test.rb.erb +0 -12
  376. data/lib/dev_system/dev/controllers/generators/generator_generator/template.rb.erb +0 -9
  377. data/lib/dev_system/dev/controllers/generators/generator_generator/template_test.rb.erb +0 -12
  378. data/lib/dev_system/dev/controllers/generators/generator_generator.rb +0 -30
  379. data/lib/dev_system/dev/controllers/generators/generator_generator_test.rb +0 -12
  380. data/lib/dev_system/dev/controllers/generators/new_generator.rb +0 -117
  381. data/lib/dev_system/dev/controllers/generators/new_generator_test.rb +0 -12
  382. data/lib/dev_system/dev/controllers/generators/not_found_generator.rb +0 -39
  383. data/lib/dev_system/dev/controllers/generators/not_found_generator_test.rb +0 -12
  384. data/lib/dev_system/dev/controllers/generators/record_generator.rb +0 -46
  385. data/lib/dev_system/dev/controllers/generators/record_generator_test.rb +0 -12
  386. data/lib/dev_system/dev/controllers/generators/request_generator.rb +0 -63
  387. data/lib/dev_system/dev/controllers/generators/request_generator_test.rb +0 -12
  388. data/lib/dev_system/dev/controllers/shell/dir_shell.rb +0 -27
  389. data/lib/dev_system/dev/controllers/shell/text_shell.rb +0 -23
  390. data/lib/dev_system/dev/controllers/terminal/irb_terminal_test.rb +0 -12
  391. data/lib/dev_system/dev/controllers/terminal/pry_terminal_test.rb +0 -12
  392. data/lib/dev_system/dev/controllers/terminal.rb +0 -17
  393. data/lib/dev_system/dev/controllers/terminal_test.rb +0 -12
  394. data/lib/dev_system/dev/dev_box.rb +0 -33
  395. data/lib/dev_system/dev/dev_box_test.rb +0 -17
  396. data/lib/dev_system/dev/panels/command_panel.rb +0 -71
  397. data/lib/dev_system/dev/panels/command_panel_test.rb +0 -46
  398. data/lib/dev_system/dev/panels/generator_panel.rb +0 -73
  399. data/lib/dev_system/dev/panels/generator_panel_test.rb +0 -46
  400. data/lib/dev_system/dev/panels/log_panel.rb +0 -13
  401. data/lib/dev_system/dev/panels/log_panel_test.rb +0 -16
  402. data/lib/dev_system/dev/panels/shell_panel.rb +0 -3
  403. data/lib/dev_system/dev/panels/shell_panel_test.rb +0 -12
  404. data/lib/dev_system/dev/panels/terminal_panel.rb +0 -3
  405. data/lib/dev_system/dev/panels/terminal_panel_test.rb +0 -12
  406. data/lib/happy_system/dev/happy_command.rb +0 -11
  407. data/lib/happy_system/happy/controllers/axo.rb +0 -7
  408. data/lib/happy_system/happy/happy_box.rb +0 -8
  409. data/lib/happy_system/happy/happy_box_test.rb +0 -16
  410. data/lib/happy_system/happy/panels/axo_panel.rb +0 -3
  411. data/lib/liza/base/box.rb +0 -90
  412. data/lib/liza/base/box_test.rb +0 -10
  413. data/lib/liza/base_parts/controller_renderer_part.rb +0 -140
  414. data/lib/liza/base_parts/controller_renderer_part_test.rb +0 -16
  415. data/lib/liza/meta/part_extension.rb +0 -16
  416. data/lib/liza/test_parts/test_tree_part.rb +0 -92
  417. data/lib/net_system/dev/net_command.rb +0 -22
  418. data/lib/net_system/net/net_box.rb +0 -13
  419. data/lib/web_system/dev/request_command.rb +0 -129
  420. data/lib/web_system/dev/web_command.rb +0 -9
  421. data/lib/web_system/web/panels/rack_panel.rb +0 -42
  422. data/lib/web_system/web/panels/request_panel.rb +0 -70
  423. data/lib/web_system/web/panels/request_panel_test.rb +0 -33
  424. data/lib/web_system/web/web_box.rb +0 -18
  425. /data/lib/dev_system/{dev/panels → sub/bench}/bench_panel.rb +0 -0
  426. /data/lib/dev_system/{dev/controllers → sub/log}/log.rb +0 -0
  427. /data/lib/dev_system/{dev/controllers/shell → sub/shell/shells}/bin_shell.rb +0 -0
  428. /data/lib/liza/{test_parts → safety_parts}/test_assertions_part.rb +0 -0
  429. /data/lib/liza/{test_parts → safety_parts}/test_dsl_part.rb +0 -0
  430. /data/lib/net_system/{net/controllers → sub/client}/client.rb +0 -0
  431. /data/lib/net_system/{net/panels → sub/client}/client_panel.rb +0 -0
  432. /data/lib/net_system/{net/controllers → sub/database}/database.rb +0 -0
  433. /data/lib/net_system/{net/panels → sub/database}/database_panel.rb +0 -0
  434. /data/lib/net_system/{net/controllers/database → sub/database/databases}/redis_db.rb +0 -0
  435. /data/lib/net_system/{net/controllers/database → sub/database/databases}/sqlite_db.rb +0 -0
  436. /data/lib/net_system/{net/controllers → sub/record}/record.rb +0 -0
  437. /data/lib/web_system/{web/controllers → sub/rack}/rack.rb +0 -0
  438. /data/lib/web_system/{web/controllers → sub/request}/request.rb +0 -0
  439. /data/lib/web_system/{web/controllers/request → sub/request/requests}/client_error_request.rb +0 -0
  440. /data/lib/web_system/{web/controllers/request → sub/request/requests}/not_found_request.rb +0 -0
  441. /data/lib/web_system/{web/controllers/request → sub/request/requests}/server_error_request.rb +0 -0
@@ -0,0 +1,27 @@
1
+ class DevSystem::DirShell < DevSystem::FileShell
2
+
3
+ # OVERRIDES
4
+
5
+ def self.exist? path, log_level: self.log_level
6
+ log log_level, "Checking if directory exists at '#{path}'"
7
+
8
+ directory? path
9
+ end
10
+
11
+ def self.size path, log_level: self.log_level
12
+ log log_level, "Getting size of directory at '#{path}'"
13
+ _raise_if_not_exists path
14
+
15
+ Pathname.new(path).children.inject(0) { |sum, f| sum + f.size }
16
+ end
17
+
18
+ # CUSTOM
19
+
20
+ def self.create path, log_level: self.log_level
21
+ log log_level, "Creating directory at '#{path}'"
22
+ _raise_if_blank path
23
+
24
+ Pathname.new(path).mkpath
25
+ end
26
+
27
+ end
@@ -5,8 +5,7 @@ class DevSystem::DirShellTest < DevSystem::FileShellTest
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
  #
@@ -23,12 +22,10 @@ class DevSystem::DirShellTest < DevSystem::FileShellTest
23
22
 
24
23
  test :subject_class, :exist?, true do
25
24
  assert subject_class.exist? Dir.pwd
26
- assert subject_class.exist? Liza::Shell.source_location_radical
27
25
  end
28
26
 
29
27
  test :subject_class, :exist?, false do
30
28
  refute subject_class.exist? "does_not_exist"
31
- refute subject_class.exist? Liza::DirShell.source_location_radical
32
29
  end
33
30
 
34
31
  test :subject_class, :size, :raise do
@@ -47,7 +44,6 @@ class DevSystem::DirShellTest < DevSystem::FileShellTest
47
44
 
48
45
  test :subject_class, :size, true do
49
46
  assert subject_class.size(Dir.pwd).positive?
50
- assert subject_class.size(Liza::Shell.source_location_radical).positive?
51
47
  end
52
48
 
53
49
  #
@@ -4,14 +4,14 @@ class DevSystem::FileShell < DevSystem::Shell
4
4
  raise ArgumentError, "Path is required" if path.nil? || path.to_s.empty?
5
5
  end
6
6
 
7
- def self._raise_if_not_exists path
8
- raise ArgumentError, "File does not exist at '#{path}'" unless exist? path
7
+ def self._raise_if_not_exists path, log_level: self.log_level
8
+ raise ArgumentError, "File does not exist at '#{path}'" unless exist?(path, log_level: log_level)
9
9
  end
10
10
 
11
11
  #
12
12
 
13
- def self.exist? path
14
- log :normal, "Checking if file exists at '#{path}'"
13
+ def self.exist? path, log_level: self.log_level
14
+ log log_level, "Checking if file exists at '#{path}'"
15
15
  _raise_if_blank path
16
16
 
17
17
  File.exist? path
@@ -31,8 +31,7 @@ class DevSystem::FileShellTest < DevSystem::ShellTest
31
31
  end
32
32
 
33
33
  test :settings do
34
- assert subject_class.log_level == :normal
35
- assert subject_class.log_color == :green
34
+ assert_equality subject_class.log_level, 0
36
35
  end
37
36
 
38
37
  #
@@ -0,0 +1,21 @@
1
+ class DevSystem::GemShell < DevSystem::Shell
2
+
3
+ #
4
+
5
+ def gemspec
6
+ Gem::Specification.load "lizarb.gemspec"
7
+ end
8
+
9
+ def gemspecs
10
+ Dir["*.gemspec"].map { _1.split("/").last.split(".").first }
11
+ end
12
+
13
+ def gemfile_path
14
+ Pathname ENV["BUNDLE_GEMFILE"]
15
+ end
16
+
17
+ def gemfile_writable?
18
+ gemfile_path.to_s.start_with? App.root.to_s
19
+ end
20
+
21
+ end
@@ -0,0 +1,28 @@
1
+ class DevSystem::GemShellTest < DevSystem::ShellTest
2
+
3
+ #
4
+
5
+ test :subject_class, :subject do
6
+ assert_equality DevSystem::GemShell, subject_class
7
+ assert_equality DevSystem::GemShell, subject.class
8
+ end
9
+
10
+ test :subject_class, :gemspec do
11
+ assert_equality subject.gemspec.class, Gem::Specification
12
+ end
13
+
14
+ test :subject_class, :gemspecs do
15
+ assert_equality subject.gemspecs.class, Array
16
+ end
17
+
18
+ test :subject_class, :gemfile_path do
19
+ assert_equality subject.gemfile_path.class, Pathname
20
+ assert subject.gemfile_path.to_s.end_with? "Gemfile"
21
+ end
22
+
23
+ test :subject_class, :gemfile_writable? do
24
+ c = subject.gemfile_writable?.class
25
+ assert c == TrueClass or c == FalseClass
26
+ end
27
+
28
+ end
@@ -0,0 +1,22 @@
1
+ class DevSystem::KernelShell < DevSystem::Shell
2
+
3
+ #
4
+
5
+ def self.call_backticks(command, log_level: :lower)
6
+ log log_level, "#{stick command, DevSystem.color} | executing and outputting result"
7
+ result = `#{command}`
8
+ puts result if log? log_level
9
+ result
10
+ end
11
+
12
+ #
13
+
14
+ def self.call_system(command, log_level: :normal)
15
+ log log_level, "#{command} | executing"
16
+ success = Kernel.system(command)
17
+ message = success ? (stick :green, "successfully") : (stick :red, "failed")
18
+ log log_level, "Command executed #{message}"
19
+ success
20
+ end
21
+
22
+ end
@@ -0,0 +1,10 @@
1
+ class DevSystem::KernelShellTest < DevSystem::ShellTest
2
+
3
+ #
4
+
5
+ test :subject_class, :subject do
6
+ assert_equality DevSystem::KernelShell, subject_class
7
+ assert_equality DevSystem::KernelShell, subject.class
8
+ end
9
+
10
+ end
@@ -0,0 +1,26 @@
1
+ class DevSystem::LineDiffShell < DevSystem::Shell
2
+
3
+ #
4
+
5
+ def self.log_diff(a, b)
6
+ require "diff/lcs"
7
+
8
+ # Compute the diff
9
+ diffs = Diff::LCS.diff(a, b)
10
+ puts
11
+ # Output the diff in a format similar to git diff
12
+ diffs.each do |diff|
13
+ diff.each do |change|
14
+ # If it's a deletion (present in old but not in new)
15
+ if change.action == "-"
16
+ puts "- #{change.element.chomp.red}"
17
+ # If it's an addition (present in new but not in old)
18
+ elsif change.action == "+"
19
+ puts "+ #{change.element.chomp.green}"
20
+ end
21
+ end
22
+ end
23
+ puts
24
+ end
25
+
26
+ end
@@ -0,0 +1,11 @@
1
+ class DevSystem::LineDiffShellTest < DevSystem::ShellTest
2
+
3
+ test :subject_class do
4
+ assert_equality subject_class, DevSystem::LineDiffShell
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ end
@@ -0,0 +1,56 @@
1
+ class DevSystem::LineShell < DevSystem::Shell
2
+
3
+ #
4
+
5
+ def self.extract_wall_of(lines, string)
6
+ ret = []
7
+
8
+ state = nil
9
+ lines.each do |line|
10
+ if state == :entered_region
11
+ if line.start_with? string
12
+ ret << line
13
+ else
14
+ break
15
+ end
16
+ else
17
+ if line.start_with? string
18
+ state = :entered_region
19
+ ret << line
20
+ end
21
+ end
22
+ end
23
+
24
+ ret
25
+ end
26
+
27
+ #
28
+
29
+ def self.replace_wall_of(lines, string, with)
30
+ ret = []
31
+
32
+ state = nil
33
+ lines.each do |line|
34
+
35
+ if state == :entered_region
36
+ if line.start_with? string
37
+ #
38
+ else
39
+ ret << line
40
+ state = nil
41
+ end
42
+ else
43
+ if line.start_with? string
44
+ ret += with
45
+ state = :entered_region
46
+ else
47
+ ret << line
48
+ end
49
+ end
50
+
51
+ end
52
+
53
+ ret
54
+ end
55
+
56
+ end
@@ -0,0 +1,70 @@
1
+ class DevSystem::LineShellTest < DevSystem::ShellTest
2
+
3
+ test :subject_class do
4
+ assert_equality subject_class, DevSystem::LineShell
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ #
12
+
13
+ def get_wall_lines
14
+ lines = render!(:wall, format: :txt).split("\n")
15
+ assert_equality lines.count, 9, kaller: caller
16
+ lines
17
+ end
18
+
19
+ group do
20
+ before do
21
+ @lines = get_wall_lines
22
+ end
23
+
24
+ #
25
+
26
+ test :subject_class, :extract_wall_of do
27
+ expected_lines = render!(:wall_extract_wall_of, format: :txt).split("\n")
28
+
29
+ new_lines = subject_class.extract_wall_of @lines, "bbb"
30
+ assert_equality new_lines, expected_lines
31
+ end
32
+
33
+ #
34
+
35
+ test :subject_class, :replace_wall_of do
36
+ expected_lines = render!(:wall_replace_wall_of, format: :txt).split("\n")
37
+
38
+ new_lines = subject_class.replace_wall_of @lines, "bbb", ["bbb 123"]
39
+ assert_equality new_lines, expected_lines
40
+ end
41
+ end
42
+
43
+ end
44
+
45
+ __END__
46
+
47
+ # view wall.txt.erb
48
+ aaa 111
49
+ aaa 222
50
+ aaa 333
51
+ bbb 444
52
+ bbb 555
53
+ bbb 666
54
+ ccc 777
55
+ ccc 888
56
+ ccc 999
57
+
58
+ # view wall_extract_wall_of.txt.erb
59
+ bbb 444
60
+ bbb 555
61
+ bbb 666
62
+
63
+ # view wall_replace_wall_of.txt.erb
64
+ aaa 111
65
+ aaa 222
66
+ aaa 333
67
+ bbb 123
68
+ ccc 777
69
+ ccc 888
70
+ ccc 999
@@ -0,0 +1,52 @@
1
+ class DevSystem::MethodShell < DevSystem::Shell
2
+ class NotFoundError < Error; end
3
+
4
+ #
5
+
6
+ def self.signature_has_single_parameter_named?(object, method_name, arg_name)
7
+ return false unless object.respond_to? method_name
8
+ new(object, method_name).signature_has_single_parameter_named?(arg_name)
9
+ end
10
+
11
+ #
12
+
13
+ attr_reader :object, :method_name
14
+
15
+ def initialize(object, method_name)
16
+ super()
17
+ @object = object
18
+ @method_name = method_name
19
+
20
+ @method = object.method method_name
21
+ rescue NameError
22
+ raise NotFoundError, "method not found: #{method_name.inspect}", caller
23
+ end
24
+
25
+ #
26
+
27
+ def method(sym=nil)
28
+ return super if sym
29
+ @method
30
+ end
31
+
32
+ #
33
+
34
+ def line
35
+ @line ||= File.readlines(@method.source_location[0])[@method.source_location[1] - 1].strip
36
+ end
37
+
38
+ def line_location
39
+ @line_location ||= begin
40
+ path = @method.source_location[0].gsub(App.root.to_s, "")[1..-1]
41
+ line_number = @method.source_location[1]
42
+ "#{path}:#{line_number}"
43
+ end
44
+ end
45
+
46
+ #
47
+
48
+ def signature_has_single_parameter_named?(name)
49
+ @method.parameters == [[:req, name]]
50
+ end
51
+
52
+ end
@@ -0,0 +1,34 @@
1
+ class DevSystem::MethodShellTest < DevSystem::ShellTest
2
+
3
+ test :subject_class do
4
+ assert_equality subject_class, DevSystem::MethodShell
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ #
12
+
13
+ test :subject, false do
14
+ subject = subject_class.new FileShell, :abc
15
+ assert false
16
+ rescue DevSystem::MethodShell::NotFoundError
17
+ assert true
18
+ end
19
+
20
+ test :subject, :method, :line, :line_location, :signature_has_single_parameter_named? do
21
+ subject = subject_class.new FileShell, :touch
22
+ assert_equality subject.method, FileShell.method(:touch)
23
+
24
+ assert_equality subject.object, FileShell
25
+ assert_equality subject.method_name, :touch
26
+
27
+ assert_equality subject.line, "def self.touch path"
28
+ assert_equality subject.line_location, "lib/dev_system/sub/shell/shells/file_shell.rb:45"
29
+
30
+ assert subject.signature_has_single_parameter_named? :path
31
+ refute subject.signature_has_single_parameter_named? :wrong
32
+ end
33
+
34
+ end
@@ -0,0 +1,14 @@
1
+ class DevSystem::TextFileShell < DevSystem::FileShell
2
+
3
+ #
4
+
5
+ attr_reader :old_lines, :relative_path, :path
6
+ attr_accessor :new_lines
7
+
8
+ def initialize(path)
9
+ @path = Pathname(path)
10
+ @relative_path = Pathname(path).relative_path_from(App.root)
11
+ @old_lines = TextShell.read_lines path
12
+ end
13
+
14
+ end
@@ -0,0 +1,11 @@
1
+ class DevSystem::TextFileShellTest < DevSystem::FileShellTest
2
+
3
+ test :subject_class do
4
+ assert_equality subject_class, DevSystem::TextFileShell
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ end
@@ -0,0 +1,65 @@
1
+ class DevSystem::TextShell < DevSystem::FileShell
2
+
3
+ #
4
+
5
+ set :create_dir, true
6
+
7
+ def self.write path, content, create_dir: nil, log_level: self.log_level
8
+ log log_level, "Writing #{content.to_s.size} characters (#{content.encoding}) to #{path}"
9
+ _raise_if_blank path
10
+
11
+ create_dir = get :create_dir if create_dir.nil?
12
+ DevSystem::DirShell.create File.dirname(path), log_level: log_level if create_dir
13
+
14
+ File.write path, content
15
+ end
16
+
17
+ #
18
+
19
+ def self.read path, log_level: self.log_level
20
+ log log_level, "Reading #{path}"
21
+ _raise_if_blank path
22
+ _raise_if_not_exists path, log_level: log_level
23
+
24
+ File.read path
25
+ end
26
+
27
+ def self.read_lines path, log_level: self.log_level
28
+ log log_level, "Reading lines from #{path}"
29
+ return [] unless exist? path
30
+
31
+ File.readlines path
32
+ end
33
+
34
+ def self.read_lines! path, log_level: self.log_level
35
+ log log_level, "Reading lines from #{path}"
36
+ _raise_if_blank path
37
+ _raise_if_not_exists path
38
+
39
+ File.readlines path
40
+ end
41
+
42
+ #
43
+
44
+ def self.append_line_after_last_including(path:, newline:, after:)
45
+ log "Appending to #{path}"
46
+ state = nil
47
+ lines = File.readlines(path)
48
+ File.open(path, "w") do |out|
49
+ lines.each do |line|
50
+ state = :entered_systems_region if state == nil && line =~ after
51
+ state = :left_systems_region if state == :entered_systems_region && line !~ after
52
+
53
+ if state == :left_systems_region
54
+ out.write("#{newline}\n")
55
+ log :low, newline.strip.green
56
+ state = :done
57
+ end
58
+
59
+ out.write(line)
60
+ log :low, line.strip.light_black
61
+ end
62
+ end
63
+ end
64
+
65
+ end
@@ -5,8 +5,7 @@ class DevSystem::TextShellTest < DevSystem::FileShellTest
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
  #
data/lib/dev_system.rb CHANGED
@@ -1,8 +1,14 @@
1
1
  class DevSystem < Liza::System
2
- class Error < Liza::Error; end
2
+ class Error < Error; end
3
3
 
4
4
  #
5
5
 
6
- set :log_color, :green
6
+ color :light_green
7
7
 
8
+ sub :bench
9
+ sub :command
10
+ sub :generator
11
+ sub :log
12
+ sub :shell
13
+
8
14
  end
@@ -0,0 +1,9 @@
1
+ class HappySystem::HappyBox < Liza::Box
2
+
3
+ # Preconfigure your axo panel
4
+
5
+ configure :axo do
6
+ #
7
+ end
8
+
9
+ end
@@ -0,0 +1,24 @@
1
+ class HappySystem::HappyBoxTest < Liza::BoxTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == HappySystem::HappyBox
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
+ end
15
+
16
+ test :panels do
17
+ a = subject_class.panels.keys
18
+ b = [:axo]
19
+ assert_equality a, b
20
+
21
+ assert_sub :axo, HappySystem::Axo, HappySystem::AxoPanel
22
+ end
23
+
24
+ end
@@ -0,0 +1,10 @@
1
+ class HappySystem::Axo < Liza::Controller
2
+
3
+ def self.call(env)
4
+ log :low, "env.count is #{env.count}"
5
+ new.tap { _1.env = env }.call(env[:args])
6
+ end
7
+
8
+ attr_accessor :env
9
+
10
+ end
@@ -0,0 +1,9 @@
1
+ class HappySystem::AxoPanel < Liza::Panel
2
+
3
+ def call(env)
4
+ log :low, "env.count is #{env.count}"
5
+ env[:args] = Array env[:args][1..-1]
6
+ env[:axo].call env
7
+ end
8
+
9
+ end
@@ -0,0 +1,16 @@
1
+ class HappySystem::AxoPanelTest < Liza::PanelTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == HappySystem::AxoPanel
5
+ end
6
+
7
+ test_methods_defined do
8
+ on_self
9
+ on_instance :call
10
+ end
11
+
12
+ test :settings do
13
+ assert_equality subject_class.log_level, 0
14
+ end
15
+
16
+ end
@@ -0,0 +1,16 @@
1
+ class HappySystem::AxoTest < Liza::ControllerTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == HappySystem::Axo
5
+ end
6
+
7
+ test_methods_defined do
8
+ on_self :call
9
+ on_instance :env, :env=
10
+ end
11
+
12
+ test :settings do
13
+ assert_equality subject_class.log_level, 0
14
+ end
15
+
16
+ end
@@ -0,0 +1,40 @@
1
+ class HappySystem::AxoCommand < DevSystem::SimpleCommand
2
+
3
+ #
4
+
5
+ def call_default
6
+ find!
7
+
8
+ env[:axo] = @axo
9
+ HappyBox[:axo].call(env)
10
+
11
+ log "done at #{Time.now}"
12
+ end
13
+
14
+ def find!
15
+ @name = simple_args[0]
16
+
17
+ if @name
18
+ @axo = Liza.const "#{@name}_axo"
19
+ return
20
+ end
21
+
22
+ @axo = pick_axo
23
+ @name = @axo.last_namespace.snakecase
24
+ ensure
25
+ log :high, "@name = #{@name}"
26
+ log :high, "@axo = #{@axo}"
27
+ end
28
+
29
+ def pick_axo
30
+ axos = Axo.descendants
31
+ options = axos.sort_by(&:last_namespace).map do |axo|
32
+ [
33
+ "#{axo.last_namespace.snakecase.ljust 30} - #{axo} - #{(axo.get :description) || "No description."}",
34
+ axo
35
+ ]
36
+ end.to_h
37
+ TtyInputCommand.pick_one "Pick an Axolotl ASCII Animation to run", options
38
+ end
39
+
40
+ end