/Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `initialize': wrong number of arguments (given 1, expected 0) (ArgumentError)
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `new'
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `block (2 levels) in define_new'
from /Users/eric/.gem/gems/selenium-webdriver-4.32.0/lib/selenium/webdriver/common/file_reaper.rb:35:in `tmp_files'
from /Users/eric/.gem/gems/selenium-webdriver-4.32.0/lib/selenium/webdriver/common/file_reaper.rb:53:in `reap!'
from /Users/eric/.gem/gems/selenium-webdriver-4.32.0/lib/selenium/webdriver/common/file_reaper.rb:62:in `block in <module:FileReaper>'
/Users/eric/.gem/gems/pry-0.14.2/lib/pry/output.rb:10:in `initialize': wrong number of arguments (given 2, expected 1) (ArgumentError)
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `new'
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `block (2 levels) in define_new'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:539:in `output'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:85:in `epilogue'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:40:in `ensure in start'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:40:in `start'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:15:in `start'
from /Users/eric/.gem/gems/pry-byebug-3.10.1/lib/pry-byebug/pry_ext.rb:15:in `start_with_pry_byebug'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_class.rb:194:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:59:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:8:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:87:in `perform'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor/command.rb:28:in `run'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor/invocation.rb:127:in `invoke_command'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command/base.rb:178:in `invoke_command'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor.rb:538:in `dispatch'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command/base.rb:73:in `perform'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:71:in `block in invoke'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:149:in `with_argv'
I have the same error when defining
require 'dry/system/container'
class AppContainer < Dry::System::Container
configure do |config|
config.root = Pathname(".")
config.component_dirs.add 'app'
config.component_dirs.add 'lib'
end
end
AppImport = AppContainer.injector
AppContainer.finalize!
Thanks for sharing this, @ericto! Is there any chance you might be able to share a minimal reproduction of the errors you’re seeing? It looks like the error might have something to do with the kind of class you’re putting the include AutoInject into.
[8] pry(main)> include AutoInject[:injected_value]
/Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `initialize': wrong number of arguments (given 1, expected 0) (ArgumentError)
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `new'
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `block (2 levels) in define_new'
from /Users/eric/.gem/gems/selenium-webdriver-4.32.0/lib/selenium/webdriver/common/file_reaper.rb:35:in `tmp_files'
from /Users/eric/.gem/gems/selenium-webdriver-4.32.0/lib/selenium/webdriver/common/file_reaper.rb:53:in `reap!'
from /Users/eric/.gem/gems/selenium-webdriver-4.32.0/lib/selenium/webdriver/common/file_reaper.rb:62:in `block in <module:FileReaper>'
/Users/eric/.gem/gems/pry-0.14.2/lib/pry/output.rb:10:in `initialize': wrong number of arguments (given 2, expected 1) (ArgumentError)
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `new'
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `block (2 levels) in define_new'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:539:in `output'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:85:in `epilogue'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:40:in `ensure in start'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:40:in `start'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:15:in `start'
from /Users/eric/.gem/gems/pry-byebug-3.11.0/lib/pry-byebug/pry_ext.rb:15:in `start_with_pry_byebug'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_class.rb:194:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:59:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:8:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:87:in `perform'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor/command.rb:28:in `run'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor/invocation.rb:127:in `invoke_command'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command/base.rb:178:in `invoke_command'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor.rb:538:in `dispatch'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command/base.rb:73:in `perform'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:71:in `block in invoke'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:149:in `with_argv'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:69:in `invoke'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands.rb:18:in `<main>'
from /Users/eric/.rbenv/versions/3.3.0/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
from /Users/eric/.rbenv/versions/3.3.0/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
from /Users/eric/.gem/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from bin/rails:4:in `<main>'
/Users/eric/.gem/gems/pry-0.14.2/lib/pry/config/value.rb:11:in `initialize': wrong number of arguments (given 2, expected 1) (ArgumentError)
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `new'
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `block (2 levels) in define_new'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/config/attributable.rb:14:in `block in attribute'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/exceptions.rb:18:in `==='
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:660:in `rescue in handle_line'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:653:in `handle_line'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:261:in `block (2 levels) in eval'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:260:in `catch'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:260:in `block in eval'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:259:in `catch'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:259:in `eval'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:77:in `block in repl'
from <internal:kernel>:187:in `loop'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:67:in `repl'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:38:in `block in start'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/input_lock.rb:61:in `__with_ownership'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/input_lock.rb:78:in `with_ownership'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:38:in `start'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:15:in `start'
from /Users/eric/.gem/gems/pry-byebug-3.11.0/lib/pry-byebug/pry_ext.rb:15:in `start_with_pry_byebug'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_class.rb:194:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:59:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:8:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:87:in `perform'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor/command.rb:28:in `run'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor/invocation.rb:127:in `invoke_command'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command/base.rb:178:in `invoke_command'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor.rb:538:in `dispatch'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command/base.rb:73:in `perform'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:71:in `block in invoke'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:149:in `with_argv'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:69:in `invoke'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands.rb:18:in `<main>'
from /Users/eric/.rbenv/versions/3.3.0/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
from /Users/eric/.rbenv/versions/3.3.0/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
from /Users/eric/.gem/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from bin/rails:4:in `<main>'
/Users/eric/.gem/gems/pry-0.14.2/lib/pry/config/value.rb:11:in `initialize': wrong number of arguments (given 2, expected 1) (ArgumentError)
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `new'
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `block (2 levels) in define_new'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/config/attributable.rb:14:in `block in attribute'
from /Users/eric/.rbenv/versions/3.3.0/lib/ruby/3.3.0/forwardable.rb:240:in `hooks'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:395:in `exec_hook'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:294:in `evaluate_ruby'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:659:in `handle_line'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:261:in `block (2 levels) in eval'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:260:in `catch'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:260:in `block in eval'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:259:in `catch'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:259:in `eval'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:77:in `block in repl'
from <internal:kernel>:187:in `loop'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:67:in `repl'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:38:in `block in start'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/input_lock.rb:61:in `__with_ownership'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/input_lock.rb:78:in `with_ownership'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:38:in `start'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:15:in `start'
from /Users/eric/.gem/gems/pry-byebug-3.11.0/lib/pry-byebug/pry_ext.rb:15:in `start_with_pry_byebug'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_class.rb:194:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:59:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:8:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:87:in `perform'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor/command.rb:28:in `run'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor/invocation.rb:127:in `invoke_command'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command/base.rb:178:in `invoke_command'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor.rb:538:in `dispatch'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command/base.rb:73:in `perform'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:71:in `block in invoke'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:149:in `with_argv'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:69:in `invoke'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands.rb:18:in `<main>'
from /Users/eric/.rbenv/versions/3.3.0/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
from /Users/eric/.rbenv/versions/3.3.0/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
from /Users/eric/.gem/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from bin/rails:4:in `<main>'
/Users/eric/.gem/gems/pry-0.14.2/lib/pry/output.rb:10:in `initialize': wrong number of arguments (given 2, expected 1) (ArgumentError)
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `new'
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `block (2 levels) in define_new'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:539:in `output'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:85:in `epilogue'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:40:in `ensure in start'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:40:in `start'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:15:in `start'
from /Users/eric/.gem/gems/pry-byebug-3.11.0/lib/pry-byebug/pry_ext.rb:15:in `start_with_pry_byebug'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_class.rb:194:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:59:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:8:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:87:in `perform'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor/command.rb:28:in `run'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor/invocation.rb:127:in `invoke_command'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command/base.rb:178:in `invoke_command'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor.rb:538:in `dispatch'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command/base.rb:73:in `perform'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:71:in `block in invoke'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:149:in `with_argv'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:69:in `invoke'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands.rb:18:in `<main>'
from /Users/eric/.rbenv/versions/3.3.0/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
from /Users/eric/.rbenv/versions/3.3.0/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
from /Users/eric/.gem/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from bin/rails:4:in `<main>'
/Users/eric/.gem/gems/pry-0.14.2/lib/pry/config/value.rb:11:in `initialize': wrong number of arguments (given 2, expected 1) (ArgumentError)
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `new'
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `block (2 levels) in define_new'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/config/attributable.rb:14:in `block in attribute'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/exceptions.rb:18:in `==='
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:660:in `rescue in handle_line'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:653:in `handle_line'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:261:in `block (2 levels) in eval'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:260:in `catch'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:260:in `block in eval'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:259:in `catch'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:259:in `eval'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:77:in `block in repl'
from <internal:kernel>:187:in `loop'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:67:in `repl'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:38:in `block in start'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/input_lock.rb:61:in `__with_ownership'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/input_lock.rb:78:in `with_ownership'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:38:in `start'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:15:in `start'
from /Users/eric/.gem/gems/pry-byebug-3.11.0/lib/pry-byebug/pry_ext.rb:15:in `start_with_pry_byebug'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_class.rb:194:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:59:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:8:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:87:in `perform'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor/command.rb:28:in `run'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor/invocation.rb:127:in `invoke_command'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command/base.rb:178:in `invoke_command'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor.rb:538:in `dispatch'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command/base.rb:73:in `perform'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:71:in `block in invoke'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:149:in `with_argv'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:69:in `invoke'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands.rb:18:in `<main>'
from /Users/eric/.rbenv/versions/3.3.0/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
from /Users/eric/.rbenv/versions/3.3.0/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
from /Users/eric/.gem/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from bin/rails:4:in `<main>'
/Users/eric/.gem/gems/pry-0.14.2/lib/pry/config/value.rb:11:in `initialize': wrong number of arguments (given 2, expected 1) (ArgumentError)
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `new'
from /Users/eric/.gem/gems/dry-auto_inject-0.9.0/lib/dry/auto_inject/strategies/kwargs.rb:22:in `block (2 levels) in define_new'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/config/attributable.rb:14:in `block in attribute'
from /Users/eric/.rbenv/versions/3.3.0/lib/ruby/3.3.0/forwardable.rb:240:in `hooks'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:395:in `exec_hook'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:294:in `evaluate_ruby'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:659:in `handle_line'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:261:in `block (2 levels) in eval'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:260:in `catch'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:260:in `block in eval'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:259:in `catch'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_instance.rb:259:in `eval'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:77:in `block in repl'
from <internal:kernel>:187:in `loop'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:67:in `repl'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:38:in `block in start'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/input_lock.rb:61:in `__with_ownership'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/input_lock.rb:78:in `with_ownership'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:38:in `start'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/repl.rb:15:in `start'
from /Users/eric/.gem/gems/pry-byebug-3.11.0/lib/pry-byebug/pry_ext.rb:15:in `start_with_pry_byebug'
from /Users/eric/.gem/gems/pry-0.14.2/lib/pry/pry_class.rb:194:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:59:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:8:in `start'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands/console/console_command.rb:87:in `perform'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor/command.rb:28:in `run'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor/invocation.rb:127:in `invoke_command'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command/base.rb:178:in `invoke_command'
from /Users/eric/.gem/gems/thor-1.3.2/lib/thor.rb:538:in `dispatch'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command/base.rb:73:in `perform'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:71:in `block in invoke'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:149:in `with_argv'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/command.rb:69:in `invoke'
from /Users/eric/.gem/gems/railties-7.2.2.1/lib/rails/commands.rb:18:in `<main>'
from /Users/eric/.rbenv/versions/3.3.0/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
from /Users/eric/.rbenv/versions/3.3.0/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
from /Users/eric/.gem/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from bin/rails:4:in `<main>'
Thanks @ericto. This explains the issue. Per our docs, the auto-injection mixin is intended to be included in a class.
Dry AutoInject expects there to be an #initialize available on that class that accepts keyword arguments (when using the default kwargs strategy, at least).
The purpose of AutoInject is to allow that class to be initialized called with .new, and then have its dependencies from the container be made available automatically.
For example:
di_container = Dry::Container.new
di_container.register(:injected_value, FooBar)
AutoInject = Dry::AutoInject(di_container)
class MyClass
include AutoInject[:injected_value]
end
my_obj = MyClass.new
my_obj.injected_value # => FooBar
When you’re doing include AutoInject[:injected_value] in Ruby’s top-level scope (i.e. outside of a class), I’m not sure what exactly you’re wanting to call .new on. There’s nothing to initialize at that point. (Kust to be technically clear, there is an #initialize available on the top-level binding, but it’s the one defined by BasicObject, and it does not take any arguments, which is the reason you were seeing that error).
What are you trying to achieve with that include AutoInject[:injected_value] line where it is? If all you want to do is access the :injected_value there, you can access it directly from the container, you don’t need AutoInject to do it for you: di_container[:injected_value].
To wrap this up neatly: if you want to use the auto injection mixin, you need to put it in a class.
Sorry for the misundertand, The example displayed does not reflect the reality of my issue. I don’t really inject a string but a PORO, like the one you displayed in your example.