lib/dry/system/container.rb in dry-system-0.5.1 vs lib/dry/system/container.rb in dry-system-0.6.0

- old
+ new

@@ -1,12 +1,12 @@ require 'pathname' +require 'dry-auto_inject' require 'dry-configurable' require 'dry-container' require 'dry/system/errors' -require 'dry/system/injector' require 'dry/system/loader' require 'dry/system/booter' require 'dry/system/auto_registrar' require 'dry/system/importer' require 'dry/system/component' @@ -39,11 +39,11 @@ # Every container needs to be configured with following settings: # # * `:name` - a unique container identifier # * `:root` - a system root directory (defaults to `pwd`) # * `:system_dir` - directory name relative to root, where bootable components - # can be defined in `boot` dir this defaults to `component` + # can be defined in `boot` dir this defaults to `system` # # @example # class MyApp < Dry::System::Container # configure do |config| # config.name = :my_app @@ -370,11 +370,11 @@ # # @param options [Hash] injector options # # @api public def injector(options = {}) - Injector.new(self, options: options) + Dry::AutoInject(self, options) end # Requires one or more files relative to the container's root # # @example @@ -411,10 +411,17 @@ # @api public def root config.root end + # @api public + def resolve(key) + load_component(key) unless frozen? + + super + end + # @api private def load_paths @load_paths ||= [] end @@ -449,10 +456,12 @@ unless component.file_exists?(load_paths) raise FileNotFoundError, component end - Kernel.require(component.path) && yield + Kernel.require(component.path) + + yield end # @api private def load_component(key) return self if key?(key)