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)