Skip to content

Fix keyword argument forwarding in Initializer module#93

Open
bolshakov wants to merge 1 commit intodry-rb:mainfrom
bolshakov:fix/container-initialization-with-kw-arguments
Open

Fix keyword argument forwarding in Initializer module#93
bolshakov wants to merge 1 commit intodry-rb:mainfrom
bolshakov:fix/container-initialization-with-kw-arguments

Conversation

@bolshakov
Copy link
Copy Markdown

The Initializer module's initialize method only captured positional arguments (*args), causing it to fail when containers were initialized with keyword arguments:

class MyContainer
  include Dry::Container::Mixin

  def initialize(config:, data_store:)
    # ...
  end
end

MyContainer.new(config: cfg, data_store: ds)

I updated Initializer#initialize to explicitly capture and forward keyword arguments using **kwargs:

def initialize(*args, **kwargs, &block)
  @_container = ::Concurrent::Hash.new
  super
end

The `Initializer` module's `initialize` method only captured positional arguments (`*args`), causing it to fail when containers were initialized with keyword arguments:

```ruby
class MyContainer
  include Dry::Container::Mixin

  def initialize(config:, data_store:)
    # ...
  end
end

MyContainer.new(config: cfg, data_store: ds)
```

I updated `Initializer#initialize` to explicitly capture and forward keyword arguments using `**kwargs`:

```ruby
def initialize(*args, **kwargs, &block)
  @_container = ::Concurrent::Hash.new
  super
end
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant