lizarb 1.0.5 → 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 +23 -12
- data/Gemfile.lock +161 -117
- data/LICENSE.txt +1 -1
- data/README.md +29 -17
- data/Rakefile +2 -2
- data/app/dev/commands/stick_command.rb +3 -3
- data/app/dev/commands/stick_command_test.rb +1 -12
- data/app/dev_box.rb +23 -41
- data/app/eco_box.rb +5 -0
- data/app/net_box.rb +22 -20
- data/app/prime_box.rb +9 -0
- data/app/web/requests/api_request.rb +2 -0
- data/app/web/requests/assets_request.rb +1 -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 +2 -4
- data/app.rb +22 -23
- data/app_global.gemfile.rb +8 -1
- data/app_global.gemfile.rb.lock +19 -16
- data/app_global.rb +3 -1
- data/examples/bench/app/dev/benches/loops_bench_test.rb +0 -4
- data/examples/bench/app/dev/benches/objects_bench_test.rb +0 -4
- data/examples/bench/app/dev/benches/sorted_bench.rb +7 -9
- data/examples/bench/app/dev/benches/sorted_bench_test.rb +0 -4
- data/examples/bench/app/dev/benches/variables_bench_test.rb +0 -4
- data/examples/command/app/dev/commands/calculator_command.rb +4 -4
- data/examples/command/app/dev/commands/calculator_command_test.rb +0 -4
- data/examples/command/app/dev/commands/circle_command.rb +4 -4
- data/examples/command/app/dev/commands/circle_command_test.rb +0 -4
- data/examples/command/app/dev/commands/narrative_method_command.rb +2 -11
- data/examples/command/app/dev/commands/narrative_method_command_test.rb +1 -5
- data/examples/command/app/dev/commands/quadratic_command.rb +4 -4
- data/examples/command/app/dev/commands/quadratic_command_test.rb +0 -4
- data/examples/log/app/dev/{logs/logger_log.rb → handler_logs/logger_handler_log.rb} +2 -1
- data/examples/log/app/dev/handler_logs/logger_handler_log_test.rb +15 -0
- data/examples/new/app/dev_box.rb +24 -46
- data/examples/new/app.rb +19 -23
- data/examples/shell/app/dev/shells/bash_adapter_shell_test.rb +0 -4
- data/examples/shell/app/dev/shells/business_logic_shell_test.rb +0 -4
- data/examples/shell/app/dev/shells/gem_adapter_shell_test.rb +0 -4
- data/exe/liza +4 -6
- 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 +121 -32
- 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/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/deep_system/deep_system_test.rb +3 -0
- data/lib/desk_system/commands/glimmer_command.rb +1 -0
- data/lib/desk_system/desk_system_test.rb +3 -0
- data/lib/dev_system/commands/test_command.rb +105 -66
- data/lib/dev_system/commands/test_command_test.rb +3 -6
- data/lib/dev_system/dev_box.rb +20 -61
- data/lib/dev_system/dev_box_test.rb +5 -6
- 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/{env_generator.rb → envfile_generator.rb} +7 -14
- data/lib/dev_system/generators/envfile_generator_test.rb +14 -0
- data/lib/dev_system/generators/gemfile_generator.rb +14 -4
- data/lib/dev_system/generators/gemfile_generator_test.rb +4 -4
- 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 +92 -45
- 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 +10 -3
- 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/{sub → subsystems}/bench/bench.rb +2 -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/{sub → subsystems}/bench/bench_test.rb +0 -2
- 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/{sub → subsystems}/command/command_test.rb +2 -6
- data/lib/dev_system/subsystems/command/commands/base_command.rb +79 -0
- data/lib/dev_system/{sub → subsystems}/command/commands/base_command_test.rb +0 -4
- 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/{sub → subsystems}/command/commands/not_found_command_test.rb +0 -4
- 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/{sub/shell → subsystems/command}/shells/color_shell_test.rb +1 -6
- 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/{sub/shell/shells/color_shell.rb → subsystems/command/shells/pallet_shell.rb} +11 -46
- 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/{sub → subsystems}/generator/commands/generate_command_test.rb +0 -4
- 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/{sub → subsystems}/generator/generator_test.rb +0 -4
- data/lib/dev_system/subsystems/generator/generators/base_generator.rb +147 -0
- data/lib/dev_system/{sub → subsystems}/generator/generators/base_generator_test.rb +3 -4
- 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/{sub → subsystems}/generator/generators/new_generator_test.rb +0 -4
- 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/{sub → subsystems}/generator/generators/simple_generator_test.rb +7 -6
- 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/{sub → subsystems}/log/commands/log_command_test.rb +0 -4
- 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/{sub/log/logs/output_log.rb → subsystems/log/handler_logs/color_output_handler_log.rb} +14 -31
- 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/{sub/log/logs/output_log_test.rb → subsystems/log/handler_logs/output_handler_log_test.rb} +5 -9
- 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/{sub → subsystems}/log/log_test.rb +5 -2
- 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/{sub → subsystems}/log/logs/stick_log.rb +6 -5
- 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/{sub → subsystems}/log/logs/stick_log_test.rb +12 -12
- 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/{sub → subsystems}/shell/converter_shells/coffee_converter_shell_test.rb +1 -8
- data/lib/dev_system/subsystems/shell/converter_shells/converter_shell.rb +27 -0
- data/lib/dev_system/{sub → subsystems}/shell/converter_shells/converter_shell_test.rb +9 -2
- data/lib/dev_system/subsystems/shell/converter_shells/haml_converter_shell.rb +29 -0
- data/lib/dev_system/{sub → subsystems}/shell/converter_shells/haml_converter_shell_test.rb +1 -8
- data/lib/dev_system/subsystems/shell/converter_shells/md_converter_shell.rb +20 -0
- data/lib/dev_system/{sub → subsystems}/shell/converter_shells/md_converter_shell_test.rb +1 -8
- data/lib/dev_system/{sub → subsystems}/shell/converter_shells/scss_converter_shell.rb +13 -12
- data/lib/dev_system/{sub → subsystems}/shell/converter_shells/scss_converter_shell_test.rb +1 -8
- data/lib/dev_system/subsystems/shell/formatter_shells/formatter_shell.rb +30 -0
- data/lib/dev_system/{sub → subsystems}/shell/formatter_shells/formatter_shell_test.rb +9 -2
- data/lib/dev_system/subsystems/shell/formatter_shells/html_formatter_shell.rb +19 -0
- data/lib/dev_system/{sub → subsystems}/shell/formatter_shells/html_formatter_shell_test.rb +1 -9
- 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/{sub → subsystems}/shell/shell.rb +5 -0
- 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/{sub → subsystems}/shell/shell_test.rb +1 -5
- 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/{sub → subsystems}/shell/shells/bin_shell_test.rb +0 -4
- 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/{sub → subsystems}/shell/shells/dir_shell.rb +2 -2
- data/lib/dev_system/{sub → subsystems}/shell/shells/dir_shell_test.rb +0 -4
- 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/{sub → subsystems}/shell/shells/file_shell_test.rb +3 -6
- data/lib/dev_system/{sub/shell/shells/gem_shell.rb → subsystems/shell/shells/gemspec_shell.rb} +1 -1
- data/lib/dev_system/{sub/shell/shells/gem_shell_test.rb → subsystems/shell/shells/gemspec_shell_test.rb} +3 -3
- data/lib/dev_system/subsystems/shell/shells/kernel_shell.rb +26 -0
- data/lib/dev_system/{sub → subsystems}/shell/shells/line_diff_shell.rb +4 -3
- data/lib/dev_system/{sub → subsystems}/shell/shells/line_diff_shell_test.rb +0 -4
- data/lib/dev_system/subsystems/shell/shells/line_shell.rb +104 -0
- data/lib/dev_system/{sub → subsystems}/shell/shells/line_shell_test.rb +36 -4
- 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_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/{sub → subsystems}/shell/shells/text_file_shell_test.rb +0 -4
- data/lib/dev_system/{sub → subsystems}/shell/shells/text_shell.rb +2 -2
- data/lib/dev_system/{sub → subsystems}/shell/shells/text_shell_test.rb +0 -4
- 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 +6 -6
- 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_test.rb +0 -4
- data/lib/happy_system/happy_system_test.rb +3 -0
- data/lib/happy_system/{sub → subsystems}/axo/axo.rb +2 -1
- data/lib/happy_system/{sub → subsystems}/axo/axo_panel.rb +1 -1
- data/lib/happy_system/{sub → subsystems}/axo/axo_panel_test.rb +0 -4
- data/lib/happy_system/{sub → subsystems}/axo/axo_test.rb +0 -4
- data/lib/happy_system/{sub → subsystems}/axo/commands/axo_command.rb +4 -3
- data/lib/happy_system/subsystems/axo/generators/axo_generator.rb +17 -0
- data/lib/happy_system/{sub/axo/generators/axo_generator.rb → subsystems/axo/generators/axo_generator.rb.controller.rb.erb} +1 -31
- data/lib/happy_system/subsystems/axo/generators/axo_generator_test.rb +12 -0
- data/lib/happy_system.rb +1 -1
- data/lib/lab_system/clients/kroki_client.rb +1 -0
- data/lib/lab_system/clients/kroki_client_test.rb +0 -4
- data/lib/lab_system/clients/liza_kroki_client_test.rb +0 -4
- data/lib/lab_system/commands/docker_command.rb +12 -6
- data/lib/lab_system/commands/docker_command_test.rb +1 -5
- data/lib/lab_system/lab_system_test.rb +3 -0
- data/lib/lab_system/requests/kroki_request_test.rb +0 -4
- 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 +1 -1
- data/lib/lab_system/shells/kroki_docker_shell_test.rb +1 -5
- data/lib/lab_system/{shells/docker_shell.rb → soft_shells/docker_soft_shell.rb} +4 -4
- data/lib/lab_system/{shells/docker_shell_test.rb → soft_shells/docker_soft_shell_test.rb} +5 -6
- data/lib/liza/{ruby_tests → extra_tests}/app_test.rb +3 -6
- 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/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/{safety → helper_units}/test_test.rb +66 -35
- data/lib/liza/subsystemic_units/controller.rb +221 -0
- data/lib/liza/subsystemic_units/controller_test.rb +62 -0
- data/lib/liza/{base → subsystemic_units}/panel.rb +8 -16
- 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 +620 -32
- data/lib/liza/unit_test.rb +88 -97
- data/lib/liza.rb +14 -10
- data/lib/lizarb/version.rb +1 -1
- data/lib/lizarb.rb +671 -255
- 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_system_test.rb +3 -0
- data/lib/micro_system.rb +1 -1
- data/lib/net_system/net_box.rb +38 -9
- data/lib/net_system/net_box_test.rb +0 -4
- data/lib/net_system/net_system_test.rb +3 -0
- data/lib/net_system/{sub → subsystems}/client/client_panel_test.rb +0 -4
- data/lib/net_system/{sub → subsystems}/client/client_test.rb +0 -4
- 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/{sub → subsystems}/database/clients/mongo_client.rb +16 -2
- data/lib/net_system/{sub → subsystems}/database/clients/mysql_client.rb +6 -1
- data/lib/net_system/{sub → subsystems}/database/clients/mysql_client_test.rb +1 -1
- data/lib/net_system/{sub → subsystems}/database/clients/pgsql_client.rb +2 -1
- data/lib/net_system/subsystems/database/clients/redis_client.rb +46 -0
- data/lib/net_system/{sub → subsystems}/database/clients/sqlite_client.rb +6 -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/{sub → subsystems}/database/database_panel_test.rb +2 -5
- data/lib/net_system/{sub → subsystems}/database/database_test.rb +0 -4
- 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/{sub → subsystems}/record/record_panel_test.rb +0 -4
- 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 +6 -4
- 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/{sub → subsystems}/rack/commands/rack_command.rb +5 -2
- data/lib/web_system/subsystems/rack/commands/rack_command_test.rb +7 -0
- data/lib/web_system/{sub → subsystems}/rack/middle_racks/first_middle_rack_test.rb +0 -4
- data/lib/web_system/{sub → subsystems}/rack/middle_racks/last_middle_rack_test.rb +0 -4
- data/lib/web_system/{sub → subsystems}/rack/middle_racks/middle_rack.rb +1 -1
- data/lib/web_system/{sub → subsystems}/rack/middle_racks/middle_rack_test.rb +0 -4
- data/lib/web_system/{sub → subsystems}/rack/middle_racks/zeitwerk_middle_rack.rb +3 -4
- data/lib/web_system/{sub → subsystems}/rack/middle_racks/zeitwerk_middle_rack_test.rb +0 -4
- data/lib/web_system/subsystems/rack/rack.rb +3 -0
- data/lib/web_system/{sub → subsystems}/rack/rack_panel.rb +10 -6
- data/lib/web_system/subsystems/rack/rack_panel_test.rb +25 -0
- data/lib/web_system/{sub → subsystems}/rack/rack_test.rb +0 -4
- data/lib/web_system/{sub → subsystems}/rack/server_racks/agoo_server_rack.rb +2 -1
- data/lib/web_system/{sub → subsystems}/rack/server_racks/agoo_server_rack_test.rb +0 -4
- data/lib/web_system/{sub → subsystems}/rack/server_racks/falcon_server_rack.rb +2 -1
- data/lib/web_system/{sub → subsystems}/rack/server_racks/falcon_server_rack_test.rb +0 -4
- data/lib/web_system/{sub → subsystems}/rack/server_racks/iodine_server_rack.rb +2 -1
- data/lib/web_system/{sub → subsystems}/rack/server_racks/iodine_server_rack_test.rb +0 -4
- data/lib/web_system/{sub → subsystems}/rack/server_racks/puma_server_rack.rb +4 -2
- data/lib/web_system/{sub → subsystems}/rack/server_racks/puma_server_rack_test.rb +0 -4
- data/lib/web_system/{sub → subsystems}/rack/server_racks/server_rack.rb +0 -9
- data/lib/web_system/{sub → subsystems}/rack/server_racks/server_rack_test.rb +0 -4
- data/lib/web_system/{sub → subsystems}/rack/server_racks/thin_server_rack.rb +6 -5
- data/lib/web_system/{sub → subsystems}/rack/server_racks/thin_server_rack_test.rb +0 -4
- data/lib/web_system/{sub → subsystems}/request/commands/request_command.rb +32 -43
- 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/{sub → subsystems}/request/request_panel.rb +22 -16
- data/lib/web_system/subsystems/request/request_panel_test.rb +82 -0
- data/lib/web_system/{sub → subsystems}/request/request_test.rb +0 -4
- data/lib/web_system/{sub → subsystems}/request/requests/client_error_request.rb +1 -0
- data/lib/web_system/{sub → subsystems}/request/requests/not_found_request.rb +1 -0
- data/lib/web_system/{sub → subsystems}/request/requests/server_error_request.rb +1 -0
- data/lib/web_system/{sub → subsystems}/request/requests/simple_request.rb +8 -1
- data/lib/web_system/{sub → subsystems}/request/requests/simple_request_test.rb +0 -4
- data/lib/web_system/{sub → subsystems}/request/router_requests/router_request_test.rb +0 -4
- data/lib/web_system/{sub → subsystems}/request/router_requests/simple_router_request.rb +7 -4
- data/lib/web_system/{sub → subsystems}/request/router_requests/simple_router_request_test.rb +0 -4
- data/lib/web_system/web_box.rb +23 -3
- data/lib/web_system/web_box_test.rb +0 -4
- data/lib/web_system/web_system_test.rb +3 -0
- data/lib/web_system.rb +2 -2
- data/lib/work_system/work_system_test.rb +3 -0
- data/lizarb.gemspec +2 -16
- metadata +414 -346
- data/examples/log/app/dev/logs/logger_log_test.rb +0 -16
- data/lib/dev_system/generators/env_generator_test.rb +0 -11
- data/lib/dev_system/sub/bench/bench_panel.rb +0 -3
- data/lib/dev_system/sub/bench/bench_panel_test.rb +0 -16
- data/lib/dev_system/sub/bench/benches/not_found_bench.rb +0 -33
- data/lib/dev_system/sub/bench/benches/not_found_bench_test.rb +0 -11
- data/lib/dev_system/sub/bench/commands/bench_command.rb +0 -27
- data/lib/dev_system/sub/bench/commands/bench_command_test.rb +0 -11
- data/lib/dev_system/sub/bench/generators/bench_generator.rb +0 -70
- data/lib/dev_system/sub/bench/generators/bench_generator_test.rb +0 -10
- data/lib/dev_system/sub/command/command.rb +0 -28
- data/lib/dev_system/sub/command/command_panel.rb +0 -151
- data/lib/dev_system/sub/command/command_panel_test.rb +0 -78
- data/lib/dev_system/sub/command/commands/base_command.rb +0 -48
- data/lib/dev_system/sub/command/commands/irb_command.rb +0 -19
- data/lib/dev_system/sub/command/commands/irb_command_test.rb +0 -11
- data/lib/dev_system/sub/command/commands/not_found_command.rb +0 -156
- data/lib/dev_system/sub/command/commands/pry_command.rb +0 -10
- data/lib/dev_system/sub/command/commands/pry_command_test.rb +0 -11
- data/lib/dev_system/sub/command/commands/simple_command.rb +0 -143
- data/lib/dev_system/sub/command/commands/simple_command_test.rb +0 -11
- data/lib/dev_system/sub/command/generators/command_generator.rb +0 -90
- data/lib/dev_system/sub/command/generators/command_generator_test.rb +0 -11
- data/lib/dev_system/sub/command/input_commands/highline_input_command.rb +0 -17
- data/lib/dev_system/sub/command/input_commands/highline_input_command_test.rb +0 -19
- data/lib/dev_system/sub/command/input_commands/input_command.rb +0 -20
- data/lib/dev_system/sub/command/input_commands/input_command_test.rb +0 -19
- data/lib/dev_system/sub/command/input_commands/tty_input_command.rb +0 -55
- data/lib/dev_system/sub/command/input_commands/tty_input_command_test.rb +0 -19
- data/lib/dev_system/sub/generator/commands/generate_command.rb +0 -9
- data/lib/dev_system/sub/generator/commands/new_command.rb +0 -10
- data/lib/dev_system/sub/generator/commands/new_command_test.rb +0 -7
- data/lib/dev_system/sub/generator/generator.rb +0 -19
- data/lib/dev_system/sub/generator/generator_panel.rb +0 -98
- data/lib/dev_system/sub/generator/generator_panel_test.rb +0 -79
- data/lib/dev_system/sub/generator/generators/base_generator.rb +0 -64
- data/lib/dev_system/sub/generator/generators/generator_generator.rb +0 -71
- data/lib/dev_system/sub/generator/generators/generator_generator_test.rb +0 -11
- data/lib/dev_system/sub/generator/generators/new_generator.rb +0 -74
- data/lib/dev_system/sub/generator/generators/not_found_generator.rb +0 -155
- data/lib/dev_system/sub/generator/generators/not_found_generator_test.rb +0 -11
- data/lib/dev_system/sub/generator/generators/simple_generator.rb +0 -257
- data/lib/dev_system/sub/log/commands/log_command.rb +0 -11
- data/lib/dev_system/sub/log/generators/log_generator.rb +0 -54
- data/lib/dev_system/sub/log/generators/log_generator_test.rb +0 -10
- data/lib/dev_system/sub/log/log_panel.rb +0 -47
- data/lib/dev_system/sub/log/log_panel_test.rb +0 -50
- data/lib/dev_system/sub/shell/commands/convert_command.rb +0 -27
- data/lib/dev_system/sub/shell/commands/convert_command_test.rb +0 -10
- data/lib/dev_system/sub/shell/commands/format_command.rb +0 -25
- data/lib/dev_system/sub/shell/commands/format_command_test.rb +0 -10
- data/lib/dev_system/sub/shell/commands/loc_command.rb +0 -211
- data/lib/dev_system/sub/shell/commands/loc_command_test.rb +0 -10
- data/lib/dev_system/sub/shell/commands/shell_command.rb +0 -45
- data/lib/dev_system/sub/shell/commands/shell_command_test.rb +0 -11
- data/lib/dev_system/sub/shell/converter_shells/coffee_converter_shell.rb +0 -21
- data/lib/dev_system/sub/shell/converter_shells/converter_shell.rb +0 -13
- data/lib/dev_system/sub/shell/converter_shells/haml_converter_shell.rb +0 -30
- data/lib/dev_system/sub/shell/converter_shells/md_converter_shell.rb +0 -21
- data/lib/dev_system/sub/shell/formatter_shells/formatter_shell.rb +0 -13
- data/lib/dev_system/sub/shell/formatter_shells/html_formatter_shell.rb +0 -20
- data/lib/dev_system/sub/shell/generators/shell_generator.rb +0 -68
- data/lib/dev_system/sub/shell/generators/shell_generator_test.rb +0 -10
- data/lib/dev_system/sub/shell/shell_panel.rb +0 -98
- data/lib/dev_system/sub/shell/shell_panel_test.rb +0 -18
- data/lib/dev_system/sub/shell/shells/app_shell.rb +0 -185
- data/lib/dev_system/sub/shell/shells/app_shell_test.rb +0 -26
- data/lib/dev_system/sub/shell/shells/controller_shell.rb +0 -20
- data/lib/dev_system/sub/shell/shells/controller_shell_test.rb +0 -16
- data/lib/dev_system/sub/shell/shells/file_shell.rb +0 -59
- data/lib/dev_system/sub/shell/shells/kernel_shell.rb +0 -22
- data/lib/dev_system/sub/shell/shells/line_shell.rb +0 -56
- data/lib/dev_system/sub/shell/shells/method_shell_test.rb +0 -34
- data/lib/happy_system/sub/axo/generators/axo_generator_test.rb +0 -11
- data/lib/lerb.rb +0 -152
- data/lib/liza/base/controller.rb +0 -26
- data/lib/liza/base/controller_test.rb +0 -36
- data/lib/liza/base/panel_test.rb +0 -179
- data/lib/liza/base_parts/controller_subsystem_part.rb +0 -93
- data/lib/liza/base_parts/panel_rescuer_part.rb +0 -129
- data/lib/liza/meta/box.rb +0 -24
- data/lib/liza/meta/box_test.rb +0 -20
- data/lib/liza/meta/part.rb +0 -17
- data/lib/liza/meta/part_test.rb +0 -11
- data/lib/liza/meta/system.rb +0 -61
- data/lib/liza/meta/system_test.rb +0 -15
- data/lib/liza/ruby_tests/class_test.rb +0 -20
- data/lib/liza/ruby_tests/module_test.rb +0 -21
- data/lib/liza/safety/test.rb +0 -19
- data/lib/liza/safety_parts/test_assertions_advanced_part.rb +0 -125
- data/lib/liza/safety_parts/test_assertions_part.rb +0 -109
- data/lib/liza/safety_parts/test_dsl_part.rb +0 -68
- data/lib/liza/safety_parts/test_log_part.rb +0 -142
- data/lib/liza/safety_parts/test_subject_part.rb +0 -32
- data/lib/liza/safety_parts/test_tree_part.rb +0 -87
- data/lib/liza/unit_parts/unit_classes_part.rb +0 -37
- data/lib/liza/unit_parts/unit_classes_part_test.rb +0 -3
- data/lib/liza/unit_parts/unit_logging_part.rb +0 -139
- data/lib/liza/unit_parts/unit_logging_part_test.rb +0 -3
- data/lib/liza/unit_parts/unit_methods_part.rb +0 -35
- data/lib/liza/unit_parts/unit_methods_part_test.rb +0 -3
- 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_renderer_part.rb +0 -171
- data/lib/liza/unit_parts/unit_renderer_part_test.rb +0 -15
- data/lib/liza/unit_parts/unit_settings_part.rb +0 -84
- data/lib/liza/unit_parts/unit_settings_part_test.rb +0 -3
- data/lib/lizarb/ruby/class.rb +0 -25
- data/lib/lizarb/ruby/module.rb +0 -17
- data/lib/lizarb/ruby/proc.rb +0 -12
- data/lib/lizarb/ruby/string.rb +0 -35
- data/lib/lizarb/ruby/time.rb +0 -9
- data/lib/net_system/sub/client/generators/client_generator.rb +0 -88
- data/lib/net_system/sub/client/generators/client_generator_test.rb +0 -10
- data/lib/net_system/sub/database/clients/redis_client.rb +0 -29
- data/lib/net_system/sub/database/commands/database_command.rb +0 -32
- data/lib/net_system/sub/database/commands/database_command_test.rb +0 -11
- data/lib/net_system/sub/database/database_panel.rb +0 -10
- data/lib/net_system/sub/record/generators/record_generator.rb +0 -33
- data/lib/net_system/sub/record/generators/record_generator_test.rb +0 -11
- data/lib/net_system/sub/record/record.rb +0 -29
- data/lib/net_system/sub/record/record_test.rb +0 -11
- data/lib/web_system/sub/rack/commands/rack_command_test.rb +0 -11
- data/lib/web_system/sub/rack/rack.rb +0 -6
- data/lib/web_system/sub/rack/rack_panel_test.rb +0 -11
- data/lib/web_system/sub/request/commands/request_command_test.rb +0 -11
- data/lib/web_system/sub/request/generators/request_generator.rb +0 -96
- data/lib/web_system/sub/request/generators/request_generator_test.rb +0 -11
- data/lib/web_system/sub/request/request_panel_test.rb +0 -54
- /data/lib/dev_system/{sub → subsystems}/log/log.rb +0 -0
- /data/lib/dev_system/{sub → subsystems}/shell/shells/bin_shell.rb +0 -0
- /data/lib/dev_system/{sub → subsystems}/shell/shells/kernel_shell_test.rb +0 -0
- /data/lib/dev_system/{sub → subsystems}/shell/shells/method_shell.rb +0 -0
- /data/lib/dev_system/{sub → subsystems}/shell/shells/text_file_shell.rb +0 -0
- /data/lib/happy_system/{sub → subsystems}/axo/commands/axo_command_test.rb +0 -0
- /data/lib/liza/{ruby_tests → extra_tests}/object_test.rb +0 -0
- /data/lib/liza/{ruby_tests → extra_tests}/string_test.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/client/client.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/client/client_panel.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/clients/mongo_client_test.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/clients/pgsql_client_test.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/clients/redis_client_test.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/clients/sqlite_client_test.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/database.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/databases/mongo_db.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/databases/mongo_db_test.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/databases/mysql_db.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/databases/mysql_db_test.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/databases/pgsql_db.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/databases/pgsql_db_test.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/databases/redis_db.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/databases/redis_db_test.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/databases/sqlite_db.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/database/databases/sqlite_db_test.rb +0 -0
- /data/lib/net_system/{sub → subsystems}/record/record_panel.rb +0 -0
- /data/lib/web_system/{sub → subsystems}/rack/middle_racks/first_middle_rack.rb +0 -0
- /data/lib/web_system/{sub → subsystems}/rack/middle_racks/last_middle_rack.rb +0 -0
- /data/lib/web_system/{sub → subsystems}/request/request.rb +0 -0
- /data/lib/web_system/{sub → subsystems}/request/router_requests/router_request.rb +0 -0
data/lib/lizarb.rb
CHANGED
@@ -3,48 +3,128 @@
|
|
3
3
|
# This flag allows database connection tests
|
4
4
|
# ENV["DBTEST"] ||= "1"
|
5
5
|
|
6
|
+
$VERBOSE ||= ENV["VERBOSE"]
|
7
|
+
$main = self
|
6
8
|
$boot_time = Time.now
|
7
9
|
|
8
|
-
|
9
|
-
require "json"
|
10
|
-
require "pathname"
|
11
|
-
require "fileutils"
|
12
|
-
require "lerb"
|
10
|
+
puts "$VERBOSE = true" if $VERBOSE
|
13
11
|
|
14
|
-
require_relative "lizarb/version"
|
12
|
+
require_relative "lizarb/version" unless defined? Lizarb::VERSION
|
15
13
|
|
16
|
-
|
14
|
+
class Class
|
17
15
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
class SystemNotFound < Error; end
|
16
|
+
def descendants
|
17
|
+
ObjectSpace.each_object(Class).select { |klass| klass < self }
|
18
|
+
end
|
22
19
|
|
23
|
-
|
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
|
24
67
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
68
|
+
def absolute_source
|
69
|
+
sl = source_location
|
70
|
+
"#{sl[0]}:#{sl[1]}"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
class String
|
75
|
+
alias lpartition partition
|
76
|
+
|
77
|
+
def camelcase
|
78
|
+
split("_").map { |s| "#{s[0].to_s.upcase}#{s[1..-1]}" }.join("")
|
32
79
|
end
|
33
80
|
|
34
|
-
|
35
|
-
IS_LIZ_DIR = File.file? "#{CUR_DIR}/lib/lizarb.rb"
|
36
|
-
IS_GEM_DIR = File.file? "#{CUR_DIR}/lizarb.gemspec"
|
81
|
+
alias camelize camelcase
|
37
82
|
|
38
|
-
|
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
|
39
94
|
|
40
|
-
|
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
|
41
121
|
|
42
122
|
#
|
43
123
|
|
44
124
|
module_function
|
45
125
|
|
46
126
|
def log s
|
47
|
-
print "#{$boot_time.diff}s " if defined? $
|
127
|
+
print "#{$boot_time.diff}s " if defined? $log_boot_high
|
48
128
|
puts s
|
49
129
|
end
|
50
130
|
|
@@ -62,45 +142,205 @@ module Lizarb
|
|
62
142
|
RUBY_ENGINE != "jruby"
|
63
143
|
end
|
64
144
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
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
|
69
157
|
end
|
70
158
|
|
71
|
-
#
|
72
|
-
def
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
159
|
+
# ["/path/to/lizarb.rb", 1]
|
160
|
+
def source_location
|
161
|
+
[__FILE__, 1]
|
162
|
+
end
|
163
|
+
|
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
|
78
199
|
end
|
200
|
+
load
|
79
201
|
end
|
80
202
|
|
81
|
-
|
82
|
-
|
83
|
-
|
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
|
84
243
|
|
85
|
-
|
86
|
-
|
87
|
-
App::LOG_LEVELS.each do |k, v|
|
88
|
-
puts "$log_boot_#{k} = #{v >= level}" if level == -3
|
89
|
-
eval "$log_boot_#{k} = true" if v >= level
|
244
|
+
DevSystem::DevBox.configure :log do
|
245
|
+
handler log_handler
|
90
246
|
end
|
91
|
-
|
92
|
-
|
247
|
+
end
|
248
|
+
|
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
|
93
299
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
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
|
98
316
|
end
|
99
317
|
|
100
|
-
#
|
101
|
-
|
102
|
-
|
103
|
-
|
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
|
104
344
|
end
|
105
345
|
|
106
346
|
def exit_messages
|
@@ -112,7 +352,7 @@ module Lizarb
|
|
112
352
|
app: $APP,
|
113
353
|
mode: App.mode,
|
114
354
|
log_boot: App.log_boot,
|
115
|
-
log_level: App.
|
355
|
+
log_level: App.log_level,
|
116
356
|
}
|
117
357
|
github = "https://github.com/lizarb/lizarb"
|
118
358
|
puts info.to_s
|
@@ -120,93 +360,337 @@ module Lizarb
|
|
120
360
|
puts "Fork us on Github at #{github}/fork"
|
121
361
|
end
|
122
362
|
|
123
|
-
# setup
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
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
|
132
393
|
|
133
|
-
|
134
|
-
|
135
|
-
|
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
|
136
409
|
end
|
137
410
|
end
|
138
411
|
|
139
|
-
|
140
|
-
|
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"
|
141
423
|
|
142
424
|
finder = \
|
143
|
-
proc do |
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
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
|
149
435
|
end
|
150
436
|
end
|
151
437
|
|
152
|
-
|
153
|
-
|
154
|
-
gemfile ||= finder.call "#{CUR_DIR}/Gemfile"
|
155
|
-
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
|
156
440
|
|
157
|
-
|
158
|
-
ENV["BUNDLE_GEMFILE"] = gemfile
|
441
|
+
raise Error, "Could not find #{$APP}.rb in #{@app_dir} or #{@liz_dir}"
|
159
442
|
end
|
160
443
|
|
161
|
-
#
|
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
|
162
460
|
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
461
|
+
if env_systems_directory = ENV["SYSTEMS_DIR"]
|
462
|
+
App.systems_directory env_systems_directory
|
463
|
+
end
|
464
|
+
|
465
|
+
if s = ENV["LOG_BOOT"] || ENV["LOG"]
|
466
|
+
App.log_boot (s.length == 1) ? s.to_i : s.to_sym
|
467
|
+
end
|
468
|
+
|
469
|
+
if s = ENV["LOG_LEVEL"] || ENV["LOG"]
|
470
|
+
App.log_level (s.length == 1) ? s.to_i : s.to_sym
|
471
|
+
end
|
472
|
+
|
473
|
+
if env_mode = ENV["MODE"]
|
474
|
+
App.mode env_mode
|
475
|
+
end
|
476
|
+
|
477
|
+
if env_gemfile = ENV["GEMFILE"]
|
478
|
+
App.gemfile env_gemfile
|
479
|
+
end
|
480
|
+
|
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
|
173
486
|
end
|
487
|
+
end
|
488
|
+
end
|
174
489
|
|
175
|
-
|
176
|
-
|
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
|
514
|
+
|
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
|
518
|
+
end
|
177
519
|
|
178
|
-
|
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
|
179
563
|
end
|
180
564
|
|
181
|
-
#
|
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
|
182
600
|
|
183
|
-
|
184
|
-
|
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
|
185
610
|
|
186
611
|
$mode = App.mode
|
187
|
-
log " $mode = #{$mode.inspect}" if defined? $
|
612
|
+
log " $mode = #{$mode.inspect}" if defined? $log_boot_higher
|
188
613
|
$coding = App.coding?
|
189
|
-
log " $coding enabled because $mode == :code | A bit slower for debugging purposes" if $coding && defined? $
|
614
|
+
log " $coding enabled because $mode == :code | A bit slower for debugging purposes" if $coding && defined? $log_boot_higher
|
190
615
|
end
|
191
616
|
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
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
|
198
628
|
|
199
|
-
|
200
|
-
log "
|
629
|
+
files = App.env_vars || []
|
630
|
+
log " ENV variables from #{files.count} sources" if defined? $log_boot_higher
|
201
631
|
|
202
|
-
|
632
|
+
return if files.empty?
|
203
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
|
657
|
+
end
|
658
|
+
|
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
|
204
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
|
205
688
|
require "liza"
|
689
|
+
log " required Liza" if defined? $log_boot_higher
|
206
690
|
|
207
691
|
# loaders[0] first loads Liza, then each System class
|
208
692
|
|
209
|
-
log " Zeitwerk loaders [0] first loads Liza, then each System class" if defined? $
|
693
|
+
log " Zeitwerk loaders [0] first loads Liza, then each System class" if defined? $log_boot_higher
|
210
694
|
|
211
695
|
loaders << loader = Zeitwerk::Loader.new
|
212
696
|
loader.tag = Liza.to_s
|
@@ -219,29 +703,69 @@ module Lizarb
|
|
219
703
|
|
220
704
|
# loader setup
|
221
705
|
|
706
|
+
log " Setting up" if defined? $log_boot_higher
|
222
707
|
loader.enable_reloading
|
708
|
+
log " loader.enable_reloading" if defined? $log_boot_highest
|
223
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
|
714
|
+
|
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
|
224
725
|
|
225
726
|
# bundle each System gem
|
226
727
|
|
728
|
+
log " Bundler.require :systems" if defined? $log_boot_higherß
|
227
729
|
Bundler.require :systems
|
228
730
|
|
229
731
|
# load each System class
|
230
732
|
|
231
|
-
log " App.systems is Hash containing all system classes" if defined? $
|
232
|
-
App.systems.keys.each do |
|
233
|
-
|
234
|
-
|
235
|
-
require_system key
|
236
|
-
klass = Object.const_get key.camelize
|
237
|
-
|
238
|
-
App.systems[k] = klass
|
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
|
239
737
|
end
|
240
738
|
|
241
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
|
242
766
|
|
243
767
|
# loaders[1] first loads each System, then the App
|
244
|
-
log " Zeitwerk loaders [1] first loads each System, then the App" if defined? $
|
768
|
+
log " Zeitwerk loaders [1] first loads each System, then the App" if defined? $log_boot_higher
|
245
769
|
loaders << loader = Zeitwerk::Loader.new
|
246
770
|
|
247
771
|
# collapse each System paths
|
@@ -256,53 +780,42 @@ module Lizarb
|
|
256
780
|
|
257
781
|
app_dir = App.path
|
258
782
|
if app_dir
|
259
|
-
log " Application Directory: #{app_dir}" if defined? $
|
783
|
+
log " Application Directory: #{app_dir}" if defined? $log_boot_highest
|
260
784
|
list = Dir["#{app_dir}/*"].to_set
|
261
785
|
end
|
262
786
|
|
263
787
|
if app_dir.nil? || list.empty?
|
264
|
-
log " Application Directory is empty" if defined? $
|
788
|
+
log " Application Directory is empty" if defined? $log_boot_highest
|
265
789
|
else
|
266
|
-
log " Application Directory found #{list.count} items to collapse" if defined? $
|
790
|
+
log " Application Directory found #{list.count} items to collapse" if defined? $log_boot_highest
|
267
791
|
|
268
792
|
to_collapse = []
|
269
793
|
|
270
794
|
App.systems.each do |k, klass|
|
271
795
|
next if klass.subs.empty?
|
796
|
+
|
272
797
|
box_dir = "#{app_dir}/#{k}"
|
273
798
|
box_file = "#{box_dir}_box.rb"
|
799
|
+
next if !list.include? box_file
|
274
800
|
|
275
|
-
if
|
276
|
-
log " Missd box file #{box_file}! Generating it"
|
277
|
-
|
278
|
-
File.write box_file, <<-RUBY
|
279
|
-
class #{k.to_s.camelize}Box < #{k.to_s.camelize}System::#{k.to_s.camelize}Box
|
280
|
-
|
281
|
-
end
|
282
|
-
RUBY
|
283
|
-
end
|
284
|
-
|
285
|
-
log " Found box file #{box_file}" if defined? $log_boot_lowest
|
801
|
+
log " Found box file #{box_file}" if defined? $log_boot_highest
|
286
802
|
to_collapse << box_file
|
287
803
|
|
288
|
-
if
|
289
|
-
log "
|
290
|
-
else
|
291
|
-
log " Found controllers #{box_dir}" if defined? $log_boot_lowest
|
804
|
+
if list.include? box_dir
|
805
|
+
log " Found controllers #{box_dir}" if defined? $log_boot_highest
|
292
806
|
to_collapse << box_dir
|
293
807
|
end
|
294
|
-
|
295
808
|
end
|
296
809
|
|
297
810
|
# ORDER MATTERS: IGNORE, COLLAPSE, PUSH
|
298
811
|
to_ignore = list - to_collapse
|
299
812
|
to_ignore.each do |file|
|
300
|
-
log " Ignoring #{file}" if $
|
813
|
+
log " Ignoring #{file}" if defined? $log_boot_highest
|
301
814
|
loader.ignore file
|
302
815
|
end
|
303
816
|
|
304
817
|
to_collapse.each do |path|
|
305
|
-
log " Collapsing #{path}" if $
|
818
|
+
log " Collapsing #{path}" if defined? $log_boot_highest
|
306
819
|
if path.end_with? ".rb"
|
307
820
|
loader.collapse path
|
308
821
|
else
|
@@ -316,137 +829,40 @@ end
|
|
316
829
|
|
317
830
|
# loader setup
|
318
831
|
|
832
|
+
log " Setting up" if defined? $log_boot_higher
|
319
833
|
loader.enable_reloading
|
834
|
+
log " loader.enable_reloading" if defined? $log_boot_highest
|
320
835
|
loader.setup
|
321
|
-
|
322
|
-
# App connects to systems
|
323
|
-
|
324
|
-
log " Zeitwerk loaders eager load" if defined? $log_boot_lowest
|
325
|
-
loaders.map &:eager_load
|
326
|
-
end
|
327
|
-
|
328
|
-
def connect_systems
|
329
|
-
log " Lizarb.#{__method__} (#{App.systems.count})" if defined? $log_boot_low
|
330
|
-
App.systems.each do |system_key, system_class|
|
331
|
-
connect_system system_key, system_class
|
332
|
-
connect_box system_key, system_class
|
333
|
-
end
|
334
|
-
end
|
335
|
-
|
336
|
-
# systems
|
337
|
-
|
338
|
-
def require_system key
|
339
|
-
log " require '#{key}'" if defined? $log_boot_lowest
|
340
|
-
require key
|
341
|
-
rescue LoadError => e
|
342
|
-
def e.backtrace; []; end
|
343
|
-
raise SystemNotFound, "FILE #{key}.rb not found on $LOAD_PATH", []
|
344
|
-
end
|
345
|
-
|
346
|
-
def connect_system key, system_class
|
347
|
-
t = Time.now
|
348
|
-
puts if defined? $log_boot_low
|
349
|
-
|
350
|
-
system_class.color DevSystem::ColorShell.parse system_class.color unless system_class.color.is_a? Array
|
351
|
-
|
352
|
-
color_system_class = Liza::Unit.stick(system_class.color, system_class.name).to_s
|
353
|
-
|
354
|
-
log "CONNECTING SYSTEM #{color_system_class}" if defined? $log_boot_low
|
355
|
-
|
356
|
-
# Ignore this for now.
|
357
|
-
# This feature has been commented out for simplicity purposes.
|
358
|
-
# It injects code into other classes just like Part does. System defines them
|
359
|
-
|
360
|
-
# index = 0
|
361
|
-
# system_class.registrar.each do |string, target_block|
|
362
|
-
# reg_type, _sep, reg_target = string.to_s.lpartition "_"
|
363
|
-
|
364
|
-
# index += 1
|
365
|
-
|
366
|
-
# target_klass = Liza.const reg_target
|
367
|
-
|
368
|
-
# if reg_type == "insertion"
|
369
|
-
# target_klass.class_exec(&target_block)
|
370
|
-
# else
|
371
|
-
# raise "TODO: decide and implement system extension"
|
372
|
-
# end
|
373
|
-
# log "CONNECTING SYSTEM-PART #{color_system_class}.#{reg_type.to_s.ljust 11} to #{target_klass.to_s.ljust 30} at #{target_block.source_location * ":"} " if defined? $log_boot_low
|
374
|
-
# end
|
375
|
-
|
376
|
-
# pad = 21-system_class.name.size
|
377
|
-
# log "CONNECTED SYSTEM #{t.diff}s for #{color_system_class}#{"".ljust pad} to connect to #{index} system parts" if defined? $log_boot_normal
|
378
|
-
end
|
379
|
-
|
380
|
-
def connect_box key, system_class
|
381
|
-
t = Time.now
|
382
|
-
|
383
|
-
box_class = system_class.box
|
384
|
-
color_box_class = Liza::Unit.stick(system_class.color, box_class.name).to_s
|
385
|
-
|
386
|
-
log "CONNECTING BOX #{color_box_class}" if defined? $log_boot_low
|
387
|
-
index = 0
|
388
|
-
# system_class.subs.keys.each do |sub_key|
|
389
|
-
system_class.subs.each do |sub_key|
|
390
|
-
panel_class_name = "#{sub_key}_panel".camelize
|
391
|
-
controller_class_name = sub_key.to_s.camelize
|
392
|
-
|
393
|
-
index += 1
|
394
|
-
pad = 30-box_class.name.size-sub_key.to_s.size
|
395
|
-
log "CONNECTED BOX TO PANEL #{"#{color_box_class}[:#{sub_key}]"}#{"".ljust pad} is an instance of #{panel_class_name.ljust_blanks 20} and it configures #{controller_class_name}" if defined? $log_boot_low
|
396
|
-
end
|
397
|
-
|
398
|
-
log "CONNECTED BOX #{t.diff}s" if defined? $log_boot_low
|
399
|
-
end
|
400
|
-
|
401
|
-
# parts
|
402
|
-
|
403
|
-
def connect_part unit_class, key, part_class, system
|
404
|
-
if defined? $log_boot_lowest
|
405
|
-
t = Time.now
|
406
|
-
string = " #{unit_class}.part :#{key}"
|
407
|
-
log string
|
408
|
-
end
|
409
|
-
|
410
|
-
part_class ||= if system.nil?
|
411
|
-
Liza.const "#{key}_part"
|
412
|
-
else
|
413
|
-
Liza.const("#{system}_system")
|
414
|
-
.const "#{key}_part"
|
415
|
-
end
|
416
|
-
|
417
|
-
if part_class.insertion
|
418
|
-
unit_class.class_exec(&part_class.insertion)
|
419
|
-
end
|
420
|
-
|
421
|
-
if part_class.extension
|
422
|
-
part_class.const_set :Extension, Class.new(Liza::PartExtension)
|
423
|
-
part_class::Extension.class_exec(&part_class.extension)
|
424
|
-
end
|
425
|
-
|
426
|
-
if defined? $log_boot_lowest
|
427
|
-
log " ."
|
428
|
-
end
|
836
|
+
log " loader.setup" if defined? $log_boot_highest
|
429
837
|
end
|
430
838
|
|
431
839
|
# loaders
|
432
840
|
|
433
841
|
@loaders = []
|
434
|
-
@mutex = Mutex.new
|
435
842
|
|
436
843
|
def loaders
|
437
844
|
@loaders
|
438
845
|
end
|
439
846
|
|
440
847
|
def reload &block
|
441
|
-
@
|
442
|
-
|
443
|
-
yield if block_given?
|
444
|
-
end
|
445
|
-
|
848
|
+
@eager_loaded = false
|
849
|
+
loaders[1].reload
|
446
850
|
true
|
447
851
|
end
|
448
852
|
|
449
|
-
|
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
|
863
|
+
end
|
864
|
+
|
865
|
+
# naive thread management
|
450
866
|
|
451
867
|
def thread_object_id
|
452
868
|
Thread.current.object_id
|