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,74 @@
1
+ class DevSystem::OutputLog < DevSystem::Log
2
+
3
+ SIDEBAR_LENGTH = 60
4
+
5
+ def self.call(env)
6
+ env[:sidebar] ||= sidebar_for env
7
+
8
+ string = env[:object]
9
+ string = string.join("") if string.is_a? Array
10
+
11
+ unless $coding
12
+ pid = Process.pid
13
+ tid = Lizarb.thread_id.to_s.rjust_zeroes 3
14
+ env[:sidebar] = "#{pid} #{tid} #{env[:sidebar]}"
15
+ end
16
+
17
+ string = "#{env[:sidebar]} #{string}"
18
+ Kernel.puts string
19
+ end
20
+
21
+ def self.sidebar_for env
22
+ sidebar = ""
23
+
24
+ source = env[:unit_class]
25
+ system_color = source.system.color
26
+ source_color = source.division.system.color
27
+ size = 0
28
+
29
+ # TODO: Figure out why RequestPanel is returning false when started from rack command but not from request command
30
+ # source_is_a_panel = source < Panel
31
+ # source_is_a_panel = source.ancestors.include? Panel
32
+ # source_is_a_panel = env[:unit].is_a? Panel
33
+ source_is_a_panel = source.to_s.end_with? "Panel"
34
+
35
+ if source_is_a_panel
36
+ key = env[:unit].key
37
+ source = source.box
38
+
39
+ namespace, _sep, classname = source.name.rpartition('::')
40
+ unless namespace.empty?
41
+ sidebar << stick(namespace, system_color, :b).to_s
42
+ sidebar << "::"
43
+ size += namespace.size + 2
44
+ end
45
+ sidebar << stick(classname, source_color).to_s
46
+ sidebar << "[:#{key}]."
47
+
48
+ size += classname.size + key.size + 4
49
+ else
50
+ method_sep = env[:instance] ? "#" : ":"
51
+
52
+ namespace, _sep, classname = env[:unit_class].name.rpartition('::')
53
+ unless namespace.empty?
54
+ sidebar << stick(namespace, system_color, :b).to_s
55
+ sidebar << "::"
56
+ size += namespace.size + 2
57
+ end
58
+ sidebar << stick(classname, source_color).to_s
59
+
60
+ sidebar << method_sep
61
+ size += classname.size + 1
62
+ end
63
+
64
+ sidebar << env[:method_name]
65
+ size += env[:method_name].size
66
+
67
+ size = SIDEBAR_LENGTH - size - 1
68
+ size = 0 if size < 0
69
+ sidebar << " " * size
70
+
71
+ sidebar
72
+ end
73
+
74
+ end
@@ -0,0 +1,47 @@
1
+ class DevSystem::OutputLogTest < DevSystem::LogTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == DevSystem::OutputLog
5
+ end
6
+
7
+ test_methods_defined do
8
+ on_self :call, :sidebar_for
9
+ on_instance
10
+ end
11
+
12
+ test :settings do
13
+ assert_equality subject_class.log_level, 0
14
+ end
15
+
16
+ test :sidebar_for do
17
+ assert_equality "\e[1m\e[38;2;0;255;0mDevSystem\e[0m::\e[38;2;0;255;0mCommand\e[0m:call ",
18
+ sidebar_for(
19
+ DevSystem::Command,
20
+ DevSystem::Command,
21
+ "call"
22
+ )
23
+ assert_equality "\e[1m\e[38;2;0;255;0mDevSystem\e[0m::\e[38;2;0;255;0mTestCommand\e[0m:call ",
24
+ sidebar_for(
25
+ DevSystem::TestCommand,
26
+ DevSystem::TestCommand,
27
+ "call"
28
+ )
29
+ assert_equality "\e[1m\e[38;2;0;255;0mDevSystem\e[0m::\e[38;2;0;255;0mDevBox\e[0m[:command].call ",
30
+ sidebar_for(
31
+ DevSystem::CommandPanel,
32
+ DevSystem::CommandPanel.new(:command),
33
+ "call"
34
+ )
35
+ end
36
+
37
+ def sidebar_for unit_class, unit, method_name
38
+ env = {
39
+ unit_class: unit_class,
40
+ unit: unit,
41
+ method_name: method_name
42
+ }
43
+ #
44
+ subject_class.sidebar_for env
45
+ end
46
+
47
+ end
@@ -0,0 +1,79 @@
1
+ class DevSystem::StickLog < DevSystem::Log
2
+ class Error < Error; end
3
+ class MissingText < Error; end
4
+ class UnknownArg < Error; end
5
+
6
+ FORE = [255, 255, 255]
7
+ STYLES = {
8
+ bold: :b,
9
+ italic: :i,
10
+ underlined: :u,
11
+ }
12
+
13
+ #
14
+
15
+ def self.bundle *args
16
+ index = args.index { _1.is_a? Array and _1[0].is_a? String } or raise "missing array"
17
+ common_args, arrays = args[0..index-1], args[index..-1]
18
+ space = new(" ", *common_args).to_s
19
+
20
+ arrays.map { |array|
21
+ new *[*common_args, *array]
22
+ }.join space
23
+ end
24
+
25
+ #
26
+
27
+ attr_reader :text, :fore, :back, :bold, :italic, :underlined
28
+
29
+ def initialize *args
30
+ bold = nil
31
+ italic = nil
32
+ underlined = nil
33
+ fore = nil
34
+ back = nil
35
+ text = nil
36
+
37
+ args.each do |arg|
38
+ next text = arg if arg.is_a? String and text.nil?
39
+
40
+ if arg.is_a? Symbol
41
+ x = STYLES[arg] || arg
42
+ next bold = true if x == :b
43
+ next italic = true if x == :i
44
+ next underlined = true if x == :u
45
+ end
46
+
47
+ next fore = arg unless fore
48
+ next back = arg unless back
49
+ raise UnknownArg, "unknown arg #{arg.inspect}"
50
+ end
51
+
52
+ raise MissingText, "missing a string as text", caller[3..] unless text
53
+ fore ||= FORE
54
+
55
+ fore = ColorShell.parse(fore) if fore and not fore.is_a? Array
56
+ back = ColorShell.parse(back) if back and not back.is_a? Array
57
+
58
+ # TODO: benchmark alternatives in regards to Object Shapes
59
+ @bold = bold
60
+ @italic = italic
61
+ @underlined = underlined
62
+ @fore = fore
63
+ @back = back
64
+ @text = text.to_s
65
+ end
66
+
67
+ def to_s
68
+ s = ""
69
+ s += "\e[1m" if @bold
70
+ s += "\e[3m" if @italic
71
+ s += "\e[4m" if @underlined
72
+ s += "\e[38;2;#{@fore[0]};#{@fore[1]};#{@fore[2]}m" if @fore
73
+ s += "\e[48;2;#{@back[0]};#{@back[1]};#{@back[2]}m" if @back
74
+ s += @text
75
+ s += "\e[0m"
76
+ s
77
+ end
78
+
79
+ end
@@ -0,0 +1,88 @@
1
+ class DevSystem::StickLogTest < DevSystem::LogTest
2
+
3
+ #
4
+
5
+ test :subject_class, :subject do
6
+ assert_equality DevSystem::StickLog, subject_class
7
+ end
8
+
9
+ #
10
+
11
+ test :subject_class, :bundle do
12
+ string = \
13
+ subject_class.
14
+ bundle :red, :white, :b,
15
+ ["I"],
16
+ ["LOVE", :u],
17
+ ["RUBY", :u, :i]
18
+
19
+ assert_equality string, "\e[1m\e[38;2;204;0;0m\e[48;2;248;248;248mI\e[0m\e[1m\e[38;2;204;0;0m\e[48;2;248;248;248m \e[0m\e[1m\e[4m\e[38;2;204;0;0m\e[48;2;248;248;248mLOVE\e[0m\e[1m\e[38;2;204;0;0m\e[48;2;248;248;248m \e[0m\e[1m\e[3m\e[4m\e[38;2;204;0;0m\e[48;2;248;248;248mRUBY\e[0m"
20
+ end
21
+
22
+ #
23
+
24
+ test :subject_class, :new do
25
+ s = subject_class.new "I LOVE RUBY"
26
+ assert_equality s.class, subject_class
27
+ assert_equality s.text, "I LOVE RUBY"
28
+ assert_equality s.fore, [255, 255, 255]
29
+ assert_equality s.back, nil
30
+ assert_equality s.to_s, "\e[38;2;255;255;255mI LOVE RUBY\e[0m"
31
+
32
+ s = subject_class.new "I LOVE RUBY", :bold, :italic, :underlined
33
+ assert_equality s.class, subject_class
34
+ assert_equality s.text, "I LOVE RUBY"
35
+ assert_equality s.fore, [255, 255, 255]
36
+ assert_equality s.back, nil
37
+ assert_equality s.bold, true
38
+ assert_equality s.italic, true
39
+ assert_equality s.underlined, true
40
+ assert_equality s.to_s, "\e[1m\e[3m\e[4m\e[38;2;255;255;255mI LOVE RUBY\e[0m"
41
+
42
+ s = subject_class.new "I LOVE RUBY", :b, :i, :u
43
+ assert_equality s.class, subject_class
44
+ assert_equality s.text, "I LOVE RUBY"
45
+ assert_equality s.fore, [255, 255, 255]
46
+ assert_equality s.back, nil
47
+ assert_equality s.bold, true
48
+ assert_equality s.italic, true
49
+ assert_equality s.underlined, true
50
+ assert_equality s.to_s, "\e[1m\e[3m\e[4m\e[38;2;255;255;255mI LOVE RUBY\e[0m"
51
+
52
+ s = subject_class.new "I LOVE RUBY", :b, :i, :u, :red
53
+ assert_equality s.class, subject_class
54
+ assert_equality s.text, "I LOVE RUBY"
55
+ assert_equality s.fore, [204, 0, 0]
56
+ assert_equality s.back, nil
57
+ assert_equality s.to_s, "\e[1m\e[3m\e[4m\e[38;2;204;0;0mI LOVE RUBY\e[0m"
58
+
59
+ s = subject_class.new "I LOVE RUBY", :b, :i, :u, :red, :white
60
+ assert_equality s.class, subject_class
61
+ assert_equality s.text, "I LOVE RUBY"
62
+ assert_equality s.fore, [204, 0, 0]
63
+ assert_equality s.back, [248, 248, 248]
64
+ assert_equality s.to_s, "\e[1m\e[3m\e[4m\e[38;2;204;0;0m\e[48;2;248;248;248mI LOVE RUBY\e[0m"
65
+
66
+ s = subject_class.new "I LOVE RUBY", :b, :i, :u, 0xff9900, :white
67
+ assert_equality s.class, subject_class
68
+ assert_equality s.text, "I LOVE RUBY"
69
+ assert_equality s.fore, [255, 153, 0]
70
+ assert_equality s.back, [248, 248, 248]
71
+ assert_equality s.to_s, "\e[1m\e[3m\e[4m\e[38;2;255;153;0m\e[48;2;248;248;248mI LOVE RUBY\e[0m"
72
+
73
+ s = subject_class.new "I LOVE RUBY", :b, :i, :u, "#ff9900", :white
74
+ assert_equality s.class, subject_class
75
+ assert_equality s.text, "I LOVE RUBY"
76
+ assert_equality s.fore, [255, 153, 0]
77
+ assert_equality s.back, [248, 248, 248]
78
+ assert_equality s.to_s, "\e[1m\e[3m\e[4m\e[38;2;255;153;0m\e[48;2;248;248;248mI LOVE RUBY\e[0m"
79
+
80
+ s = subject_class.new "I LOVE RUBY", :b, :i, :u, "ff9900", :white
81
+ assert_equality s.class, subject_class
82
+ assert_equality s.text, "I LOVE RUBY"
83
+ assert_equality s.fore, [255, 153, 0]
84
+ assert_equality s.back, [248, 248, 248]
85
+ assert_equality s.to_s, "\e[1m\e[3m\e[4m\e[38;2;255;153;0m\e[48;2;248;248;248mI LOVE RUBY\e[0m"
86
+ end
87
+
88
+ end
@@ -0,0 +1,27 @@
1
+ class DevSystem::ConvertCommand < DevSystem::SimpleCommand
2
+
3
+ # liza convert FORMAT FILENAME
4
+
5
+ def call_default
6
+ args = env[:args]
7
+ log :lower, "args = #{args.inspect}"
8
+
9
+ raise ArgumentError, "args[0] must be present" unless args[0]
10
+
11
+ format = args[0].to_sym
12
+ raise ArgumentError, "converter #{format.inspect} not found" unless DevBox.convert? format
13
+
14
+ fname = args[1]
15
+ raise ArgumentError, "fname must be present" unless FileShell.file? fname
16
+
17
+ content = TextShell.read fname
18
+
19
+ to_format = DevBox.converters[format][:to]
20
+ fname = "#{fname}.#{to_format}"
21
+ content = DevBox.convert format, content
22
+
23
+ TextShell.write fname, content
24
+ end
25
+
26
+
27
+ end
@@ -0,0 +1,10 @@
1
+ class DevSystem::ConvertCommandTest < DevSystem::SimpleCommandTest
2
+
3
+ #
4
+
5
+ test :subject_class, :subject do
6
+ assert_equality DevSystem::ConvertCommand, subject_class
7
+ assert_equality DevSystem::ConvertCommand, subject.class
8
+ end
9
+
10
+ end
@@ -0,0 +1,25 @@
1
+ class DevSystem::FormatCommand < DevSystem::SimpleCommand
2
+
3
+ # liza format FORMAT FILENAME
4
+
5
+ def call_default
6
+ args = env[:args]
7
+ log :lower, "args = #{args.inspect}"
8
+
9
+ raise ArgumentError, "args[0] must be present" unless args[0]
10
+
11
+ format = args[0].to_sym
12
+ raise ArgumentError, "formatter #{format.inspect} not found" unless DevBox.format? format
13
+
14
+ fname = args[1]
15
+ raise ArgumentError, "fname must be present" unless FileShell.file? fname
16
+
17
+ content = TextShell.read fname
18
+
19
+ fname = "#{fname}.#{format}"
20
+ content = DevBox.format format, content
21
+
22
+ TextShell.write fname, content
23
+ end
24
+
25
+ end
@@ -0,0 +1,10 @@
1
+ class DevSystem::FormatCommandTest < DevSystem::SimpleCommandTest
2
+
3
+ #
4
+
5
+ test :subject_class, :subject do
6
+ assert_equality DevSystem::FormatCommand, subject_class
7
+ assert_equality DevSystem::FormatCommand, subject.class
8
+ end
9
+
10
+ end
@@ -0,0 +1,211 @@
1
+ # LocCommand is a custom LinesOfCode script using gem coderay
2
+
3
+ class DevSystem::LocCommand < DevSystem::SimpleCommand
4
+
5
+ # liza loc
6
+
7
+ def call_default
8
+ log "LINES OF CODE"
9
+ puts
10
+ log "TODO: write filters"
11
+ puts
12
+
13
+ print_top_level
14
+ print_liza
15
+ print_systems
16
+ print_app
17
+ end
18
+
19
+ # sub-methods
20
+
21
+ def print_top_level
22
+ start_total
23
+ h1 "TOP LEVEL CONSTANTS OWNED BY LIZA"
24
+ h5 "lib/"
25
+ AppShell.consts[:top_level].each { print_class _1 }
26
+ print_total
27
+ puts
28
+ end
29
+
30
+ def print_liza
31
+ start_total
32
+ h1 "LIZA NAMESPACE"
33
+ h4 Liza
34
+ AppShell.consts[:liza].each do |category, klasses|
35
+ start_subtotal
36
+ h5 "lib/liza/#{category}/"
37
+ klasses.each { print_class _1 }
38
+ print_subtotal
39
+ end
40
+ print_total
41
+ puts
42
+ end
43
+
44
+ def print_systems
45
+ h1 "SYSTEMS"
46
+ AppShell.consts[:systems].each do |system_name, tree_system|
47
+ start_total
48
+ start_subtotal
49
+ system = tree_system["system"][0]
50
+
51
+ h4 system
52
+ h5 "lib/#{system_name}_system/", color: system.color
53
+
54
+ tree_system["system"].each { print_class _1 }
55
+ tree_system["box"].each { print_class _1 }
56
+ print_subtotal
57
+
58
+ if tree_system["controllers"].any?
59
+ start_subtotal
60
+ h3 "controllers"
61
+ tree_system["controllers"].each do |family, klasses|
62
+ h5 "lib/#{system_name}_system/#{family.plural}/", color: system.color
63
+ klasses.each { print_class _1 }
64
+ end
65
+ print_subtotal
66
+ end
67
+
68
+ h3 "subsystems" if tree_system["subsystems"].any?
69
+ print_system_sub system, system_name, tree_system
70
+
71
+ print_total
72
+ end
73
+ puts
74
+ end
75
+
76
+ def print_system_sub system, system_name, tree_system
77
+ tree_system["subsystems"].each do |subsystem, tree_subsystem|
78
+ h4 subsystem
79
+ h5 "lib/#{system_name}_system/sub/#{subsystem.singular}/", color: system.color
80
+
81
+ tree_subsystem["panel"].each { print_class _1 }
82
+ tree_subsystem["controller"].each { print_class _1 }
83
+ tree_subsystem["controllers"].each do |controller_class, klasses|
84
+ start_subtotal
85
+ h5 "lib/#{system_name}_system/sub/#{subsystem.singular}/#{controller_class.plural}/", color: system.color
86
+ klasses.each { print_class _1 }
87
+ print_subtotal
88
+ end
89
+ end
90
+ end
91
+
92
+ def print_app
93
+ if App.global?
94
+ h1 "TOP LEVEL CONSTANTS"
95
+ else
96
+ h1 "TOP LEVEL CONSTANTS OWNED BY THE TEAM"
97
+ end
98
+ start_total
99
+ AppShell.consts[:app].each do |system_name, tree_system|
100
+
101
+ system = Liza.const "#{system_name}_system"
102
+ h5 "app/#{system_name}_box.rb", color: system.color
103
+
104
+ tree_system["box"].each { print_class _1 }
105
+
106
+ tree_system["controllers"].each do |family, structure|
107
+ start_subtotal
108
+ structure.each do |division, klasses|
109
+ h5 "app/#{system_name}/#{division.plural}/", color: system.color
110
+ klasses.each { print_class _1 }
111
+ end
112
+ print_subtotal
113
+ end
114
+ end
115
+ print_total
116
+ end
117
+
118
+ # typography helpers
119
+
120
+ def h1 text
121
+ puts stick " #{ text } ".center(80, "="), :b
122
+ end
123
+
124
+ def h2 text, color: :white
125
+ puts stick " #{ text } ".center(80, "-"), :b, color
126
+ end
127
+
128
+ def h3 text, color: :white
129
+ puts
130
+ puts stick " #{ text } ".center(80, " "), :b, color
131
+ end
132
+
133
+ def h4 system
134
+ puts
135
+ s = system.to_s
136
+ s1 = s
137
+ s1 = "#{ color(system) }" if system < Liza::Unit
138
+ color = system.color rescue :white
139
+ t = s.rjust(80, " ")
140
+ t = "#{ stick t, :b, color }"
141
+ t = t.gsub(s, s1)
142
+ puts t
143
+ end
144
+
145
+ def h5 text, color: :white
146
+ puts
147
+ puts stick text.ljust(80, " "), color
148
+ end
149
+
150
+ # color helpers
151
+
152
+ def color klass
153
+ return klass unless klass < Liza::Unit
154
+
155
+ namespace, _sep, classname = klass.to_s.rpartition('::')
156
+
157
+ if namespace.empty?
158
+ return stick classname, Liza.const(classname).system.color
159
+ end
160
+
161
+ "#{
162
+ stick namespace, Liza.const(namespace).system.color
163
+ }::#{
164
+ stick classname, Liza.const(classname).color
165
+ }"
166
+ end
167
+
168
+ # total helpers
169
+
170
+ def start_total
171
+ @total_loc = 0
172
+ end
173
+
174
+ def start_subtotal
175
+ @subtotal_loc = 0
176
+ end
177
+
178
+ def print_subtotal
179
+ puts stick :b, :silver, "#{@subtotal_loc.to_s.rjust 5} TOTAL-ISH"
180
+ puts
181
+ end
182
+
183
+ def print_total
184
+ puts stick :b, :silver, "#{@total_loc.to_s.rjust 5} TOTAL"
185
+ end
186
+
187
+ # class helpers
188
+
189
+ def print_class klass
190
+ text, loc = read_loc klass
191
+
192
+ @total_loc += loc
193
+ @subtotal_loc += loc if defined? @subtotal_loc
194
+
195
+ puts "#{loc.to_s.rjust 5} LINES #{ (color klass) rescue klass }"
196
+ end
197
+
198
+ # loc helpers
199
+
200
+ def read_loc(klass)
201
+ require "coderay"
202
+
203
+ fname = klass.source_location[0]
204
+ fname = fname.sub "/version", "" if klass == Lizarb # this is a hack :)
205
+ text = TextShell.read(fname, log_level: :lower)
206
+ loc = CodeRay.scan(text, :ruby).loc
207
+
208
+ [text, loc]
209
+ end
210
+
211
+ end
@@ -0,0 +1,10 @@
1
+ class DevSystem::LocCommandTest < DevSystem::SimpleCommandTest
2
+
3
+ #
4
+
5
+ test :subject_class, :subject do
6
+ assert_equality DevSystem::LocCommand, subject_class
7
+ assert_equality DevSystem::LocCommand, subject.class
8
+ end
9
+
10
+ end
@@ -0,0 +1,45 @@
1
+ class DevSystem::ShellCommand < DevSystem::Command
2
+
3
+ def call args
4
+ puts
5
+ puts "Liza #{ Liza.source_location[0] }"
6
+ puts "App.folder #{ App.folder }"
7
+ puts "App.root #{ App.root }/"
8
+ puts "App.path #{ App.path }/"
9
+ puts
10
+
11
+ largest_system_name = AppShell.consts[:systems].keys.map(&:to_s).map(&:size).max
12
+
13
+ AppShell.consts[:systems].each do |system_name, tree_system|
14
+ system = tree_system["system"][0]
15
+ length = largest_system_name + 6
16
+
17
+ puts "#{
18
+ "#{system.to_s}"
19
+ .ljust(length)
20
+ .sub(system.to_s, color(system).to_s)
21
+ } #{ system.source_location[0] }"
22
+ end
23
+
24
+ puts
25
+ end
26
+
27
+ # color helpers
28
+
29
+ def color klass
30
+ return klass unless klass < Liza::Unit
31
+
32
+ namespace, _sep, classname = klass.to_s.rpartition('::')
33
+
34
+ if namespace.empty?
35
+ return stick classname, Liza.const(classname).system.color
36
+ end
37
+
38
+ "#{
39
+ stick namespace, Liza.const(namespace).system.color
40
+ }::#{
41
+ stick classname, Liza.const(classname).color
42
+ }"
43
+ end
44
+
45
+ end
@@ -0,0 +1,11 @@
1
+ class DevSystem::ShellCommandTest < DevSystem::CommandTest
2
+
3
+ test :subject_class do
4
+ assert subject_class == DevSystem::ShellCommand
5
+ end
6
+
7
+ test :settings do
8
+ assert_equality subject_class.log_level, 0
9
+ end
10
+
11
+ end
@@ -0,0 +1,21 @@
1
+ class DevSystem::CoffeeConverterShell < DevSystem::ConverterShell
2
+
3
+ def self.default_options
4
+ DevBox[:shell].converters[:coffee][:options]
5
+ end
6
+
7
+ # https://github.com/rails/ruby-coffee-script
8
+
9
+ def self.convert string, options = {}
10
+ log :lower, "default_options = #{default_options.inspect} | options = #{options.inspect}"
11
+
12
+ options = default_options.merge options if options.any? && default_options.any?
13
+
14
+ log :lower, "#{string.size} chars (options: #{options.inspect})"
15
+
16
+ require "coffee-script"
17
+
18
+ CoffeeScript.compile string
19
+ end
20
+
21
+ end