gitextract_5feq0jid/ ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report.md │ │ └── config.yml │ ├── SUPPORT.md │ └── workflows/ │ ├── ci-lint.yml │ ├── ci.yml │ ├── pr-comments.yml │ ├── repo-sync-preview.yml │ └── rubocop.yml ├── .gitignore ├── .rspec ├── .yardopts ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Gemfile ├── Gemfile.devtools ├── LICENSE ├── README.md ├── Rakefile ├── bin/ │ ├── .gitkeep │ └── console ├── docsite/ │ └── source/ │ ├── component-dirs.html.md │ ├── container/ │ │ └── hooks.html.md │ ├── container.html.md │ ├── dependency-auto-injection.html.md │ ├── external-provider-sources.html.md │ ├── index.html.md │ ├── plugins.html.md │ ├── providers.html.md │ ├── settings.html.md │ └── test-mode.html.md ├── dry-system.gemspec ├── examples/ │ ├── custom_configuration_auto_register/ │ │ ├── Gemfile │ │ ├── lib/ │ │ │ ├── entities/ │ │ │ │ └── user.rb │ │ │ └── user_repo.rb │ │ ├── run.rb │ │ └── system/ │ │ ├── boot/ │ │ │ └── persistence.rb │ │ ├── container.rb │ │ └── import.rb │ ├── standalone/ │ │ ├── Gemfile │ │ ├── lib/ │ │ │ ├── empty_service.rb │ │ │ ├── not_registered.rb │ │ │ ├── service_with_dependency.rb │ │ │ └── user_repo.rb │ │ ├── run.rb │ │ └── system/ │ │ ├── container.rb │ │ ├── import.rb │ │ └── providers/ │ │ └── persistence.rb │ └── zeitwerk/ │ ├── Gemfile │ ├── lib/ │ │ ├── service_with_dependency.rb │ │ └── user_repo.rb │ ├── run.rb │ └── system/ │ ├── container.rb │ └── import.rb ├── lib/ │ ├── dry/ │ │ ├── system/ │ │ │ ├── auto_registrar.rb │ │ │ ├── component.rb │ │ │ ├── component_dir.rb │ │ │ ├── config/ │ │ │ │ ├── component_dir.rb │ │ │ │ ├── component_dirs.rb │ │ │ │ ├── namespace.rb │ │ │ │ └── namespaces.rb │ │ │ ├── constants.rb │ │ │ ├── container.rb │ │ │ ├── errors.rb │ │ │ ├── identifier.rb │ │ │ ├── importer.rb │ │ │ ├── indirect_component.rb │ │ │ ├── loader/ │ │ │ │ └── autoloading.rb │ │ │ ├── loader.rb │ │ │ ├── magic_comments_parser.rb │ │ │ ├── manifest_registrar.rb │ │ │ ├── plugins/ │ │ │ │ ├── bootsnap.rb │ │ │ │ ├── dependency_graph/ │ │ │ │ │ └── strategies.rb │ │ │ │ ├── dependency_graph.rb │ │ │ │ ├── env.rb │ │ │ │ ├── logging.rb │ │ │ │ ├── monitoring/ │ │ │ │ │ └── proxy.rb │ │ │ │ ├── monitoring.rb │ │ │ │ ├── notifications.rb │ │ │ │ ├── plugin.rb │ │ │ │ ├── zeitwerk/ │ │ │ │ │ └── compat_inflector.rb │ │ │ │ └── zeitwerk.rb │ │ │ ├── plugins.rb │ │ │ ├── provider/ │ │ │ │ ├── source.rb │ │ │ │ └── source_dsl.rb │ │ │ ├── provider.rb │ │ │ ├── provider_registrar.rb │ │ │ ├── provider_source_registry.rb │ │ │ ├── provider_sources/ │ │ │ │ ├── settings/ │ │ │ │ │ ├── config.rb │ │ │ │ │ └── loader.rb │ │ │ │ └── settings.rb │ │ │ ├── provider_sources.rb │ │ │ ├── stubs.rb │ │ │ └── version.rb │ │ └── system.rb │ └── dry-system.rb ├── repo-sync.yml ├── spec/ │ ├── fixtures/ │ │ ├── app/ │ │ │ ├── lib/ │ │ │ │ ├── ignored_spec_service.rb │ │ │ │ └── spec_service.rb │ │ │ └── system/ │ │ │ └── providers/ │ │ │ └── client.rb │ │ ├── autoloading/ │ │ │ └── lib/ │ │ │ └── test/ │ │ │ ├── entities/ │ │ │ │ └── foo_entity.rb │ │ │ └── foo.rb │ │ ├── components/ │ │ │ └── test/ │ │ │ ├── bar/ │ │ │ │ ├── abc.rb │ │ │ │ └── baz.rb │ │ │ ├── bar.rb │ │ │ ├── foo.rb │ │ │ └── no_register.rb │ │ ├── components_with_errors/ │ │ │ └── test/ │ │ │ └── constant_error.rb │ │ ├── deprecations/ │ │ │ └── bootable_dirs_config/ │ │ │ └── system/ │ │ │ ├── boot/ │ │ │ │ └── logger.rb │ │ │ └── custom_boot/ │ │ │ └── logger.rb │ │ ├── external_components/ │ │ │ ├── alt-components/ │ │ │ │ ├── db.rb │ │ │ │ └── logger.rb │ │ │ ├── components/ │ │ │ │ ├── logger.rb │ │ │ │ ├── mailer.rb │ │ │ │ └── notifier.rb │ │ │ └── lib/ │ │ │ └── external_components.rb │ │ ├── external_components_deprecated/ │ │ │ ├── components/ │ │ │ │ └── logger.rb │ │ │ └── lib/ │ │ │ └── external_components.rb │ │ ├── import_test/ │ │ │ ├── config/ │ │ │ │ └── application.yml │ │ │ └── lib/ │ │ │ └── test/ │ │ │ ├── bar.rb │ │ │ └── foo.rb │ │ ├── lazy_loading/ │ │ │ ├── auto_registration_disabled/ │ │ │ │ └── lib/ │ │ │ │ ├── entities/ │ │ │ │ │ └── kitten.rb │ │ │ │ └── fetch_kitten.rb │ │ │ └── shared_root_keys/ │ │ │ ├── lib/ │ │ │ │ └── kitten_service/ │ │ │ │ ├── fetch_kitten.rb │ │ │ │ └── submit_kitten.rb │ │ │ └── system/ │ │ │ └── providers/ │ │ │ └── kitten_service.rb │ │ ├── lazytest/ │ │ │ ├── config/ │ │ │ │ └── application.yml │ │ │ ├── lib/ │ │ │ │ └── test/ │ │ │ │ ├── dep.rb │ │ │ │ ├── foo.rb │ │ │ │ ├── models/ │ │ │ │ │ ├── book.rb │ │ │ │ │ └── user.rb │ │ │ │ └── models.rb │ │ │ └── system/ │ │ │ └── providers/ │ │ │ └── bar.rb │ │ ├── magic_comments/ │ │ │ └── comments.rb │ │ ├── manifest_registration/ │ │ │ ├── lib/ │ │ │ │ └── test/ │ │ │ │ └── foo.rb │ │ │ └── system/ │ │ │ └── registrations/ │ │ │ └── foo.rb │ │ ├── memoize_magic_comments/ │ │ │ └── test/ │ │ │ ├── memoize_false_comment.rb │ │ │ ├── memoize_no_comment.rb │ │ │ └── memoize_true_comment.rb │ │ ├── mixed_namespaces/ │ │ │ └── lib/ │ │ │ └── test/ │ │ │ ├── external/ │ │ │ │ └── external_component.rb │ │ │ └── my_app/ │ │ │ └── app_component.rb │ │ ├── multiple_namespaced_components/ │ │ │ └── multiple/ │ │ │ └── level/ │ │ │ ├── baz.rb │ │ │ └── foz.rb │ │ ├── multiple_provider_dirs/ │ │ │ ├── custom_bootables/ │ │ │ │ └── logger.rb │ │ │ └── default_bootables/ │ │ │ ├── inflector.rb │ │ │ └── logger.rb │ │ ├── namespaced_components/ │ │ │ └── namespaced/ │ │ │ ├── bar.rb │ │ │ └── foo.rb │ │ ├── other/ │ │ │ ├── config/ │ │ │ │ └── providers/ │ │ │ │ ├── bar.rb │ │ │ │ └── hell.rb │ │ │ └── lib/ │ │ │ └── test/ │ │ │ ├── dep.rb │ │ │ ├── foo.rb │ │ │ ├── models/ │ │ │ │ ├── book.rb │ │ │ │ └── user.rb │ │ │ └── models.rb │ │ ├── require_path/ │ │ │ └── lib/ │ │ │ └── test/ │ │ │ └── foo.rb │ │ ├── settings_test/ │ │ │ └── types.rb │ │ ├── standard_container_with_default_namespace/ │ │ │ └── lib/ │ │ │ └── test/ │ │ │ ├── dep.rb │ │ │ └── example_with_dep.rb │ │ ├── standard_container_without_default_namespace/ │ │ │ └── lib/ │ │ │ └── test/ │ │ │ ├── dep.rb │ │ │ └── example_with_dep.rb │ │ ├── stubbing/ │ │ │ ├── lib/ │ │ │ │ └── test/ │ │ │ │ └── car.rb │ │ │ └── system/ │ │ │ └── providers/ │ │ │ └── db.rb │ │ ├── test/ │ │ │ ├── config/ │ │ │ │ ├── application.yml │ │ │ │ └── subapp.yml │ │ │ ├── lib/ │ │ │ │ └── test/ │ │ │ │ ├── dep.rb │ │ │ │ ├── foo.rb │ │ │ │ ├── models/ │ │ │ │ │ ├── book.rb │ │ │ │ │ └── user.rb │ │ │ │ ├── models.rb │ │ │ │ └── singleton_dep.rb │ │ │ ├── log/ │ │ │ │ └── .gitkeep │ │ │ └── system/ │ │ │ └── providers/ │ │ │ ├── bar.rb │ │ │ ├── client.rb │ │ │ ├── db.rb │ │ │ ├── hell.rb │ │ │ └── logger.rb │ │ ├── umbrella/ │ │ │ └── system/ │ │ │ └── providers/ │ │ │ └── db.rb │ │ └── unit/ │ │ ├── component/ │ │ │ ├── component_dir_1/ │ │ │ │ ├── namespace/ │ │ │ │ │ └── nested/ │ │ │ │ │ ├── component_file.rb │ │ │ │ │ └── component_file_with_auto_register_false.rb │ │ │ │ └── outside_namespace/ │ │ │ │ └── component_file.rb │ │ │ └── component_dir_2/ │ │ │ └── namespace/ │ │ │ └── nested/ │ │ │ └── component_file.rb │ │ └── component_dir/ │ │ └── component_file.rb │ ├── integration/ │ │ ├── boot_spec.rb │ │ ├── container/ │ │ │ ├── auto_registration/ │ │ │ │ ├── component_dir_namespaces/ │ │ │ │ │ ├── autoloading_loader_spec.rb │ │ │ │ │ ├── deep_namespace_paths_spec.rb │ │ │ │ │ ├── default_loader_spec.rb │ │ │ │ │ ├── multiple_namespaces_spec.rb │ │ │ │ │ └── namespaces_as_defaults_spec.rb │ │ │ │ ├── custom_auto_register_proc_spec.rb │ │ │ │ ├── custom_instance_proc_spec.rb │ │ │ │ ├── custom_loader_spec.rb │ │ │ │ ├── memoize_spec.rb │ │ │ │ └── mixed_namespaces_spec.rb │ │ │ ├── auto_registration_spec.rb │ │ │ ├── autoloading_spec.rb │ │ │ ├── importing/ │ │ │ │ ├── container_registration_spec.rb │ │ │ │ ├── exports_spec.rb │ │ │ │ ├── import_namespaces_spec.rb │ │ │ │ ├── imported_component_protection_spec.rb │ │ │ │ └── partial_imports_spec.rb │ │ │ ├── lazy_loading/ │ │ │ │ ├── auto_registration_disabled_spec.rb │ │ │ │ ├── bootable_components_spec.rb │ │ │ │ └── manifest_registration_spec.rb │ │ │ ├── plugins/ │ │ │ │ ├── bootsnap_spec.rb │ │ │ │ ├── dependency_graph_spec.rb │ │ │ │ ├── env_spec.rb │ │ │ │ ├── logging_spec.rb │ │ │ │ └── zeitwerk/ │ │ │ │ ├── eager_loading_spec.rb │ │ │ │ ├── namespaces_spec.rb │ │ │ │ ├── resolving_components_spec.rb │ │ │ │ └── user_configured_loader_spec.rb │ │ │ ├── plugins_spec.rb │ │ │ └── providers/ │ │ │ ├── conditional_providers_spec.rb │ │ │ ├── custom_provider_registrar_spec.rb │ │ │ ├── custom_provider_superclass_spec.rb │ │ │ ├── multiple_provider_dirs_spec.rb │ │ │ ├── provider_sources/ │ │ │ │ └── provider_options_spec.rb │ │ │ ├── registering_components_spec.rb │ │ │ └── resolving_root_key_spec.rb │ │ ├── did_you_mean_integration_spec.rb │ │ ├── external_components_spec.rb │ │ ├── import_spec.rb │ │ └── settings_component_spec.rb │ ├── spec_helper.rb │ ├── support/ │ │ ├── coverage.rb │ │ ├── loaded_constants_cleaning.rb │ │ ├── rspec.rb │ │ ├── tmp_directory.rb │ │ ├── warnings.rb │ │ └── zeitwerk_loader_registry.rb │ └── unit/ │ ├── auto_registrar_spec.rb │ ├── component_dir/ │ │ ├── component_for_identifier_key.rb │ │ └── each_component_spec.rb │ ├── component_dir_spec.rb │ ├── component_spec.rb │ ├── config/ │ │ ├── component_dirs_spec.rb │ │ └── namespaces_spec.rb │ ├── container/ │ │ ├── auto_register_spec.rb │ │ ├── boot_spec.rb │ │ ├── config/ │ │ │ └── root_spec.rb │ │ ├── configuration_spec.rb │ │ ├── decorate_spec.rb │ │ ├── hooks/ │ │ │ ├── after_hooks_spec.rb │ │ │ └── load_path_hook_spec.rb │ │ ├── hooks_spec.rb │ │ ├── import_spec.rb │ │ ├── injector_spec.rb │ │ ├── load_path_spec.rb │ │ ├── monitor_spec.rb │ │ └── notifications_spec.rb │ ├── container_spec.rb │ ├── errors_spec.rb │ ├── identifier_spec.rb │ ├── indirect_component_spec.rb │ ├── loader/ │ │ └── autoloading_spec.rb │ ├── loader_spec.rb │ ├── magic_comments_parser_spec.rb │ ├── provider/ │ │ └── source_spec.rb │ └── provider_sources/ │ └── settings/ │ └── loader_spec.rb └── zizmor.yml