dry-container 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/dry/container/mixin.rb +13 -0
- data/lib/dry/container/registry.rb +1 -0
- data/lib/dry/container/resolver.rb +14 -0
- data/lib/dry/container/version.rb +1 -1
- data/spec/support/shared_examples/container.rb +8 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d052fd82bb7597ea5b8c8b35a2c26b4900f16b02
|
4
|
+
data.tar.gz: 47681932e60338aa93f70417de441d8bc21f52d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ae27a601b7e9ff4574761c43de2328d9ce58c467cd121ef9509b66977a1e171894f3694a4bb8e0308428fc6d33b37519b03ccdac598d9f9b1c142e2fa5409e3
|
7
|
+
data.tar.gz: ff561063839573816a19f1a96a813dda03bb2eea833c7d964c9b2725e79f2047994f72fe1cb05638c0b9c53e9faba56762e78345667eaa2c1331f42354dc1035
|
data/lib/dry/container/mixin.rb
CHANGED
@@ -106,6 +106,19 @@ module Dry
|
|
106
106
|
config.resolver.call(_container, key)
|
107
107
|
end
|
108
108
|
alias_method :[], :resolve
|
109
|
+
|
110
|
+
# Check whether an items is registered under the given key
|
111
|
+
#
|
112
|
+
# @param [Mixed] key
|
113
|
+
# The key you wish to check for registration with
|
114
|
+
#
|
115
|
+
# @return [Bool]
|
116
|
+
#
|
117
|
+
# @api public
|
118
|
+
def key?(key)
|
119
|
+
config.resolver.key?(_container, key)
|
120
|
+
end
|
121
|
+
|
109
122
|
# Evaluate block and register items in namespace
|
110
123
|
#
|
111
124
|
# @param [Mixed] namespace
|
@@ -24,6 +24,20 @@ module Dry
|
|
24
24
|
|
25
25
|
item.call
|
26
26
|
end
|
27
|
+
|
28
|
+
# Check whether an items is registered under the given key
|
29
|
+
#
|
30
|
+
# @param [ThreadSafe::Hash] container
|
31
|
+
# The container
|
32
|
+
# @param [Mixed] key
|
33
|
+
# The key you wish to check for registration with
|
34
|
+
#
|
35
|
+
# @return [Bool]
|
36
|
+
#
|
37
|
+
# @api public
|
38
|
+
def key?(container, key)
|
39
|
+
container.key?(key)
|
40
|
+
end
|
27
41
|
end
|
28
42
|
end
|
29
43
|
end
|
@@ -116,6 +116,7 @@ shared_examples 'a container' do
|
|
116
116
|
it 'registers and resolves an object' do
|
117
117
|
container.register(:item) { 'item' }
|
118
118
|
|
119
|
+
expect(container.key?(:item)).to be true
|
119
120
|
expect(container.resolve(:item)).to eq('item')
|
120
121
|
end
|
121
122
|
end
|
@@ -133,6 +134,7 @@ shared_examples 'a container' do
|
|
133
134
|
it 'registers and resolves a proc' do
|
134
135
|
container.register(:item, call: false) { 'item' }
|
135
136
|
|
137
|
+
expect(container.key?(:item)).to be true
|
136
138
|
expect(container.resolve(:item).call).to eq('item')
|
137
139
|
expect(container[:item].call).to eq('item')
|
138
140
|
end
|
@@ -145,6 +147,7 @@ shared_examples 'a container' do
|
|
145
147
|
it 'registers and resolves an object' do
|
146
148
|
container.register(:item, proc { 'item' })
|
147
149
|
|
150
|
+
expect(container.key?(:item)).to be true
|
148
151
|
expect(container.resolve(:item)).to eq('item')
|
149
152
|
expect(container[:item]).to eq('item')
|
150
153
|
end
|
@@ -154,6 +157,7 @@ shared_examples 'a container' do
|
|
154
157
|
it 'registers and resolves a proc' do
|
155
158
|
container.register(:item, proc { |item| item })
|
156
159
|
|
160
|
+
expect(container.key?(:item)).to be true
|
157
161
|
expect(container.resolve(:item).call('item')).to eq('item')
|
158
162
|
expect(container[:item].call('item')).to eq('item')
|
159
163
|
end
|
@@ -164,6 +168,7 @@ shared_examples 'a container' do
|
|
164
168
|
it 'registers and resolves a proc' do
|
165
169
|
container.register(:item, proc { 'item' }, call: false)
|
166
170
|
|
171
|
+
expect(container.key?(:item)).to be true
|
167
172
|
expect(container.resolve(:item).call).to eq('item')
|
168
173
|
expect(container[:item].call).to eq('item')
|
169
174
|
end
|
@@ -176,6 +181,7 @@ shared_examples 'a container' do
|
|
176
181
|
item = 'item'
|
177
182
|
container.register(:item, item)
|
178
183
|
|
184
|
+
expect(container.key?(:item)).to be true
|
179
185
|
expect(container.resolve(:item)).to be(item)
|
180
186
|
expect(container[:item]).to be(item)
|
181
187
|
end
|
@@ -186,6 +192,7 @@ shared_examples 'a container' do
|
|
186
192
|
item = -> { 'test' }
|
187
193
|
container.register(:item, item, call: false)
|
188
194
|
|
195
|
+
expect(container.key?(:item)).to be true
|
189
196
|
expect(container.resolve(:item)).to eq(item)
|
190
197
|
expect(container[:item]).to eq(item)
|
191
198
|
end
|
@@ -202,6 +209,7 @@ shared_examples 'a container' do
|
|
202
209
|
|
203
210
|
describe 'resolving with a key that has not been registered' do
|
204
211
|
it do
|
212
|
+
expect(container.key?(:item)).to be false
|
205
213
|
expect { container.resolve(:item) }.to raise_error(Dry::Container::Error)
|
206
214
|
end
|
207
215
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dry-container
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Holland
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thread_safe
|
@@ -132,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
132
|
version: '0'
|
133
133
|
requirements: []
|
134
134
|
rubyforge_project:
|
135
|
-
rubygems_version: 2.4.5
|
135
|
+
rubygems_version: 2.4.5
|
136
136
|
signing_key:
|
137
137
|
specification_version: 4
|
138
138
|
summary: A simple container intended for use as an IoC container
|
@@ -141,3 +141,4 @@ test_files:
|
|
141
141
|
- spec/integration/mixin_spec.rb
|
142
142
|
- spec/spec_helper.rb
|
143
143
|
- spec/support/shared_examples/container.rb
|
144
|
+
has_rdoc:
|