lizarb 1.0.4 → 1.0.6
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.
- checksums.yaml +4 -4
- data/.env +0 -0
- data/.tool-versions +2 -1
- data/Gemfile +48 -10
- data/Gemfile.lock +235 -29
- data/LICENSE.txt +1 -1
- data/README.md +72 -16
- data/Rakefile +2 -2
- data/app/dev/commands/color_command.rb +29 -0
- data/app/dev/commands/color_command_test.rb +10 -0
- data/app/dev/commands/stick_command.rb +102 -0
- data/app/dev/commands/stick_command_test.rb +8 -0
- data/app/dev_box.rb +31 -17
- data/app/eco_box.rb +5 -0
- data/app/happy_box.rb +3 -2
- data/app/net/databases/redis_db.rb +1 -1
- data/app/net/databases/redis_db_test.rb +5 -5
- data/app/net/databases/sqlite_db.rb +1 -1
- data/app/net/databases/sqlite_db_test.rb +5 -5
- data/app/net/records/app_record.rb +1 -1
- data/app/net/records/app_record_test.rb +1 -1
- data/app/net/records/post_record_test.rb +1 -1
- data/app/net/records/user_record_test.rb +1 -1
- data/app/net_box.rb +36 -11
- data/app/prime_box.rb +9 -0
- data/app/web/requests/api_request.rb +2 -0
- data/app/web/requests/app_request.rb +1 -1
- data/app/web/requests/app_request_test.rb +1 -1
- data/app/web/requests/assets_request.rb +1 -0
- data/app/web/requests/foo_request.rb +26 -0
- data/app/web/requests/foo_request_test.rb +7 -0
- data/app/web/requests/logo_request.rb +12 -0
- data/app/web/requests/logo_request.rb.index.html.erb +7 -0
- data/app/web/requests/logo_request_test.rb +10 -0
- data/app/web/requests/root_request.rb +1 -0
- data/app/web_box.rb +14 -8
- data/app.rb +38 -7
- data/app_global.gemfile.rb +8 -1
- data/app_global.gemfile.rb.lock +35 -10
- data/app_global.rb +3 -0
- data/{app_new → examples/bench/app}/dev/benches/loops_bench.rb +10 -3
- data/examples/bench/app/dev/benches/loops_bench_test.rb +7 -0
- data/examples/bench/app/dev/benches/objects_bench.rb +48 -0
- data/{app_new → examples/bench/app}/dev/benches/objects_bench_test.rb +0 -5
- data/{app_new → examples/bench/app}/dev/benches/sorted_bench.rb +33 -15
- data/examples/bench/app/dev/benches/sorted_bench_test.rb +7 -0
- data/{app_new → examples/bench/app}/dev/benches/variables_bench.rb +8 -2
- data/{app_new → examples/bench/app}/dev/benches/variables_bench_test.rb +0 -5
- data/examples/client/app/net/clients/news_client.rb +42 -0
- data/examples/client/app/net/clients/news_client_test.rb +24 -0
- data/{app_new → examples/command/app}/dev/commands/calculator_command.rb +5 -5
- data/{app_new → examples/command/app}/dev/commands/calculator_command_test.rb +0 -5
- data/{app_new → examples/command/app}/dev/commands/circle_command.rb +5 -5
- data/{app_new → examples/command/app}/dev/commands/circle_command_test.rb +0 -5
- data/{app_new → examples/command/app}/dev/commands/narrative_method_command.rb +4 -13
- data/{app_new → examples/command/app}/dev/commands/narrative_method_command_test.rb +1 -6
- data/{app_new → examples/command/app}/dev/commands/quadratic_command.rb +5 -5
- data/{app_new → examples/command/app}/dev/commands/quadratic_command_test.rb +0 -5
- data/examples/command/app/dev_box.rb +3 -0
- data/examples/log/app/dev/handler_logs/logger_handler_log.rb +9 -0
- data/examples/log/app/dev/handler_logs/logger_handler_log_test.rb +15 -0
- data/examples/new/app/dev_box.rb +45 -0
- data/examples/new/app.rb +37 -0
- data/examples/shell/app/dev/shells/bash_adapter_shell.rb +25 -0
- data/examples/shell/app/dev/shells/bash_adapter_shell_test.rb +19 -0
- data/examples/shell/app/dev/shells/business_logic_shell.rb +42 -0
- data/examples/shell/app/dev/shells/business_logic_shell_test.rb +35 -0
- data/examples/shell/app/dev/shells/gem_adapter_shell.rb +33 -0
- data/examples/shell/app/dev/shells/gem_adapter_shell_test.rb +19 -0
- data/exe/liza +4 -1
- data/exe/lizarb +4 -14
- data/gemfiles/gemfile.3.1.rb +1 -0
- data/gemfiles/gemfile.3.1.rb.lock +261 -0
- data/gemfiles/gemfile.3.2.rb +1 -0
- data/gemfiles/gemfile.3.2.rb.lock +261 -0
- data/gemfiles/gemfile.3.3.rb +1 -0
- data/gemfiles/gemfile.3.3.rb.lock +261 -0
- data/gemfiles/gemfile.3.4.rb +1 -0
- data/gemfiles/gemfile.3.4.rb.lock +243 -0
- data/gemfiles/gemfile.jruby-9.4.rb +3 -0
- data/gemfiles/gemfile.jruby-9.4.rb.lock +139 -0
- data/lib/app.rb +160 -74
- data/lib/art_system/art_box.rb +5 -0
- data/lib/art_system/art_box_test.rb +8 -0
- data/lib/art_system/art_system_test.rb +3 -0
- data/lib/art_system/commands/chatgpt_command.rb +91 -0
- data/lib/art_system/commands/chatgpt_command_test.rb +10 -0
- data/lib/art_system/commands/deepseek_command.rb +58 -0
- data/lib/art_system/commands/deepseek_command_test.rb +10 -0
- data/lib/art_system/commands/ollama_command.rb +69 -0
- data/lib/art_system/commands/ollama_command_test.rb +10 -0
- data/lib/art_system/gem_shells/ruby_openai_gem_shell.rb +32 -0
- data/lib/art_system/gem_shells/ruby_openai_gem_shell_test.rb +10 -0
- data/lib/art_system/shells/deepseek_shell.rb +15 -0
- data/lib/art_system/shells/deepseek_shell_test.rb +10 -0
- data/lib/art_system/shells/ollama_shell.rb +12 -0
- data/lib/art_system/shells/ollama_shell_test.rb +10 -0
- data/lib/art_system/shells/openai_shell.rb +13 -0
- data/lib/art_system/shells/openai_shell_test.rb +10 -0
- data/lib/art_system.rb +8 -0
- data/lib/crypto_system/crypto_box.rb +5 -0
- data/lib/crypto_system/crypto_box_test.rb +8 -0
- data/lib/crypto_system/crypto_system_test.rb +3 -0
- data/lib/crypto_system/gem_shells/digest_md5_gem_shell.rb +15 -0
- data/lib/crypto_system/gem_shells/digest_md5_gem_shell_test.rb +25 -0
- data/lib/crypto_system.rb +8 -0
- data/lib/deep_system/deep_box.rb +5 -0
- data/lib/deep_system/deep_box_test.rb +8 -0
- data/lib/deep_system/deep_system_test.rb +3 -0
- data/lib/deep_system.rb +8 -0
- data/lib/desk_system/commands/glimmer_command.rb +27 -0
- data/lib/desk_system/commands/glimmer_command_test.rb +10 -0
- data/lib/desk_system/desk_box.rb +5 -0
- data/lib/desk_system/desk_box_test.rb +8 -0
- data/lib/desk_system/desk_system_test.rb +3 -0
- data/lib/desk_system.rb +8 -0
- data/lib/dev_system/commands/test_command.rb +152 -0
- data/lib/dev_system/commands/test_command_test.rb +8 -0
- data/lib/dev_system/dev_box.rb +38 -0
- data/lib/dev_system/dev_box_test.rb +32 -0
- data/lib/dev_system/dev_system_test.rb +3 -0
- data/lib/dev_system/generators/boxes_generator.rb +24 -0
- data/lib/dev_system/generators/boxes_generator_test.rb +12 -0
- data/lib/dev_system/generators/envfile_generator.rb +80 -0
- data/lib/dev_system/generators/envfile_generator_test.rb +14 -0
- data/lib/dev_system/generators/gemfile_generator.rb +57 -0
- data/lib/dev_system/generators/gemfile_generator_test.rb +11 -0
- data/lib/dev_system/generators/subsystem_generator.default.rb.erb +2 -0
- data/lib/dev_system/generators/subsystem_generator.rb +187 -0
- data/lib/dev_system/generators/subsystem_generator.rb.section_controller.rb.erb +8 -0
- data/lib/dev_system/generators/subsystem_generator.rb.section_controller_test.rb.erb +18 -0
- data/lib/dev_system/generators/subsystem_generator.rb.section_panel.rb.erb +19 -0
- data/lib/dev_system/generators/subsystem_generator.rb.section_panel_test.rb.erb +18 -0
- data/lib/dev_system/generators/subsystem_generator_test.rb +17 -0
- data/lib/dev_system/generators/system_generator.rb +117 -0
- data/lib/dev_system/generators/system_generator.rb.gemspec.rb.erb +36 -0
- data/lib/dev_system/generators/system_generator.rb.section_app_box_settings.rb.erb +4 -0
- data/lib/dev_system/generators/system_generator.rb.section_system_box_settings.rb.erb +4 -0
- data/lib/dev_system/generators/system_generator.rb.section_system_box_test.rb.erb +12 -0
- data/lib/dev_system/generators/system_generator.rb.section_system_default.rb.erb +3 -0
- data/lib/dev_system/generators/system_generator.rb.section_system_info.rb.erb +3 -0
- data/lib/dev_system/generators/system_generator.rb.system_test.rb.erb +5 -0
- data/lib/dev_system/generators/system_generator.rb.unit.rb.erb +7 -0
- data/lib/dev_system/generators/system_generator_test.rb +18 -0
- data/lib/dev_system/shells/unit_shell.rb +40 -0
- data/lib/dev_system/shells/unit_shell_test.rb +24 -0
- data/lib/dev_system/shells/zeitwerk_shell.rb +94 -0
- data/lib/dev_system/shells/zeitwerk_shell_test.rb +14 -0
- data/lib/dev_system/subsystems/bench/bench.rb +9 -0
- data/lib/dev_system/subsystems/bench/bench_panel.rb +31 -0
- data/lib/dev_system/subsystems/bench/bench_panel_test.rb +55 -0
- data/lib/dev_system/subsystems/bench/bench_test.rb +22 -0
- data/lib/dev_system/subsystems/bench/benches/not_found_bench.rb +73 -0
- data/lib/dev_system/subsystems/bench/benches/not_found_bench_test.rb +7 -0
- data/lib/dev_system/subsystems/bench/commands/bench_command.rb +21 -0
- data/lib/dev_system/subsystems/bench/commands/bench_command_test.rb +7 -0
- data/lib/dev_system/subsystems/bench/generators/bench_generator.rb +34 -0
- data/lib/dev_system/subsystems/bench/generators/bench_generator.rb.marks.rb.erb +18 -0
- data/lib/dev_system/subsystems/bench/generators/bench_generator.rb.setup.rb.erb +9 -0
- data/lib/dev_system/subsystems/bench/generators/bench_generator_test.rb +15 -0
- data/lib/dev_system/subsystems/command/command.rb +7 -0
- data/lib/dev_system/subsystems/command/command_panel.rb +30 -0
- data/lib/dev_system/subsystems/command/command_panel_test.rb +122 -0
- data/lib/dev_system/{dev/controllers → subsystems/command}/command_test.rb +3 -3
- data/lib/dev_system/subsystems/command/commands/base_command.rb +79 -0
- data/lib/dev_system/subsystems/command/commands/base_command_test.rb +7 -0
- data/lib/dev_system/subsystems/command/commands/irb_command.rb +20 -0
- data/lib/dev_system/subsystems/command/commands/irb_command_test.rb +7 -0
- data/lib/dev_system/subsystems/command/commands/not_found_command.rb +83 -0
- data/lib/dev_system/subsystems/command/commands/not_found_command_test.rb +7 -0
- data/lib/dev_system/subsystems/command/commands/pry_command.rb +10 -0
- data/lib/dev_system/subsystems/command/commands/pry_command_test.rb +7 -0
- data/lib/dev_system/subsystems/command/commands/simple_command.rb +433 -0
- data/lib/dev_system/subsystems/command/commands/simple_command_test.rb +153 -0
- data/lib/dev_system/subsystems/command/gem_shells/tty_prompt_gem_shell.rb +37 -0
- data/lib/dev_system/subsystems/command/gem_shells/tty_prompt_gem_shell_test.rb +10 -0
- data/lib/dev_system/subsystems/command/generators/command_generator.rb +73 -0
- data/lib/dev_system/subsystems/command/generators/command_generator.rb.section_base.rb.erb +10 -0
- data/lib/dev_system/subsystems/command/generators/command_generator.rb.section_simple_actions.rb.erb +21 -0
- data/lib/dev_system/subsystems/command/generators/command_generator.rb.section_simple_filters.rb.erb +25 -0
- data/lib/dev_system/subsystems/command/generators/command_generator.rb.view_simple.txt.erb +2 -0
- data/lib/dev_system/subsystems/command/generators/command_generator_test.rb +15 -0
- data/lib/dev_system/subsystems/command/parts/command_shortcut_part.rb +58 -0
- data/lib/dev_system/subsystems/command/parts/command_shortcut_part_test.rb +6 -0
- data/lib/dev_system/subsystems/command/shells/color_shell.rb +60 -0
- data/lib/dev_system/subsystems/command/shells/color_shell_test.rb +22 -0
- data/lib/dev_system/subsystems/command/shells/input_shell.rb +95 -0
- data/lib/dev_system/subsystems/command/shells/input_shell_test.rb +11 -0
- data/lib/dev_system/subsystems/command/shells/pallet_shell.rb +354 -0
- data/lib/dev_system/subsystems/command/shells/pallet_shell_test.rb +15 -0
- data/lib/dev_system/subsystems/command/shells/typography_shell.rb +33 -0
- data/lib/dev_system/subsystems/command/shells/typography_shell_test.rb +10 -0
- data/lib/dev_system/subsystems/generator/commands/generate_command.rb +46 -0
- data/lib/dev_system/subsystems/generator/commands/generate_command_test.rb +7 -0
- data/lib/dev_system/subsystems/generator/commands/new_command.rb +33 -0
- data/lib/dev_system/subsystems/generator/commands/new_command_test.rb +12 -0
- data/lib/dev_system/subsystems/generator/generator.rb +7 -0
- data/lib/dev_system/subsystems/generator/generator_panel.rb +51 -0
- data/lib/dev_system/subsystems/generator/generator_panel_test.rb +86 -0
- data/lib/dev_system/{dev/controllers → subsystems/generator}/generator_test.rb +3 -3
- data/lib/dev_system/subsystems/generator/generators/base_generator.rb +147 -0
- data/lib/dev_system/subsystems/generator/generators/base_generator_test.rb +10 -0
- data/lib/dev_system/subsystems/generator/generators/controller_generator.rb +210 -0
- data/lib/dev_system/subsystems/generator/generators/controller_generator.rb.unit.rb.erb +18 -0
- data/lib/dev_system/subsystems/generator/generators/controller_generator_test.rb +48 -0
- data/lib/dev_system/subsystems/generator/generators/generator_generator.rb +58 -0
- data/lib/dev_system/subsystems/generator/generators/generator_generator.rb.section_controller_actions.rb.erb +23 -0
- data/lib/dev_system/subsystems/generator/generators/generator_generator.rb.section_simple_actions.rb.erb +19 -0
- data/lib/dev_system/subsystems/generator/generators/generator_generator.rb.view_controller_actions.rb.erb +11 -0
- data/lib/dev_system/subsystems/generator/generators/generator_generator.rb.view_controller_views.txt.erb +2 -0
- data/lib/dev_system/subsystems/generator/generators/generator_generator.rb.view_simple.txt.erb +2 -0
- data/lib/dev_system/subsystems/generator/generators/generator_generator_test.rb +16 -0
- data/lib/dev_system/subsystems/generator/generators/install_generator.rb +9 -0
- data/lib/dev_system/subsystems/generator/generators/install_generator_test.rb +8 -0
- data/lib/dev_system/subsystems/generator/generators/move_generator.rb +9 -0
- data/lib/dev_system/subsystems/generator/generators/move_generator_test.rb +8 -0
- data/lib/dev_system/subsystems/generator/generators/new_generator.rb +162 -0
- data/lib/dev_system/subsystems/generator/generators/new_generator_test.rb +7 -0
- data/lib/dev_system/subsystems/generator/generators/not_found_generator.rb +87 -0
- data/lib/dev_system/subsystems/generator/generators/not_found_generator_test.rb +18 -0
- data/lib/dev_system/subsystems/generator/generators/overwrite_generator.rb +9 -0
- data/lib/dev_system/subsystems/generator/generators/overwrite_generator_test.rb +8 -0
- data/lib/dev_system/subsystems/generator/generators/remove_generator.rb +24 -0
- data/lib/dev_system/subsystems/generator/generators/remove_generator_test.rb +8 -0
- data/lib/dev_system/subsystems/generator/generators/simple_generator.rb +345 -0
- data/lib/dev_system/subsystems/generator/generators/simple_generator.rb.subject.rb.erb +9 -0
- data/lib/dev_system/subsystems/generator/generators/simple_generator.rb.unit.rb.erb +7 -0
- data/lib/dev_system/subsystems/generator/generators/simple_generator_test.rb +39 -0
- data/lib/dev_system/subsystems/generator/generators/uninstall_generator.rb +9 -0
- data/lib/dev_system/subsystems/generator/generators/uninstall_generator_test.rb +8 -0
- data/lib/dev_system/subsystems/log/commands/log_command.rb +52 -0
- data/lib/dev_system/subsystems/log/commands/log_command_test.rb +7 -0
- data/lib/dev_system/subsystems/log/generators/log_generator.rb +52 -0
- data/lib/dev_system/subsystems/log/generators/log_generator.rb.controller_section_1.rb.erb +7 -0
- data/lib/dev_system/subsystems/log/generators/log_generator.rb.controller_test_section_1.rb.erb +6 -0
- data/lib/dev_system/subsystems/log/generators/log_generator.rb.handler_section_1.rb.erb +8 -0
- data/lib/dev_system/subsystems/log/generators/log_generator.rb.handler_test_section_1.rb.erb +6 -0
- data/lib/dev_system/subsystems/log/generators/log_generator_test.rb +17 -0
- data/lib/dev_system/subsystems/log/handler_logs/color_output_handler_log.rb +57 -0
- data/lib/dev_system/subsystems/log/handler_logs/color_output_handler_log_test.rb +41 -0
- data/lib/dev_system/subsystems/log/handler_logs/handler_log.rb +5 -0
- data/lib/dev_system/subsystems/log/handler_logs/handler_log_test.rb +12 -0
- data/lib/dev_system/subsystems/log/handler_logs/none_handler_log.rb +8 -0
- data/lib/dev_system/subsystems/log/handler_logs/none_handler_log_test.rb +10 -0
- data/lib/dev_system/subsystems/log/handler_logs/output_handler_log.rb +57 -0
- data/lib/dev_system/subsystems/log/handler_logs/output_handler_log_test.rb +43 -0
- data/lib/dev_system/subsystems/log/log_panel.rb +108 -0
- data/lib/dev_system/subsystems/log/log_panel_test.rb +152 -0
- data/lib/dev_system/subsystems/log/log_test.rb +19 -0
- data/lib/dev_system/subsystems/log/logs/array_log.rb +20 -0
- data/lib/dev_system/subsystems/log/logs/array_log_test.rb +49 -0
- data/lib/dev_system/subsystems/log/logs/hash_log.rb +17 -0
- data/lib/dev_system/subsystems/log/logs/hash_log_test.rb +40 -0
- data/lib/dev_system/subsystems/log/logs/stick_log.rb +80 -0
- data/lib/dev_system/subsystems/log/logs/stick_log_log.rb +6 -0
- data/lib/dev_system/subsystems/log/logs/stick_log_log_test.rb +26 -0
- data/lib/dev_system/subsystems/log/logs/stick_log_test.rb +88 -0
- data/lib/dev_system/subsystems/shell/commands/shell_command.rb +340 -0
- data/lib/dev_system/subsystems/shell/commands/shell_command_test.rb +12 -0
- data/lib/dev_system/subsystems/shell/converter_shells/coffee_converter_shell.rb +20 -0
- data/lib/dev_system/subsystems/shell/converter_shells/coffee_converter_shell_test.rb +34 -0
- data/lib/dev_system/subsystems/shell/converter_shells/converter_shell.rb +27 -0
- data/lib/dev_system/subsystems/shell/converter_shells/converter_shell_test.rb +26 -0
- data/lib/dev_system/subsystems/shell/converter_shells/haml_converter_shell.rb +29 -0
- data/lib/dev_system/subsystems/shell/converter_shells/haml_converter_shell_test.rb +27 -0
- data/lib/dev_system/subsystems/shell/converter_shells/md_converter_shell.rb +20 -0
- data/lib/dev_system/subsystems/shell/converter_shells/md_converter_shell_test.rb +31 -0
- data/lib/dev_system/subsystems/shell/converter_shells/scss_converter_shell.rb +60 -0
- data/lib/dev_system/subsystems/shell/converter_shells/scss_converter_shell_test.rb +52 -0
- data/lib/dev_system/subsystems/shell/formatter_shells/formatter_shell.rb +30 -0
- data/lib/dev_system/subsystems/shell/formatter_shells/formatter_shell_test.rb +26 -0
- data/lib/dev_system/subsystems/shell/formatter_shells/html_formatter_shell.rb +19 -0
- data/lib/dev_system/subsystems/shell/formatter_shells/html_formatter_shell_test.rb +43 -0
- data/lib/dev_system/subsystems/shell/gem_shells/coderay_gem_shell.rb +33 -0
- data/lib/dev_system/subsystems/shell/gem_shells/coderay_gem_shell_test.rb +21 -0
- data/lib/dev_system/subsystems/shell/gem_shells/gem_shell.rb +4 -0
- data/lib/dev_system/subsystems/shell/gem_shells/gem_shell_test.rb +10 -0
- data/lib/dev_system/subsystems/shell/generators/shell_generator.rb +120 -0
- data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.actions.rb.erb +11 -0
- data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.converter.rb.erb +15 -0
- data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.formatter.rb.erb +15 -0
- data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.helpers.rb.erb +39 -0
- data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.instance.rb.erb +71 -0
- data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.renderer.rb.erb +15 -0
- data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.test.rb.erb +2 -0
- data/lib/dev_system/subsystems/shell/generators/shell_generator.rb.view_simple.txt.erb +2 -0
- data/lib/dev_system/subsystems/shell/generators/shell_generator_test.rb +21 -0
- data/lib/dev_system/subsystems/shell/renderer_shells/renderer_shell.rb +4 -0
- data/lib/dev_system/subsystems/shell/renderer_shells/renderer_shell_test.rb +10 -0
- data/lib/dev_system/{dev/controllers → subsystems/shell}/shell.rb +7 -2
- data/lib/dev_system/subsystems/shell/shell_panel.rb +87 -0
- data/lib/dev_system/subsystems/shell/shell_panel_test.rb +14 -0
- data/lib/dev_system/{dev/controllers → subsystems/shell}/shell_test.rb +6 -6
- data/lib/dev_system/subsystems/shell/shells/app_shell.rb +684 -0
- data/lib/dev_system/subsystems/shell/shells/app_shell_test.rb +113 -0
- data/lib/dev_system/{dev/controllers/shell → subsystems/shell/shells}/bin_shell_test.rb +0 -5
- data/lib/dev_system/subsystems/shell/shells/controller_shell.rb +87 -0
- data/lib/dev_system/subsystems/shell/shells/controller_shell_test.rb +33 -0
- data/lib/dev_system/subsystems/shell/shells/dir_shell.rb +27 -0
- data/lib/dev_system/{dev/controllers/shell → subsystems/shell/shells}/dir_shell_test.rb +0 -8
- data/lib/dev_system/subsystems/shell/shells/env_shell.rb +19 -0
- data/lib/dev_system/subsystems/shell/shells/env_shell_test.rb +27 -0
- data/lib/dev_system/subsystems/shell/shells/erb_shell.rb +168 -0
- data/lib/dev_system/subsystems/shell/shells/erb_shell_test.rb +10 -0
- data/lib/dev_system/subsystems/shell/shells/file_shell.rb +130 -0
- data/lib/dev_system/{dev/controllers/shell → subsystems/shell/shells}/file_shell_test.rb +3 -7
- data/lib/dev_system/subsystems/shell/shells/gemspec_shell.rb +21 -0
- data/lib/dev_system/subsystems/shell/shells/gemspec_shell_test.rb +28 -0
- data/lib/dev_system/subsystems/shell/shells/kernel_shell.rb +26 -0
- data/lib/dev_system/subsystems/shell/shells/kernel_shell_test.rb +10 -0
- data/lib/dev_system/subsystems/shell/shells/line_diff_shell.rb +27 -0
- data/lib/dev_system/subsystems/shell/shells/line_diff_shell_test.rb +7 -0
- data/lib/dev_system/subsystems/shell/shells/line_shell.rb +104 -0
- data/lib/dev_system/subsystems/shell/shells/line_shell_test.rb +102 -0
- data/lib/dev_system/subsystems/shell/shells/main_shell.rb +29 -0
- data/lib/dev_system/subsystems/shell/shells/main_shell_test.rb +10 -0
- data/lib/dev_system/subsystems/shell/shells/method_shell.rb +52 -0
- data/lib/dev_system/subsystems/shell/shells/method_shell_test.rb +30 -0
- data/lib/dev_system/subsystems/shell/shells/signal_shell.rb +53 -0
- data/lib/dev_system/subsystems/shell/shells/signal_shell_test.rb +28 -0
- data/lib/dev_system/subsystems/shell/shells/text_file_shell.rb +14 -0
- data/lib/dev_system/subsystems/shell/shells/text_file_shell_test.rb +7 -0
- data/lib/dev_system/subsystems/shell/shells/text_shell.rb +65 -0
- data/lib/dev_system/{dev/controllers/shell → subsystems/shell/shells}/text_shell_test.rb +0 -5
- data/lib/dev_system/subsystems/shell/soft_shells/soft_shell.rb +4 -0
- data/lib/dev_system/subsystems/shell/soft_shells/soft_shell_test.rb +10 -0
- data/lib/dev_system/subsystems/shell/view_shells/logo_view_shell.rb +12 -0
- data/lib/dev_system/subsystems/shell/view_shells/logo_view_shell.rb.svg.erb +59 -0
- data/lib/dev_system/subsystems/shell/view_shells/logo_view_shell_test.rb +15 -0
- data/lib/dev_system/subsystems/shell/view_shells/view_shell.rb +5 -0
- data/lib/dev_system/subsystems/shell/view_shells/view_shell_test.rb +10 -0
- data/lib/dev_system.rb +8 -2
- data/lib/eco_system/eco_box.rb +5 -0
- data/lib/eco_system/eco_box_test.rb +16 -0
- data/lib/eco_system/eco_system_test.rb +9 -0
- data/lib/eco_system.rb +11 -0
- data/lib/happy_system/happy_box.rb +9 -0
- data/lib/happy_system/happy_box_test.rb +20 -0
- data/lib/happy_system/happy_system_test.rb +3 -0
- data/lib/happy_system/subsystems/axo/axo.rb +11 -0
- data/lib/happy_system/subsystems/axo/axo_panel.rb +9 -0
- data/lib/happy_system/subsystems/axo/axo_panel_test.rb +12 -0
- data/lib/happy_system/subsystems/axo/axo_test.rb +12 -0
- data/lib/happy_system/subsystems/axo/commands/axo_command.rb +41 -0
- data/lib/happy_system/subsystems/axo/commands/axo_command_test.rb +8 -0
- data/lib/happy_system/subsystems/axo/generators/axo_generator.rb +17 -0
- data/lib/happy_system/subsystems/axo/generators/axo_generator.rb.controller.rb.erb +49 -0
- data/lib/happy_system/subsystems/axo/generators/axo_generator_test.rb +12 -0
- data/lib/happy_system.rb +4 -2
- data/lib/lab_system/clients/kroki_client.rb +135 -0
- data/lib/lab_system/clients/kroki_client_test.rb +28 -0
- data/lib/lab_system/clients/liza_kroki_client.rb +176 -0
- data/lib/lab_system/clients/liza_kroki_client_test.rb +28 -0
- data/lib/lab_system/commands/docker_command.rb +67 -0
- data/lib/lab_system/commands/docker_command_test.rb +7 -0
- data/lib/lab_system/lab_box.rb +5 -0
- data/lib/lab_system/lab_box_test.rb +8 -0
- data/lib/lab_system/lab_system_test.rb +3 -0
- data/lib/lab_system/requests/kroki_request.rb +182 -0
- data/lib/lab_system/requests/kroki_request_test.rb +7 -0
- data/lib/lab_system/shells/docker_installer_shell.rb +69 -0
- data/lib/lab_system/shells/docker_installer_shell_test.rb +12 -0
- data/lib/lab_system/shells/kroki_docker_shell.rb +20 -0
- data/lib/lab_system/shells/kroki_docker_shell_test.rb +7 -0
- data/lib/lab_system/soft_shells/docker_soft_shell.rb +60 -0
- data/lib/lab_system/soft_shells/docker_soft_shell_test.rb +60 -0
- data/lib/lab_system.rb +8 -0
- data/lib/liza/extra_tests/app_test.rb +36 -0
- data/lib/liza/extra_tests/class_test.rb +26 -0
- data/lib/liza/extra_tests/liza_test.rb +7 -0
- data/lib/liza/extra_tests/lizarb_test.rb +20 -0
- data/lib/liza/extra_tests/module_test.rb +21 -0
- data/lib/liza/{ruby_test.rb → extra_tests/object_test.rb} +1 -1
- data/lib/liza/{ruby_tests → extra_tests}/string_test.rb +3 -1
- data/lib/liza/extra_tests/time_test.rb +19 -0
- data/lib/liza/helper_units/part.rb +25 -0
- data/lib/liza/helper_units/part_test.rb +26 -0
- data/lib/liza/helper_units/test.rb +940 -0
- data/lib/liza/{test → helper_units}/test_test.rb +71 -7
- data/lib/liza/subsystemic_units/controller.rb +221 -0
- data/lib/liza/subsystemic_units/controller_test.rb +62 -0
- data/lib/liza/subsystemic_units/panel.rb +86 -0
- data/lib/liza/subsystemic_units/panel_test.rb +22 -0
- data/lib/liza/systemic_units/box.rb +82 -0
- data/lib/liza/systemic_units/box_test.rb +36 -0
- data/lib/liza/systemic_units/system.rb +52 -0
- data/lib/liza/systemic_units/system_test.rb +14 -0
- data/lib/liza/unit.rb +627 -89
- data/lib/liza/unit_test.rb +105 -16
- data/lib/liza.rb +15 -11
- data/lib/lizarb/version.rb +1 -1
- data/lib/lizarb.rb +716 -149
- data/lib/media_system/media_box.rb +3 -0
- data/lib/media_system/media_box_test.rb +10 -0
- data/lib/media_system/media_system_test.rb +3 -0
- data/lib/media_system.rb +8 -0
- data/lib/micro_system/micro_box.rb +5 -0
- data/lib/micro_system/micro_box_test.rb +8 -0
- data/lib/micro_system/micro_system_test.rb +3 -0
- data/lib/micro_system.rb +8 -0
- data/lib/net_system/net_box.rb +50 -0
- data/lib/net_system/{net/net_box_test.rb → net_box_test.rb} +0 -5
- data/lib/net_system/net_system_test.rb +3 -0
- data/lib/net_system/{net/panels → subsystems/client}/client_panel_test.rb +0 -5
- data/lib/net_system/{net/controllers → subsystems/client}/client_test.rb +0 -5
- data/lib/net_system/subsystems/client/commands/client_command.rb +12 -0
- data/lib/net_system/subsystems/client/commands/client_command_test.rb +10 -0
- data/lib/net_system/subsystems/client/generators/client_generator.rb +22 -0
- data/lib/net_system/subsystems/client/generators/client_generator.rb.controller.rb.erb +41 -0
- data/lib/net_system/subsystems/client/generators/client_generator.rb.test.rb.erb +16 -0
- data/lib/net_system/subsystems/client/generators/client_generator_test.rb +15 -0
- data/lib/net_system/subsystems/database/clients/mongo_client.rb +47 -0
- data/lib/net_system/subsystems/database/clients/mongo_client_test.rb +20 -0
- data/lib/net_system/subsystems/database/clients/mysql_client.rb +34 -0
- data/lib/net_system/subsystems/database/clients/mysql_client_test.rb +23 -0
- data/lib/net_system/subsystems/database/clients/pgsql_client.rb +30 -0
- data/lib/net_system/subsystems/database/clients/pgsql_client_test.rb +25 -0
- data/lib/net_system/subsystems/database/clients/redis_client.rb +46 -0
- data/lib/net_system/{net/controllers/client → subsystems/database/clients}/redis_client_test.rb +2 -2
- data/lib/net_system/{net/controllers/client → subsystems/database/clients}/sqlite_client.rb +9 -2
- data/lib/net_system/{net/controllers/client → subsystems/database/clients}/sqlite_client_test.rb +2 -2
- data/lib/net_system/subsystems/database/commands/database_command.rb +23 -0
- data/lib/net_system/subsystems/database/commands/database_command_test.rb +7 -0
- data/lib/net_system/subsystems/database/database_panel.rb +3 -0
- data/lib/net_system/subsystems/database/database_panel_test.rb +12 -0
- data/lib/net_system/{net/controllers → subsystems/database}/database_test.rb +0 -5
- data/lib/net_system/subsystems/database/databases/mongo_db.rb +8 -0
- data/lib/net_system/subsystems/database/databases/mongo_db_test.rb +21 -0
- data/lib/net_system/subsystems/database/databases/mysql_db.rb +8 -0
- data/lib/net_system/subsystems/database/databases/mysql_db_test.rb +21 -0
- data/lib/net_system/subsystems/database/databases/pgsql_db.rb +8 -0
- data/lib/net_system/subsystems/database/databases/pgsql_db_test.rb +21 -0
- data/lib/net_system/{net/controllers/database → subsystems/database/databases}/redis_db_test.rb +1 -1
- data/lib/net_system/{net/controllers/database → subsystems/database/databases}/sqlite_db_test.rb +1 -1
- data/lib/net_system/subsystems/filebase/commands/filebase_command.rb +12 -0
- data/lib/net_system/subsystems/filebase/commands/filebase_command_test.rb +10 -0
- data/lib/net_system/subsystems/filebase/filebase.rb +12 -0
- data/lib/net_system/subsystems/filebase/filebase_panel.rb +23 -0
- data/lib/net_system/subsystems/filebase/filebase_panel_test.rb +22 -0
- data/lib/net_system/subsystems/filebase/filebase_test.rb +22 -0
- data/lib/net_system/subsystems/record/commands/record_command.rb +12 -0
- data/lib/net_system/subsystems/record/commands/record_command_test.rb +10 -0
- data/lib/net_system/subsystems/record/generators/record_generator.rb +35 -0
- data/lib/net_system/subsystems/record/generators/record_generator.rb.controller.rb.erb +4 -0
- data/lib/net_system/subsystems/record/generators/record_generator.rb.test.rb.erb +2 -0
- data/lib/net_system/subsystems/record/generators/record_generator_test.rb +13 -0
- data/lib/net_system/subsystems/record/record.rb +19 -0
- data/lib/net_system/subsystems/record/record_panel.rb +3 -0
- data/lib/net_system/subsystems/record/record_panel_test.rb +7 -0
- data/lib/net_system/subsystems/record/record_test.rb +11 -0
- data/lib/net_system/subsystems/socket/commands/socket_command.rb +12 -0
- data/lib/net_system/subsystems/socket/commands/socket_command_test.rb +10 -0
- data/lib/net_system/subsystems/socket/socket.rb +12 -0
- data/lib/net_system/subsystems/socket/socket_panel.rb +23 -0
- data/lib/net_system/subsystems/socket/socket_panel_test.rb +22 -0
- data/lib/net_system/subsystems/socket/socket_test.rb +22 -0
- data/lib/net_system.rb +11 -2
- data/lib/prime_system/prime_box.rb +9 -0
- data/lib/prime_system/prime_box_test.rb +16 -0
- data/lib/prime_system/prime_system_test.rb +9 -0
- data/lib/prime_system/subsystems/epic/commands/epic_command.rb +12 -0
- data/lib/prime_system/subsystems/epic/commands/epic_command_test.rb +10 -0
- data/lib/prime_system/subsystems/epic/epic.rb +12 -0
- data/lib/prime_system/subsystems/epic/epic_panel.rb +23 -0
- data/lib/prime_system/subsystems/epic/epic_panel_test.rb +22 -0
- data/lib/prime_system/subsystems/epic/epic_test.rb +22 -0
- data/lib/prime_system.rb +13 -0
- data/lib/web_system/{dev → subsystems/rack/commands}/rack_command.rb +11 -6
- data/lib/web_system/subsystems/rack/commands/rack_command_test.rb +7 -0
- data/lib/web_system/subsystems/rack/middle_racks/first_middle_rack.rb +8 -0
- data/lib/web_system/subsystems/rack/middle_racks/first_middle_rack_test.rb +7 -0
- data/lib/web_system/subsystems/rack/middle_racks/last_middle_rack.rb +3 -0
- data/lib/web_system/subsystems/rack/middle_racks/last_middle_rack_test.rb +7 -0
- data/lib/web_system/subsystems/rack/middle_racks/middle_rack.rb +18 -0
- data/lib/web_system/subsystems/rack/middle_racks/middle_rack_test.rb +7 -0
- data/lib/web_system/subsystems/rack/middle_racks/zeitwerk_middle_rack.rb +10 -0
- data/lib/web_system/subsystems/rack/middle_racks/zeitwerk_middle_rack_test.rb +7 -0
- data/lib/web_system/subsystems/rack/rack.rb +3 -0
- data/lib/web_system/subsystems/rack/rack_panel.rb +56 -0
- data/lib/web_system/subsystems/rack/rack_panel_test.rb +25 -0
- data/lib/web_system/{web/controllers → subsystems/rack}/rack_test.rb +0 -5
- data/lib/web_system/subsystems/rack/server_racks/agoo_server_rack.rb +54 -0
- data/lib/web_system/subsystems/rack/server_racks/agoo_server_rack_test.rb +7 -0
- data/lib/web_system/subsystems/rack/server_racks/falcon_server_rack.rb +47 -0
- data/lib/web_system/subsystems/rack/server_racks/falcon_server_rack_test.rb +7 -0
- data/lib/web_system/subsystems/rack/server_racks/iodine_server_rack.rb +48 -0
- data/lib/web_system/subsystems/rack/server_racks/iodine_server_rack_test.rb +7 -0
- data/lib/web_system/subsystems/rack/server_racks/puma_server_rack.rb +50 -0
- data/lib/web_system/subsystems/rack/server_racks/puma_server_rack_test.rb +7 -0
- data/lib/web_system/subsystems/rack/server_racks/server_rack.rb +3 -0
- data/lib/web_system/subsystems/rack/server_racks/server_rack_test.rb +7 -0
- data/lib/web_system/subsystems/rack/server_racks/thin_server_rack.rb +86 -0
- data/lib/web_system/subsystems/rack/server_racks/thin_server_rack_test.rb +7 -0
- data/lib/web_system/subsystems/request/commands/request_command.rb +114 -0
- data/lib/web_system/subsystems/request/commands/request_command_test.rb +7 -0
- data/lib/web_system/subsystems/request/generators/request_generator.rb +39 -0
- data/lib/web_system/subsystems/request/generators/request_generator.rb.base.rb.erb +14 -0
- data/lib/web_system/subsystems/request/generators/request_generator.rb.simple_actions.rb.erb +16 -0
- data/lib/web_system/subsystems/request/generators/request_generator.rb.simple_view.html.erb +9 -0
- data/lib/web_system/subsystems/request/generators/request_generator.rb.test.rb.erb +2 -0
- data/lib/web_system/subsystems/request/generators/request_generator_test.rb +15 -0
- data/lib/web_system/subsystems/request/request_panel.rb +75 -0
- data/lib/web_system/subsystems/request/request_panel_test.rb +82 -0
- data/lib/web_system/{web/controllers → subsystems/request}/request_test.rb +0 -5
- data/lib/web_system/{web/controllers/request → subsystems/request/requests}/client_error_request.rb +1 -0
- data/lib/web_system/{web/controllers/request → subsystems/request/requests}/not_found_request.rb +1 -0
- data/lib/web_system/{web/controllers/request → subsystems/request/requests}/server_error_request.rb +1 -0
- data/lib/web_system/subsystems/request/requests/simple_request.rb +102 -0
- data/lib/web_system/subsystems/request/requests/simple_request_test.rb +7 -0
- data/lib/web_system/subsystems/request/router_requests/router_request.rb +7 -0
- data/lib/web_system/subsystems/request/router_requests/router_request_test.rb +7 -0
- data/lib/web_system/subsystems/request/router_requests/simple_router_request.rb +27 -0
- data/lib/web_system/subsystems/request/router_requests/simple_router_request_test.rb +7 -0
- data/lib/web_system/web_box.rb +37 -0
- data/lib/web_system/{web/web_box_test.rb → web_box_test.rb} +0 -5
- data/lib/web_system/web_system_test.rb +3 -0
- data/lib/web_system.rb +9 -3
- data/lib/work_system/work_box.rb +5 -0
- data/lib/work_system/work_box_test.rb +8 -0
- data/lib/work_system/work_system_test.rb +3 -0
- data/lib/work_system.rb +8 -0
- data/lizarb.gemspec +7 -15
- metadata +498 -228
- data/app/happy/axos/axo.rb +0 -50
- data/app_new/dev/benches/loops_bench_test.rb +0 -12
- data/app_new/dev/benches/objects_bench.rb +0 -83
- data/app_new/dev/benches/sorted_bench_test.rb +0 -12
- data/app_new/dev_box.rb +0 -14
- data/app_new.rb +0 -15
- data/exe/lrb +0 -3
- data/lib/dev_system/dev/controllers/bench/not_found_bench.rb +0 -34
- data/lib/dev_system/dev/controllers/bench/not_found_bench_test.rb +0 -12
- data/lib/dev_system/dev/controllers/bench.rb +0 -3
- data/lib/dev_system/dev/controllers/bench_test.rb +0 -12
- data/lib/dev_system/dev/controllers/command/bench_command.rb +0 -31
- data/lib/dev_system/dev/controllers/command/bench_command_test.rb +0 -12
- data/lib/dev_system/dev/controllers/command/generate_command.rb +0 -9
- data/lib/dev_system/dev/controllers/command/generate_command_test.rb +0 -12
- data/lib/dev_system/dev/controllers/command/new_command.rb +0 -9
- data/lib/dev_system/dev/controllers/command/new_command_test.rb +0 -7
- data/lib/dev_system/dev/controllers/command/not_found_command.rb +0 -48
- data/lib/dev_system/dev/controllers/command/not_found_command_test.rb +0 -12
- data/lib/dev_system/dev/controllers/command/terminal_command.rb +0 -22
- data/lib/dev_system/dev/controllers/command/terminal_command_test.rb +0 -12
- data/lib/dev_system/dev/controllers/command/test_command.rb +0 -85
- data/lib/dev_system/dev/controllers/command/test_command_test.rb +0 -12
- data/lib/dev_system/dev/controllers/command.rb +0 -13
- data/lib/dev_system/dev/controllers/generator.rb +0 -9
- data/lib/dev_system/dev/controllers/generator_dsl_main_part.rb +0 -50
- data/lib/dev_system/dev/controllers/generators/bench_generator/controller.rb.erb +0 -23
- data/lib/dev_system/dev/controllers/generators/bench_generator/controller_test.rb.erb +0 -12
- data/lib/dev_system/dev/controllers/generators/bench_generator.rb +0 -12
- data/lib/dev_system/dev/controllers/generators/bench_generator_test.rb +0 -12
- data/lib/dev_system/dev/controllers/generators/command_generator/controller.rb.erb +0 -41
- data/lib/dev_system/dev/controllers/generators/command_generator/controller_test.rb.erb +0 -12
- data/lib/dev_system/dev/controllers/generators/command_generator.rb +0 -19
- data/lib/dev_system/dev/controllers/generators/command_generator_test.rb +0 -12
- data/lib/dev_system/dev/controllers/generators/controller_generator.rb +0 -97
- data/lib/dev_system/dev/controllers/generators/controller_generator_test.rb +0 -12
- data/lib/dev_system/dev/controllers/generators/generator_generator/generator.rb.erb +0 -18
- data/lib/dev_system/dev/controllers/generators/generator_generator/generator_test.rb.erb +0 -12
- data/lib/dev_system/dev/controllers/generators/generator_generator/template.rb.erb +0 -9
- data/lib/dev_system/dev/controllers/generators/generator_generator/template_test.rb.erb +0 -12
- data/lib/dev_system/dev/controllers/generators/generator_generator.rb +0 -30
- data/lib/dev_system/dev/controllers/generators/generator_generator_test.rb +0 -12
- data/lib/dev_system/dev/controllers/generators/new_generator.rb +0 -117
- data/lib/dev_system/dev/controllers/generators/new_generator_test.rb +0 -12
- data/lib/dev_system/dev/controllers/generators/not_found_generator.rb +0 -39
- data/lib/dev_system/dev/controllers/generators/not_found_generator_test.rb +0 -12
- data/lib/dev_system/dev/controllers/generators/record_generator.rb +0 -46
- data/lib/dev_system/dev/controllers/generators/record_generator_test.rb +0 -12
- data/lib/dev_system/dev/controllers/generators/request_generator.rb +0 -63
- data/lib/dev_system/dev/controllers/generators/request_generator_test.rb +0 -12
- data/lib/dev_system/dev/controllers/log_test.rb +0 -12
- data/lib/dev_system/dev/controllers/shell/dir_shell.rb +0 -27
- data/lib/dev_system/dev/controllers/shell/file_shell.rb +0 -59
- data/lib/dev_system/dev/controllers/shell/text_shell.rb +0 -23
- data/lib/dev_system/dev/controllers/terminal/irb_terminal.rb +0 -23
- data/lib/dev_system/dev/controllers/terminal/irb_terminal_test.rb +0 -12
- data/lib/dev_system/dev/controllers/terminal/pry_terminal.rb +0 -10
- data/lib/dev_system/dev/controllers/terminal/pry_terminal_test.rb +0 -12
- data/lib/dev_system/dev/controllers/terminal.rb +0 -17
- data/lib/dev_system/dev/controllers/terminal_test.rb +0 -12
- data/lib/dev_system/dev/dev_box.rb +0 -33
- data/lib/dev_system/dev/dev_box_test.rb +0 -17
- data/lib/dev_system/dev/panels/bench_panel.rb +0 -3
- data/lib/dev_system/dev/panels/bench_panel_test.rb +0 -12
- data/lib/dev_system/dev/panels/command_panel.rb +0 -71
- data/lib/dev_system/dev/panels/command_panel_test.rb +0 -46
- data/lib/dev_system/dev/panels/generator_panel.rb +0 -73
- data/lib/dev_system/dev/panels/generator_panel_test.rb +0 -46
- data/lib/dev_system/dev/panels/log_panel.rb +0 -13
- data/lib/dev_system/dev/panels/log_panel_test.rb +0 -16
- data/lib/dev_system/dev/panels/shell_panel.rb +0 -3
- data/lib/dev_system/dev/panels/shell_panel_test.rb +0 -12
- data/lib/dev_system/dev/panels/terminal_panel.rb +0 -3
- data/lib/dev_system/dev/panels/terminal_panel_test.rb +0 -12
- data/lib/happy_system/dev/happy_command.rb +0 -11
- data/lib/happy_system/happy/controllers/axo.rb +0 -7
- data/lib/happy_system/happy/happy_box.rb +0 -8
- data/lib/happy_system/happy/happy_box_test.rb +0 -16
- data/lib/happy_system/happy/panels/axo_panel.rb +0 -3
- data/lib/lerb.rb +0 -152
- data/lib/liza/base/box.rb +0 -90
- data/lib/liza/base/box_test.rb +0 -10
- data/lib/liza/base/controller.rb +0 -27
- data/lib/liza/base/controller_test.rb +0 -10
- data/lib/liza/base/panel.rb +0 -52
- data/lib/liza/base/panel_test.rb +0 -40
- data/lib/liza/base_parts/controller_renderer_part.rb +0 -140
- data/lib/liza/base_parts/controller_renderer_part_test.rb +0 -16
- data/lib/liza/meta/part.rb +0 -17
- data/lib/liza/meta/part_extension.rb +0 -16
- data/lib/liza/meta/part_test.rb +0 -6
- data/lib/liza/meta/system.rb +0 -18
- data/lib/liza/meta/system_test.rb +0 -11
- data/lib/liza/ruby_tests/module_test.rb +0 -21
- data/lib/liza/test/test.rb +0 -10
- data/lib/liza/test_parts/test_assertions_advanced_part.rb +0 -125
- data/lib/liza/test_parts/test_assertions_part.rb +0 -109
- data/lib/liza/test_parts/test_dsl_part.rb +0 -68
- data/lib/liza/test_parts/test_log_part.rb +0 -122
- data/lib/liza/test_parts/test_subject_part.rb +0 -22
- data/lib/liza/test_parts/test_tree_part.rb +0 -92
- data/lib/liza/unit_parts/unit_procedure_part.rb +0 -17
- data/lib/liza/unit_parts/unit_procedure_part_test.rb +0 -65
- data/lib/liza/unit_parts/unit_settings_part.rb +0 -76
- data/lib/liza/unit_parts/unit_settings_part_test.rb +0 -3
- data/lib/lizarb/ruby/class.rb +0 -17
- data/lib/lizarb/ruby/module.rb +0 -17
- data/lib/lizarb/ruby/proc.rb +0 -12
- data/lib/lizarb/ruby/string.rb +0 -33
- data/lib/lizarb/ruby/time.rb +0 -9
- data/lib/net_system/dev/net_command.rb +0 -22
- data/lib/net_system/net/controllers/client/redis_client.rb +0 -26
- data/lib/net_system/net/controllers/record.rb +0 -29
- data/lib/net_system/net/controllers/record_test.rb +0 -12
- data/lib/net_system/net/net_box.rb +0 -13
- data/lib/net_system/net/panels/database_panel.rb +0 -10
- data/lib/net_system/net/panels/database_panel_test.rb +0 -16
- data/lib/web_system/dev/request_command.rb +0 -129
- data/lib/web_system/dev/web_command.rb +0 -9
- data/lib/web_system/web/controllers/rack.rb +0 -6
- data/lib/web_system/web/panels/rack_panel.rb +0 -42
- data/lib/web_system/web/panels/rack_panel_test.rb +0 -12
- data/lib/web_system/web/panels/request_panel.rb +0 -70
- data/lib/web_system/web/panels/request_panel_test.rb +0 -33
- data/lib/web_system/web/web_box.rb +0 -18
- /data/lib/dev_system/{dev/controllers → subsystems/log}/log.rb +0 -0
- /data/lib/dev_system/{dev/controllers/shell → subsystems/shell/shells}/bin_shell.rb +0 -0
- /data/lib/net_system/{net/controllers → subsystems/client}/client.rb +0 -0
- /data/lib/net_system/{net/panels → subsystems/client}/client_panel.rb +0 -0
- /data/lib/net_system/{net/controllers → subsystems/database}/database.rb +0 -0
- /data/lib/net_system/{net/controllers/database → subsystems/database/databases}/redis_db.rb +0 -0
- /data/lib/net_system/{net/controllers/database → subsystems/database/databases}/sqlite_db.rb +0 -0
- /data/lib/web_system/{web/controllers → subsystems/request}/request.rb +0 -0
data/lib/lizarb.rb
CHANGED
@@ -1,43 +1,131 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require "pathname"
|
6
|
-
require "fileutils"
|
7
|
-
require "lerb"
|
3
|
+
# This flag allows database connection tests
|
4
|
+
# ENV["DBTEST"] ||= "1"
|
8
5
|
|
9
|
-
|
6
|
+
$VERBOSE ||= ENV["VERBOSE"]
|
7
|
+
$main = self
|
8
|
+
$boot_time = Time.now
|
10
9
|
|
11
|
-
$
|
10
|
+
puts "$VERBOSE = true" if $VERBOSE
|
12
11
|
|
13
|
-
|
14
|
-
class Error < StandardError; end
|
15
|
-
class ModeNotFound < Error; end
|
12
|
+
require_relative "lizarb/version" unless defined? Lizarb::VERSION
|
16
13
|
|
17
|
-
|
14
|
+
class Class
|
15
|
+
|
16
|
+
def descendants
|
17
|
+
ObjectSpace.each_object(Class).select { |klass| klass < self }
|
18
|
+
end
|
19
|
+
|
20
|
+
def and_descendants
|
21
|
+
ObjectSpace.each_object(Class).select { |klass| klass <= self }
|
22
|
+
end
|
23
|
+
|
24
|
+
def ancestors_until klass
|
25
|
+
ancestors.take_while { _1 <= klass }
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
class Module
|
31
|
+
|
32
|
+
# ["/path/to/liza.rb", 1]
|
33
|
+
def source_location
|
34
|
+
Array Object.const_source_location to_s
|
35
|
+
end
|
36
|
+
|
37
|
+
# "/path/to/liza.rb"
|
38
|
+
def source_location_path
|
39
|
+
source_location[0]
|
40
|
+
rescue
|
41
|
+
nil
|
42
|
+
end
|
43
|
+
|
44
|
+
# "/path/to/liza"
|
45
|
+
def source_location_radical
|
46
|
+
source_location_path[0..-4]
|
47
|
+
rescue
|
48
|
+
nil
|
49
|
+
end
|
50
|
+
|
51
|
+
def first_namespace
|
52
|
+
to_s.rpartition('::')[0]
|
53
|
+
end
|
54
|
+
|
55
|
+
def last_namespace
|
56
|
+
to_s.rpartition('::')[-1]
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
class Proc
|
62
|
+
def relative_source
|
63
|
+
absolute_source
|
64
|
+
.sub("#{Lizarb.app_dir}/", "")
|
65
|
+
.sub("#{Lizarb.root}/", "")
|
66
|
+
end
|
18
67
|
|
19
|
-
|
20
|
-
|
21
|
-
|
68
|
+
def absolute_source
|
69
|
+
sl = source_location
|
70
|
+
"#{sl[0]}:#{sl[1]}"
|
71
|
+
end
|
72
|
+
end
|
22
73
|
|
23
|
-
|
24
|
-
|
25
|
-
|
74
|
+
class String
|
75
|
+
alias lpartition partition
|
76
|
+
|
77
|
+
def camelcase
|
78
|
+
split("_").map { |s| "#{s[0].to_s.upcase}#{s[1..-1]}" }.join("")
|
79
|
+
end
|
26
80
|
|
27
|
-
|
81
|
+
alias camelize camelcase
|
28
82
|
|
29
|
-
|
83
|
+
def snakecase
|
84
|
+
gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
85
|
+
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
86
|
+
.downcase
|
87
|
+
end
|
88
|
+
|
89
|
+
alias snakefy snakecase
|
90
|
+
|
91
|
+
def rjust_blanks length
|
92
|
+
rjust length, " "
|
93
|
+
end
|
94
|
+
|
95
|
+
def rjust_zeroes length
|
96
|
+
rjust length, "0"
|
97
|
+
end
|
98
|
+
|
99
|
+
def ljust_blanks length
|
100
|
+
ljust length, " "
|
101
|
+
end
|
102
|
+
|
103
|
+
def ljust_zeroes length
|
104
|
+
ljust length, "0"
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
class Time
|
109
|
+
def diff digits = 4
|
110
|
+
raise ArgumentError, "digits must be between 1 and 4" unless digits.between? 1, 4
|
111
|
+
f = (self.class.now.to_f - to_f).floor(digits)
|
112
|
+
u, d = f.to_s.split "."
|
113
|
+
"#{u}.#{d.ljust digits, "0"}"
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
module Lizarb
|
118
|
+
class Error < StandardError; end
|
119
|
+
class ModeNotFound < Error; end
|
120
|
+
class SystemNotFound < Error; end
|
30
121
|
|
31
122
|
#
|
32
123
|
|
33
124
|
module_function
|
34
125
|
|
35
126
|
def log s
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
def self.logv s
|
40
|
-
log s if $VERBOSE
|
127
|
+
print "#{$boot_time.diff}s " if defined? $log_boot_high
|
128
|
+
puts s
|
41
129
|
end
|
42
130
|
|
43
131
|
# Returns Lizarb::VERSION as a Gem::Version
|
@@ -54,145 +142,557 @@ module Lizarb
|
|
54
142
|
RUBY_ENGINE != "jruby"
|
55
143
|
end
|
56
144
|
|
57
|
-
|
58
|
-
|
145
|
+
singleton_class.class_eval do
|
146
|
+
attr_reader :root
|
147
|
+
attr_reader :spec
|
148
|
+
attr_reader :setup_type
|
149
|
+
attr_reader :config_path
|
150
|
+
#
|
151
|
+
attr_reader :app_dir
|
152
|
+
attr_reader :gem_dir
|
153
|
+
attr_reader :liz_dir
|
154
|
+
attr_reader :is_app_dir
|
155
|
+
attr_reader :is_liz_dir
|
156
|
+
attr_reader :is_gem_dir
|
59
157
|
end
|
60
158
|
|
61
|
-
#
|
62
|
-
def
|
63
|
-
|
64
|
-
lookup_and_set_gemfile
|
159
|
+
# ["/path/to/lizarb.rb", 1]
|
160
|
+
def source_location
|
161
|
+
[__FILE__, 1]
|
65
162
|
end
|
66
163
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
164
|
+
### Initialize LizaRB as a project
|
165
|
+
#
|
166
|
+
# - You must provide __FILE__ as argument to this method.
|
167
|
+
def init_project! executable
|
168
|
+
pwd = Dir.pwd
|
169
|
+
$LOAD_PATH.unshift "#{pwd}/lib" if File.directory? "#{pwd}/lib"
|
170
|
+
setup_project pwd, project: executable
|
171
|
+
load
|
172
|
+
end
|
173
|
+
|
174
|
+
### Initialize LizaRB as a dependent script.
|
175
|
+
#
|
176
|
+
# - You must provide the app key.
|
177
|
+
# - You may provide an array of system keys.
|
178
|
+
def init_script_dependent!(
|
179
|
+
*systems,
|
180
|
+
app:
|
181
|
+
)
|
182
|
+
pwd = Dir.pwd
|
183
|
+
$LOAD_PATH.unshift "#{pwd}/lib" if File.directory? "#{pwd}/lib"
|
184
|
+
cl = caller_locations(1, 1)[0]
|
185
|
+
|
186
|
+
raise Lizarb::Error, "Lizarb.#{__method__} does not support app_global, use Lizarb.sfa" if app == "app_global"
|
187
|
+
raise Lizarb::Error, "#{app.inspect} does not start with 'app_'" unless app == "app" or app.to_s.start_with? "app_"
|
188
|
+
|
189
|
+
segments = cl.absolute_path.split("/")
|
190
|
+
root, script = segments[0..-3].join("/"), segments[-2..-1].join("/")
|
191
|
+
|
192
|
+
setup_script_dependent root, script: script, script_app: app
|
193
|
+
|
194
|
+
App.class_exec do
|
195
|
+
self.systems.clear if systems.any?
|
196
|
+
systems.each do |key|
|
197
|
+
system key
|
198
|
+
end
|
74
199
|
end
|
200
|
+
load
|
75
201
|
end
|
76
202
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
203
|
+
### Initialize LizaRB as an independent script.
|
204
|
+
#
|
205
|
+
# - You may provide all app configurations.
|
206
|
+
# - You may provide some dev_box configurations.
|
207
|
+
# - You may provide an array of system keys.
|
208
|
+
def init_script_independent!(
|
209
|
+
*systems,
|
210
|
+
mode: :code,
|
211
|
+
folder: nil,
|
212
|
+
gemfile: nil,
|
213
|
+
log_handler: :output,
|
214
|
+
log_boot: nil,
|
215
|
+
log_level: nil,
|
216
|
+
log: nil,
|
217
|
+
pwd:
|
218
|
+
)
|
219
|
+
log_boot ||= log if log
|
220
|
+
log_level ||= log if log
|
221
|
+
log_boot ||= :normal
|
222
|
+
log_level ||= :normal
|
223
|
+
|
224
|
+
cl = caller_locations(1, 1)[0]
|
225
|
+
|
226
|
+
script = cl.absolute_path
|
227
|
+
|
228
|
+
setup_script_independent pwd, script: script
|
229
|
+
|
230
|
+
App.class_exec do
|
231
|
+
self.gemfile gemfile if gemfile
|
232
|
+
self.folder folder if folder
|
233
|
+
self.log_boot log_boot
|
234
|
+
self.log_level log_level
|
235
|
+
self.mode mode
|
236
|
+
system :dev
|
237
|
+
systems.each do |key|
|
238
|
+
system key
|
239
|
+
end
|
240
|
+
end
|
241
|
+
|
242
|
+
load
|
243
|
+
|
244
|
+
DevSystem::DevBox.configure :log do
|
245
|
+
handler log_handler
|
246
|
+
end
|
83
247
|
end
|
84
248
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
249
|
+
### Setup Methods for Different Contexts
|
250
|
+
#
|
251
|
+
# The LizaRB framework provides specific setup methods for different contexts: project, script_dependent, and script_independent.
|
252
|
+
# Each method sets the `@root` and `@setup_type` instance variables and calls the `setup` method.
|
253
|
+
#
|
254
|
+
# Sets up the environment for a project.
|
255
|
+
#
|
256
|
+
# A project is a directory that contains an application app.rb file.
|
257
|
+
#
|
258
|
+
def setup_project pwd, project:
|
259
|
+
@root = pwd.to_s
|
260
|
+
@setup_type = :project
|
261
|
+
# NOTE: arg project is not being stored anywhere
|
262
|
+
$APP = ENV["APP"] || "app"
|
263
|
+
setup
|
264
|
+
end
|
265
|
+
|
266
|
+
### Setup Methods for Different Contexts
|
267
|
+
#
|
268
|
+
# The LizaRB framework provides specific setup methods for different contexts: project, script_dependent, and script_independent.
|
269
|
+
# Each method sets the `@root` and `@setup_type` instance variables and calls the `setup` method.
|
270
|
+
#
|
271
|
+
# Sets up the environment for a script.
|
272
|
+
#
|
273
|
+
# A script_dependent must be placed in a directory which parent directory is a project directory.
|
274
|
+
#
|
275
|
+
def setup_script_dependent pwd, script: , script_app:
|
276
|
+
@root = pwd.to_s
|
277
|
+
@setup_type = :script_dependent
|
278
|
+
# NOTE: arg script is not being stored anywhere
|
279
|
+
$APP = script_app
|
280
|
+
setup
|
281
|
+
end
|
282
|
+
|
283
|
+
### Setup Methods for Different Contexts
|
284
|
+
#
|
285
|
+
# The LizaRB framework provides specific setup methods for different contexts: project, script_dependent, and script_independent.
|
286
|
+
# Each method sets the `@root` and `@setup_type` instance variables and calls the `setup` method.
|
287
|
+
#
|
288
|
+
# Sets up the environment for a script.
|
289
|
+
#
|
290
|
+
# A script_independent is a Ruby script that uses the global_app for its project and project directory.
|
291
|
+
#
|
292
|
+
def setup_script_independent pwd, script:
|
293
|
+
@root = pwd.to_s
|
294
|
+
@setup_type = :script_independent
|
295
|
+
# NOTE: arg script is not being stored anywhere
|
296
|
+
$APP = "app_global"
|
297
|
+
setup
|
298
|
+
end
|
299
|
+
|
300
|
+
# The setup phase is determined by containing the least amount of code needed before requiring configuration class App.
|
301
|
+
#
|
302
|
+
# The `setup` method orchestrates the following steps:
|
303
|
+
# 1. Determines the environment by setting various directory and configuration variables.
|
304
|
+
# 2. Configures the application by loading the main application configuration file.
|
305
|
+
# 3. Overwrites Application settings with environment variables.
|
306
|
+
# 4. Defines log levels for the application based on the boot log level setting.
|
307
|
+
#
|
308
|
+
def setup
|
309
|
+
ENV["LOG_BOOT"] = ENV["LOG"] = "1" if ARGV[0] && ARGV[0][0] == "-"
|
310
|
+
setup_and_determine_environment
|
311
|
+
puts "Lizarb #{__FILE__}" if $VERBOSE
|
312
|
+
setup_and_configure_app
|
313
|
+
puts "App #{@config_path}\n\n" if $VERBOSE
|
314
|
+
setup_and_overwrite_app_settings
|
315
|
+
setup_and_define_log_levels
|
316
|
+
end
|
317
|
+
|
318
|
+
# The load phase is determined by containing the least amount of code needed after requiring configuration class App.
|
319
|
+
#
|
320
|
+
# The `load` method orchestrates the following steps:
|
321
|
+
# 1. Properly requires gem "bundler" for managing gem your dependencies.
|
322
|
+
# 2. Requires essential Ruby libraries, not required by default.
|
323
|
+
# 3. Enables or disables coding mode for debugging purposes.
|
324
|
+
# 4. Loads environment variables from the following `.env` files.
|
325
|
+
# 5. Requires award-winning gem Zeitwerk to manage autoloading of Ruby classes.
|
326
|
+
# 6. Requires the Liza module, and its constants are required on demand by zeitwerk.
|
327
|
+
# 7. Requires all system-gems, then requires each system class.
|
328
|
+
# 8. Initializes Lizarb.loaders[1] with the systems directories and the application directory.
|
329
|
+
#
|
330
|
+
def load
|
331
|
+
log " Lizarb.#{__method__}" if defined? $log_boot_high
|
332
|
+
|
333
|
+
load_and_require_bundler
|
334
|
+
load_and_require_default_gems
|
335
|
+
load_and_define_mode
|
336
|
+
load_and_require_env_vars
|
337
|
+
load_and_zeitwerk
|
338
|
+
load_and_zeitwerk_loader_0_liza
|
339
|
+
load_and_require_system_classes
|
340
|
+
load_and_zeitwerk_loader_1_app
|
341
|
+
App.after if defined? App.after
|
342
|
+
|
343
|
+
log " Lizarb.#{__method__} done" if defined? $log_boot_high
|
89
344
|
end
|
90
345
|
|
91
346
|
def exit_messages
|
92
|
-
|
347
|
+
info = {
|
93
348
|
ruby: RUBY_VERSION,
|
94
349
|
bundler: Bundler::VERSION,
|
95
350
|
zeitwerk: Zeitwerk::VERSION,
|
96
351
|
lizarb: VERSION,
|
97
352
|
app: $APP,
|
98
|
-
mode:
|
353
|
+
mode: App.mode,
|
354
|
+
log_boot: App.log_boot,
|
355
|
+
log_level: App.log_level,
|
99
356
|
}
|
100
|
-
|
101
|
-
puts
|
102
|
-
puts "Report bugs at #{
|
103
|
-
puts "Fork us on Github at #{
|
357
|
+
github = "https://github.com/lizarb/lizarb"
|
358
|
+
puts info.to_s
|
359
|
+
puts "Report bugs at #{github}/issues"
|
360
|
+
puts "Fork us on Github at #{github}/fork"
|
104
361
|
end
|
105
362
|
|
106
|
-
# setup
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
363
|
+
# This method is called internally by `setup` and is not intended for direct use.
|
364
|
+
#
|
365
|
+
# - Checks for the presence of its signature files (`app.rb`, `lib/lizarb.rb`, and `lizarb.gemspec`) in the current directory.
|
366
|
+
# - Stores those boolean values in instance variables (`@is_app_dir`, `@is_liz_dir`, `@is_gem_dir`).
|
367
|
+
# - Determines key directories (`@app_dir`, `@liz_dir`, `@gem_dir`) and configuration specs (`@spec`).
|
368
|
+
#
|
369
|
+
# - Prints verbose output if `$VERBOSE` is enabled.
|
370
|
+
def setup_and_determine_environment
|
371
|
+
if $VERBOSE
|
372
|
+
puts "determining environment"
|
373
|
+
puts " Lizarb.root = #{root.inspect}"
|
374
|
+
puts " Lizarb.setup_type = #{setup_type.inspect}"
|
375
|
+
# puts " Lizarb._project = #{_project.inspect}" if setup_type == :project
|
376
|
+
# puts " Lizarb._script_dependent = #{_script_dependent.inspect}" if setup_type == :script_dependent
|
377
|
+
# puts " Lizarb._script_independent = #{_script_independent.inspect}" if setup_type == :script_independent
|
378
|
+
end
|
379
|
+
|
380
|
+
# NOTE: calling an unset instance variable returns nil
|
381
|
+
# NOTE: these file calls are pretty fast
|
382
|
+
@is_app_dir = File.file? "#{root}/app.rb" if setup_type != :sfa
|
383
|
+
@is_liz_dir = File.file? "#{root}/lib/lizarb.rb"
|
384
|
+
@is_gem_dir = File.file? "#{root}/lizarb.gemspec" if @is_liz_dir
|
385
|
+
|
386
|
+
$APP = "app_global" unless @is_app_dir
|
387
|
+
|
388
|
+
if $VERBOSE
|
389
|
+
puts " Lizarb.root does #{ @is_app_dir ? " " : "not" } have a configuration app.rb file"
|
390
|
+
puts " Lizarb.root does #{ @is_liz_dir ? " " : "not" } have a lib/lizarb.rb file"
|
391
|
+
puts " Lizarb.root does #{ @is_gem_dir ? " " : "not" } have a lizarb.gemspec file"
|
392
|
+
end
|
115
393
|
|
116
|
-
|
117
|
-
|
118
|
-
|
394
|
+
begin
|
395
|
+
@spec = Gem::Specification.find_by_name("lizarb")
|
396
|
+
@gem_dir = @spec.gem_dir
|
397
|
+
rescue Gem::MissingSpecError
|
398
|
+
@gem_dir = root
|
399
|
+
end
|
400
|
+
@app_dir = @is_app_dir ? root : @gem_dir
|
401
|
+
@liz_dir = @is_liz_dir ? root : @gem_dir
|
402
|
+
|
403
|
+
if $VERBOSE
|
404
|
+
puts " Lizarb.spec = #{spec}"
|
405
|
+
puts " Lizarb.app_dir = #{@app_dir.inspect}"
|
406
|
+
puts " Lizarb.liz_dir = #{@liz_dir.inspect}"
|
407
|
+
puts " Lizarb.gem_dir = #{@gem_dir.inspect}"
|
408
|
+
puts
|
119
409
|
end
|
120
410
|
end
|
121
411
|
|
122
|
-
|
123
|
-
|
412
|
+
# This method is called internally by `setup` and is not intended for direct use.
|
413
|
+
#
|
414
|
+
# - Requires the application definitions file `lizarb/app.rb`.
|
415
|
+
# - Searches for the application configuration file `app.rb` in both the application directory and the LizaRB directory.
|
416
|
+
# - Requires the configuration file if found.
|
417
|
+
# - Raises an error if the configuration file is not found.
|
418
|
+
# - Prints verbose output if `$VERBOSE` is enabled.
|
419
|
+
#
|
420
|
+
def setup_and_configure_app
|
421
|
+
# This is lib/app.rb
|
422
|
+
require "app"
|
124
423
|
|
125
424
|
finder = \
|
126
|
-
proc do |
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
425
|
+
proc do |path, file|
|
426
|
+
lib_name = "#{path}/#{file}"
|
427
|
+
app_config_path = "#{lib_name}.rb"
|
428
|
+
puts " #{app_config_path} exists?" if $VERBOSE
|
429
|
+
if File.file? app_config_path
|
430
|
+
# This is app.rb
|
431
|
+
require lib_name
|
432
|
+
@config_folder = path
|
433
|
+
@config_path = app_config_path
|
434
|
+
return
|
132
435
|
end
|
133
436
|
end
|
134
437
|
|
135
|
-
|
136
|
-
|
137
|
-
gemfile ||= finder.call "#{CUR_DIR}/Gemfile"
|
138
|
-
gemfile ||= finder.call "#{GEM_DIR}/app_global.gemfile.rb"
|
438
|
+
finder.call @app_dir, $APP unless $APP == "app_global"
|
439
|
+
finder.call @liz_dir, $APP
|
139
440
|
|
140
|
-
|
141
|
-
ENV["BUNDLE_GEMFILE"] = gemfile
|
441
|
+
raise Error, "Could not find #{$APP}.rb in #{@app_dir} or #{@liz_dir}"
|
142
442
|
end
|
143
443
|
|
144
|
-
#
|
444
|
+
# This method is called internally by `setup` and is not intended for direct use.
|
445
|
+
#
|
446
|
+
# Overwrites Application settings with the following environment variables:
|
447
|
+
#
|
448
|
+
# - App.directory with APP_DIR example: `APP_DIR=app liza irb`
|
449
|
+
# - App.systems_directory with SYSTEMS_DIR example: `SYSTEMS_DIR=lib liza irb`
|
450
|
+
# - App.log_boot with LOG_BOOT or LOG example: `LOG=highest liza irb`
|
451
|
+
# - App.log_level with LOG_LEVEL or LOG example: `LOG=highest liza irb`
|
452
|
+
# - App.mode with MODE example: `MODE=production liza irb`
|
453
|
+
# - App.gemfile with GEMFILE example: `GEMFILE=Gemfile liza irb`
|
454
|
+
# - App.system with ENV["SYSTEMS"] example: `SYSTEMS=dev,happy,deep,lab liza irb`
|
455
|
+
#
|
456
|
+
def setup_and_overwrite_app_settings
|
457
|
+
if env_app_directory = ENV["APP_DIR"]
|
458
|
+
App.directory env_app_directory
|
459
|
+
end
|
145
460
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
log "#{self} checking if #{file_name} exists" if $VERBOSE
|
150
|
-
if File.file? "#{file_name}"
|
151
|
-
require lib_name
|
152
|
-
true
|
153
|
-
else
|
154
|
-
false
|
155
|
-
end
|
156
|
-
end
|
461
|
+
if env_systems_directory = ENV["SYSTEMS_DIR"]
|
462
|
+
App.systems_directory env_systems_directory
|
463
|
+
end
|
157
464
|
|
158
|
-
|
159
|
-
|
465
|
+
if s = ENV["LOG_BOOT"] || ENV["LOG"]
|
466
|
+
App.log_boot (s.length == 1) ? s.to_i : s.to_sym
|
467
|
+
end
|
160
468
|
|
161
|
-
|
162
|
-
|
469
|
+
if s = ENV["LOG_LEVEL"] || ENV["LOG"]
|
470
|
+
App.log_level (s.length == 1) ? s.to_i : s.to_sym
|
471
|
+
end
|
163
472
|
|
164
|
-
|
473
|
+
if env_mode = ENV["MODE"]
|
474
|
+
App.mode env_mode
|
475
|
+
end
|
165
476
|
|
166
|
-
|
167
|
-
|
477
|
+
if env_gemfile = ENV["GEMFILE"]
|
478
|
+
App.gemfile env_gemfile
|
479
|
+
end
|
168
480
|
|
169
|
-
|
170
|
-
|
171
|
-
|
481
|
+
if env_systems = ENV["SYSTEMS"]
|
482
|
+
App.systems.clear
|
483
|
+
App.system :dev
|
484
|
+
env_systems.split(",").each do |system|
|
485
|
+
App.system system.to_sym
|
486
|
+
end
|
487
|
+
end
|
488
|
+
end
|
172
489
|
|
173
|
-
|
490
|
+
# This method is called internally by `setup` and is not intended for direct use.
|
491
|
+
#
|
492
|
+
# Defines log levels for the application based on the boot log level setting:
|
493
|
+
#
|
494
|
+
# - Prints corresponding log messages if verbose output is enabled.
|
495
|
+
# - Sets `$log_boot_*` global variables as `true` if application boot level settings.
|
496
|
+
#
|
497
|
+
# In other words:
|
498
|
+
#
|
499
|
+
# $log_boot_highest = true if App.log_boot >= 7 # this number is for :highest
|
500
|
+
# $log_boot_higher = true if App.log_boot >= 6 # this number is for :higher
|
501
|
+
# $log_boot_high = true if App.log_boot >= 5 # this number is for :high
|
502
|
+
# $log_boot_normal = true if App.log_boot >= 4 # this number is for :normal
|
503
|
+
# $log_boot_low = true if App.log_boot >= 3 # this number is for :low
|
504
|
+
# $log_boot_lower = true if App.log_boot >= 2 # this number is for :lower
|
505
|
+
# $log_boot_lowest = true if App.log_boot >= 1 # this number is for :lowest
|
506
|
+
#
|
507
|
+
def setup_and_define_log_levels
|
508
|
+
level = App.log_boot
|
509
|
+
is_highest = level == 7
|
510
|
+
App::LOG_LEVELS.each do |k, v|
|
511
|
+
puts "$log_boot_#{k} = #{v <= level}" if is_highest
|
512
|
+
eval "$log_boot_#{k} = true" if v <= level
|
513
|
+
end
|
174
514
|
|
175
|
-
log "
|
176
|
-
|
515
|
+
log "LizaRB v#{Lizarb.version} https://lizarb.org" if defined? $log_boot_lower
|
516
|
+
log " log_boot is set to #{App.log_boot}" if defined? $log_boot_higher
|
517
|
+
log " log_level is set to #{App.log_level}" if defined? $log_boot_higher
|
177
518
|
end
|
178
519
|
|
179
|
-
|
180
|
-
|
181
|
-
|
520
|
+
# This method is called internally by `load` and is not intended for direct use.
|
521
|
+
#
|
522
|
+
# Properly requires gem "bundler" for managing gem your dependencies:
|
523
|
+
#
|
524
|
+
# Up until now, require referred to the Ruby standard library.
|
525
|
+
# From this point on, require will refer to what is in the Gemfile.
|
526
|
+
#
|
527
|
+
# - If App.gemfile is a String, sets the BUNDLE_GEMFILE environment variable to the specified gemfile.
|
528
|
+
# - If App.gemfile is a Proc, requires Bundler inline and evaluates the gemfile block.
|
529
|
+
# - Raises an error if App.gemfile is neither a String nor a Proc.
|
530
|
+
#
|
531
|
+
def load_and_require_bundler
|
532
|
+
log " Lizarb.#{__method__}" if defined? $log_boot_high
|
533
|
+
|
534
|
+
gf = App.gemfile
|
535
|
+
case gf
|
536
|
+
when String
|
537
|
+
string = "#{ @config_folder }/#{ gf }"
|
538
|
+
log " requiring 'bundler/setup'" if defined? $log_boot_higher
|
539
|
+
log " ENV['BUNDLE_GEMFILE'] = #{ string.inspect }" if defined? $log_boot_highest
|
540
|
+
ENV["BUNDLE_GEMFILE"] = string
|
541
|
+
log " require 'bundler/setup'" if defined? $log_boot_highest
|
542
|
+
require 'bundler/setup'
|
543
|
+
when Proc
|
544
|
+
string = gf.source_location
|
545
|
+
log " requiring 'bundler/inline' with #{ string }" if defined? $log_boot_higher
|
546
|
+
require 'bundler/inline'
|
547
|
+
log " required 'bundler/inline'" if defined? $log_boot_highest
|
548
|
+
gemfile(false, &gf)
|
549
|
+
else
|
550
|
+
raise "App.gemfile is not a String or a Proc"
|
551
|
+
end
|
552
|
+
rescue SystemExit => e
|
553
|
+
raise unless e.cause&.class == Bundler::GemNotFound
|
554
|
+
puts
|
555
|
+
puts "LizaRB v#{version} dependencies not found."
|
556
|
+
puts "LizaRB is installing the dependencies found in the above gemfile."
|
557
|
+
puts
|
558
|
+
Kernel.system "bundle install --gemfile #{ENV["BUNDLE_GEMFILE"]}"
|
559
|
+
puts
|
560
|
+
puts "Please, run the latest command again."
|
561
|
+
puts
|
562
|
+
raise
|
563
|
+
end
|
564
|
+
|
565
|
+
# This method is called internally by `load` and is not intended for direct use.
|
566
|
+
#
|
567
|
+
# Requires essential Ruby libraries, not required by default:
|
568
|
+
#
|
569
|
+
# Requires the following default gems:
|
570
|
+
# - `pathname` for handling file paths.
|
571
|
+
# - `time` for Time parsing.
|
572
|
+
#
|
573
|
+
# Converts the following instance variables to Pathname objects:
|
574
|
+
# - `Lizarb`: `@root`, `@gem_dir`, `@config_path`
|
575
|
+
# - `App`: `@relative_path`, `@path`
|
576
|
+
#
|
577
|
+
def load_and_require_default_gems
|
578
|
+
log " Lizarb.#{__method__}" if defined? $log_boot_high
|
579
|
+
|
580
|
+
log " require 'pathname'" if defined? $log_boot_higher
|
581
|
+
require "pathname"
|
582
|
+
|
583
|
+
# this adds method Time.parse
|
584
|
+
log " require 'time'" if defined? $log_boot_higher
|
585
|
+
require "time"
|
586
|
+
|
587
|
+
log " fixing instance variables" if defined? $log_boot_highest
|
588
|
+
@root = Pathname(@root)
|
589
|
+
@gem_dir = Pathname(@gem_dir)
|
590
|
+
@config_path = Pathname(@config_path)
|
591
|
+
|
592
|
+
App.instance_eval do
|
593
|
+
@directory = root / directory
|
594
|
+
@systems_directory = root / systems_directory_name
|
595
|
+
|
596
|
+
@relative_path = Pathname(@relative_path)
|
597
|
+
@path = Pathname(@path)
|
598
|
+
end
|
599
|
+
end
|
600
|
+
|
601
|
+
# This method is called internally by `load` and is not intended for direct use.
|
602
|
+
#
|
603
|
+
# Enables or disables coding mode for debugging purposes:
|
604
|
+
#
|
605
|
+
# - Sets the global `$mode` variable to the application mode.
|
606
|
+
# - Sets the global `$coding` variable to `true` if the application mode is `:code`.
|
607
|
+
#
|
608
|
+
def load_and_define_mode
|
609
|
+
log " Lizarb.#{__method__}" if defined? $log_boot_high
|
610
|
+
|
611
|
+
$mode = App.mode
|
612
|
+
log " $mode = #{$mode.inspect}" if defined? $log_boot_higher
|
613
|
+
$coding = App.coding?
|
614
|
+
log " $coding enabled because $mode == :code | A bit slower for debugging purposes" if $coding && defined? $log_boot_higher
|
182
615
|
end
|
183
616
|
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
617
|
+
# This method is called internally by `load` and is not intended for direct use.
|
618
|
+
#
|
619
|
+
# Loads environment variables from the given `.env` files.
|
620
|
+
#
|
621
|
+
# If the file is not found, it raises an error if the file is mandatory.
|
622
|
+
# Values will be overwritten if the same key is found in a subsequent file.
|
623
|
+
#
|
624
|
+
# If the gem "dotenv" is found, it delegates to it instead.
|
625
|
+
#
|
626
|
+
def load_and_require_env_vars
|
627
|
+
log " Lizarb.#{__method__}" if defined? $log_boot_high
|
628
|
+
|
629
|
+
files = App.env_vars || []
|
630
|
+
log " ENV variables from #{files.count} sources" if defined? $log_boot_higher
|
631
|
+
|
632
|
+
return if files.empty?
|
633
|
+
|
634
|
+
if Gem::Specification.find_all_by_name("dotenv").any?
|
635
|
+
require "dotenv"
|
636
|
+
log " gem 'dotenv' found" if defined? $log_boot_higher
|
637
|
+
|
638
|
+
Dotenv.load(*files)
|
639
|
+
log " Dotenv.load(*#{files.inspect})" if defined? $log_boot_highest
|
640
|
+
|
641
|
+
return
|
642
|
+
end
|
643
|
+
|
644
|
+
files.each do |file|
|
645
|
+
File.readlines(file).each do |line|
|
646
|
+
line.strip!
|
647
|
+
next if line.empty? or line.start_with? "#"
|
648
|
+
|
649
|
+
key, value = line.split('=', 2).map(&:strip)
|
650
|
+
ENV[key] = value
|
651
|
+
end
|
652
|
+
log " ENV variables #{file}" if defined? $log_boot_higher
|
653
|
+
rescue Errno::ENOENT
|
654
|
+
log " ENV variables not found #{file}" if defined? $log_boot_higher
|
655
|
+
raise if App.env_vars_mandatory?
|
656
|
+
end
|
188
657
|
end
|
189
658
|
|
190
|
-
|
659
|
+
# This method is called internally by `load` and is not intended for direct use.
|
660
|
+
#
|
661
|
+
# Requires award-winning gem Zeitwerk to manage autoloading of Ruby classes.
|
662
|
+
#
|
663
|
+
def load_and_zeitwerk
|
664
|
+
log " Lizarb.#{__method__}" if defined? $log_boot_high
|
191
665
|
require "zeitwerk"
|
666
|
+
log " required Zeitwerk" if defined? $log_boot_higher
|
667
|
+
|
668
|
+
if App.systems_directory_name != "lib"
|
669
|
+
path = App.systems_directory.to_s
|
670
|
+
$LOAD_PATH << path
|
671
|
+
log " $LOAD_PATH << #{path}" if defined? $log_boot_higher
|
672
|
+
end
|
673
|
+
end
|
674
|
+
|
675
|
+
# This method is called internally by `load` and is not intended for direct use.
|
676
|
+
#
|
677
|
+
# Requires the Liza module, and its constants are required on demand by zeitwerk:
|
678
|
+
#
|
679
|
+
# - Requires the Liza module.
|
680
|
+
# - Initializes Lizarb.loaders[0] with the liza directory.
|
681
|
+
#
|
682
|
+
# lib/liza.rb
|
683
|
+
# lib/liza/unit.rb
|
684
|
+
# lib/liza/**/*.rb
|
685
|
+
#
|
686
|
+
def load_and_zeitwerk_loader_0_liza
|
687
|
+
log " Lizarb.#{__method__}" if defined? $log_boot_high
|
192
688
|
require "liza"
|
689
|
+
log " required Liza" if defined? $log_boot_higher
|
193
690
|
|
194
|
-
#
|
195
|
-
|
691
|
+
# loaders[0] first loads Liza, then each System class
|
692
|
+
|
693
|
+
log " Zeitwerk loaders [0] first loads Liza, then each System class" if defined? $log_boot_higher
|
694
|
+
|
695
|
+
loaders << loader = Zeitwerk::Loader.new
|
196
696
|
loader.tag = Liza.to_s
|
197
697
|
|
198
698
|
# collapse Liza paths
|
@@ -203,22 +703,70 @@ module Lizarb
|
|
203
703
|
|
204
704
|
# loader setup
|
205
705
|
|
706
|
+
log " Setting up" if defined? $log_boot_higher
|
206
707
|
loader.enable_reloading
|
708
|
+
log " loader.enable_reloading" if defined? $log_boot_highest
|
207
709
|
loader.setup
|
710
|
+
log " loader.setup" if defined? $log_boot_highest
|
711
|
+
loader.eager_load
|
712
|
+
log " loader.eager_load" if defined? $log_boot_highest
|
713
|
+
end
|
208
714
|
|
209
|
-
|
715
|
+
# This method is called internally by `load` and is not intended for direct use.
|
716
|
+
#
|
717
|
+
# Requires all system-gems, then requires each system class:
|
718
|
+
#
|
719
|
+
# - Requires all system-gems. These gems must be added to the gemfile under group :systems.
|
720
|
+
# - Requires each system class.
|
721
|
+
# - Freezes the App.systems hash.
|
722
|
+
#
|
723
|
+
def load_and_require_system_classes
|
724
|
+
log " Lizarb.#{__method__} (#{App.systems.count})" if defined? $log_boot_high
|
725
|
+
|
726
|
+
# bundle each System gem
|
210
727
|
|
211
|
-
|
212
|
-
|
728
|
+
log " Bundler.require :systems" if defined? $log_boot_higherß
|
729
|
+
Bundler.require :systems
|
213
730
|
|
214
|
-
|
215
|
-
klass = Object.const_get key.camelize
|
731
|
+
# load each System class
|
216
732
|
|
217
|
-
App.systems
|
733
|
+
log " App.systems is Hash containing all system classes" if defined? $log_boot_highest
|
734
|
+
App.systems.keys.each do |key|
|
735
|
+
klass = _require_system key
|
736
|
+
App.systems[key] = klass
|
218
737
|
end
|
219
738
|
|
220
|
-
|
221
|
-
|
739
|
+
App.systems.freeze
|
740
|
+
end
|
741
|
+
|
742
|
+
def _require_system key
|
743
|
+
key = "#{key}_system"
|
744
|
+
log " require '#{key}'" if defined? $log_boot_highest
|
745
|
+
require key
|
746
|
+
Object.const_get key.camelize
|
747
|
+
rescue LoadError => e
|
748
|
+
def e.backtrace; []; end
|
749
|
+
raise SystemNotFound, "FILE #{key}.rb not found on $LOAD_PATH", []
|
750
|
+
end
|
751
|
+
|
752
|
+
# This method is called internally by `load` and is not intended for direct use.
|
753
|
+
#
|
754
|
+
# Initializes Lizarb.loaders[1] with the systems directories and the application directory:
|
755
|
+
#
|
756
|
+
# - For each system found in the application file, Zeitwerk namespaces their Liza::Unit sub-classes under the Liza::System sub-class.
|
757
|
+
# lib/dev_system.rb
|
758
|
+
# lib/dev_system/**/*.rb
|
759
|
+
#
|
760
|
+
# - For each box found in the application directory, Zeitwerk namespaces their Liza::Controller sub-classes under Object.
|
761
|
+
# app/dev_box.rb
|
762
|
+
# app/dev/**/*.rb
|
763
|
+
#
|
764
|
+
def load_and_zeitwerk_loader_1_app
|
765
|
+
log " Lizarb.#{__method__} (#{App.systems.count})" if defined? $log_boot_high
|
766
|
+
|
767
|
+
# loaders[1] first loads each System, then the App
|
768
|
+
log " Zeitwerk loaders [1] first loads each System, then the App" if defined? $log_boot_higher
|
769
|
+
loaders << loader = Zeitwerk::Loader.new
|
222
770
|
|
223
771
|
# collapse each System paths
|
224
772
|
|
@@ -230,46 +778,44 @@ module Lizarb
|
|
230
778
|
|
231
779
|
# cherrypick App paths
|
232
780
|
|
233
|
-
app_dir =
|
234
|
-
|
235
|
-
|
236
|
-
|
781
|
+
app_dir = App.path
|
782
|
+
if app_dir
|
783
|
+
log " Application Directory: #{app_dir}" if defined? $log_boot_highest
|
784
|
+
list = Dir["#{app_dir}/*"].to_set
|
785
|
+
end
|
237
786
|
|
238
|
-
if list.empty?
|
239
|
-
|
787
|
+
if app_dir.nil? || list.empty?
|
788
|
+
log " Application Directory is empty" if defined? $log_boot_highest
|
240
789
|
else
|
241
|
-
|
790
|
+
log " Application Directory found #{list.count} items to collapse" if defined? $log_boot_highest
|
242
791
|
|
243
792
|
to_collapse = []
|
244
793
|
|
245
794
|
App.systems.each do |k, klass|
|
795
|
+
next if klass.subs.empty?
|
796
|
+
|
246
797
|
box_dir = "#{app_dir}/#{k}"
|
247
798
|
box_file = "#{box_dir}_box.rb"
|
799
|
+
next if !list.include? box_file
|
248
800
|
|
249
|
-
if
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
if !list.include? box_dir
|
256
|
-
logv "Lizarb app loader missd #{box_dir}".on_light_black
|
257
|
-
else
|
258
|
-
logv "Lizarb app loader found #{box_dir}\t\tto_collapse!".on_cyan
|
259
|
-
to_collapse << box_dir
|
260
|
-
end
|
801
|
+
log " Found box file #{box_file}" if defined? $log_boot_highest
|
802
|
+
to_collapse << box_file
|
803
|
+
|
804
|
+
if list.include? box_dir
|
805
|
+
log " Found controllers #{box_dir}" if defined? $log_boot_highest
|
806
|
+
to_collapse << box_dir
|
261
807
|
end
|
262
808
|
end
|
263
809
|
|
264
810
|
# ORDER MATTERS: IGNORE, COLLAPSE, PUSH
|
265
811
|
to_ignore = list - to_collapse
|
266
812
|
to_ignore.each do |file|
|
267
|
-
|
813
|
+
log " Ignoring #{file}" if defined? $log_boot_highest
|
268
814
|
loader.ignore file
|
269
815
|
end
|
270
816
|
|
271
817
|
to_collapse.each do |path|
|
272
|
-
|
818
|
+
log " Collapsing #{path}" if defined? $log_boot_highest
|
273
819
|
if path.end_with? ".rb"
|
274
820
|
loader.collapse path
|
275
821
|
else
|
@@ -283,19 +829,40 @@ module Lizarb
|
|
283
829
|
|
284
830
|
# loader setup
|
285
831
|
|
832
|
+
log " Setting up" if defined? $log_boot_higher
|
286
833
|
loader.enable_reloading
|
834
|
+
log " loader.enable_reloading" if defined? $log_boot_highest
|
287
835
|
loader.setup
|
836
|
+
log " loader.setup" if defined? $log_boot_highest
|
837
|
+
end
|
288
838
|
|
289
|
-
|
839
|
+
# loaders
|
290
840
|
|
291
|
-
|
292
|
-
App.connect_system k, klass
|
293
|
-
end
|
841
|
+
@loaders = []
|
294
842
|
|
295
|
-
|
843
|
+
def loaders
|
844
|
+
@loaders
|
845
|
+
end
|
846
|
+
|
847
|
+
def reload &block
|
848
|
+
@eager_loaded = false
|
849
|
+
loaders[1].reload
|
850
|
+
true
|
851
|
+
end
|
852
|
+
|
853
|
+
def eager_load!
|
854
|
+
return if eager_loaded?
|
855
|
+
log "Lizarb.#{__method__} begin" if defined? $log_boot_high
|
856
|
+
@eager_loaded = true
|
857
|
+
loaders[1].eager_load
|
858
|
+
log "Lizarb.#{__method__} end" if defined? $log_boot_high
|
859
|
+
end
|
860
|
+
|
861
|
+
def eager_loaded?
|
862
|
+
!!@eager_loaded
|
296
863
|
end
|
297
864
|
|
298
|
-
# thread management
|
865
|
+
# naive thread management
|
299
866
|
|
300
867
|
def thread_object_id
|
301
868
|
Thread.current.object_id
|