dinja 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -4
- data/lib/dinja/container.rb +22 -4
- data/lib/dinja/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eba7d19ae81a5192bbb8ab526bea179925725b9d5456dac7e9bc13c37514b14d
|
4
|
+
data.tar.gz: 6eefe11fbbae21a16bfb136f8397abf8deb0b5730ef3d550a5a1313a174e115d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddedf291a45f72f8a1c7d19f4f5a2382db610f7be92cc1bc094bbee1d849c83cdfb0e846462ec4b007e00d59e3d8f3554d90e04fac6197dc9d65cc36ff6914de
|
7
|
+
data.tar.gz: 9e90a12d6ed02de1d601121fedaea9dda765df448c46b520a6aca919b6dc65f2a2a123db3ee3829c7f474cf1af2ea9ecea024747591547caadacd6f8d18ce10a
|
data/README.md
CHANGED
@@ -38,13 +38,23 @@ my_dependency = container.resolve("my_dependency", "foobar")
|
|
38
38
|
puts my_dependency.name
|
39
39
|
# => "foobar"
|
40
40
|
|
41
|
-
#
|
42
|
-
|
41
|
+
# Look up a dependency (without resolving)
|
42
|
+
my_dependency = container.lookup("my_dependency")
|
43
|
+
puts my_dependency.call("foobar")
|
44
|
+
# => #<OpenStruct name="foobar">
|
45
|
+
|
46
|
+
# Container#resolve will raise when trying to resolve unregistered dependencies
|
47
|
+
# Use Container#resolve! to resolve unregistered dependencies without raising (dangerous)
|
43
48
|
container.resolve("another_dependency")
|
44
49
|
# => DependencyNotRegistered
|
45
50
|
|
46
|
-
#
|
47
|
-
# Use
|
51
|
+
# Container#lookup will raise when trying to look up unregistered dependencies
|
52
|
+
# Use Container#lookup! to look up unregistered dependencies without raising (dangerous)
|
53
|
+
container.lookup("another_dependency")
|
54
|
+
# => DependencyNotRegistered
|
55
|
+
|
56
|
+
# Container#register will raise when trying to overwrite registered dependencies
|
57
|
+
# Use Container#register! to overwrite dependencies (dangerous)
|
48
58
|
container.register("my_dependency") { |name| OpenStruct.new(name: name) }
|
49
59
|
```
|
50
60
|
|
data/lib/dinja/container.rb
CHANGED
@@ -31,6 +31,26 @@ module Dinja
|
|
31
31
|
dependencies[key] = block
|
32
32
|
end
|
33
33
|
|
34
|
+
# Look up a dependency without resolving it
|
35
|
+
#
|
36
|
+
# @param [String] key The unique name under which the dependency was registered
|
37
|
+
#
|
38
|
+
# @raise [DependencyNotRegistered] If the dependency was not registered
|
39
|
+
#
|
40
|
+
def lookup(key)
|
41
|
+
raise DependencyNotRegistered, "Dependency not registered: #{key}" unless dependencies.key?(key)
|
42
|
+
|
43
|
+
dependencies[key]
|
44
|
+
end
|
45
|
+
|
46
|
+
# Look up a dependency without resolving it
|
47
|
+
#
|
48
|
+
# @param [String] key The unique name under which the dependency was registered
|
49
|
+
#
|
50
|
+
def lookup!(key)
|
51
|
+
dependencies[key]
|
52
|
+
end
|
53
|
+
|
34
54
|
# Resolve a dependency
|
35
55
|
#
|
36
56
|
# @param [String] key The unique key under which the dependency was registered
|
@@ -40,9 +60,7 @@ module Dinja
|
|
40
60
|
# @raise [DependencyNotRegistered] If the dependency was not registered
|
41
61
|
#
|
42
62
|
def resolve(key, *args, &block)
|
43
|
-
|
44
|
-
|
45
|
-
raise DependencyNotRegistered, "Dependency not registered: #{key}"
|
63
|
+
lookup(key).call(*args, &block)
|
46
64
|
end
|
47
65
|
|
48
66
|
# Resolve a dependency
|
@@ -52,7 +70,7 @@ module Dinja
|
|
52
70
|
# @param [Proc] &block The block to pass when resolving the dependency
|
53
71
|
#
|
54
72
|
def resolve!(key, *args, &block)
|
55
|
-
|
73
|
+
lookup!(key)&.call(*args, &block)
|
56
74
|
end
|
57
75
|
|
58
76
|
# Raised when trying to overwrite a dependency that was already registered
|
data/lib/dinja/version.rb
CHANGED