Skip to content

Commit 8a916b0

Browse files
authored
Merge pull request #58 from dry-rb/support-injection-of-false
Support explicit injection of falsey values
2 parents 4dd0df6 + 170251a commit 8a916b0

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

lib/dry/auto_inject/strategies/kwargs.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def define_new
1616

1717
define_method :new do |*args, **kwargs|
1818
map.each do |name, identifier|
19-
kwargs[name] ||= container[identifier]
19+
kwargs[name] = container[identifier] unless kwargs.key?(name)
2020
end
2121

2222
super(*args, **kwargs)

spec/integration/kwargs_spec.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# frozen_string_literal: true
2+
3+
RSpec.describe "kwargs" do
4+
it "supports explicit injection of falsey values" do
5+
module Test
6+
AutoInject = Dry::AutoInject(one: "dep 1")
7+
end
8+
9+
obj = Class.new do
10+
include Test::AutoInject[:one]
11+
end
12+
13+
expect(obj.new.one).to eq "dep 1"
14+
expect(obj.new(one: false).one).to be false
15+
expect(obj.new(one: nil).one).to be nil
16+
end
17+
end

0 commit comments

Comments
 (0)