dinja 1.0.0 → 1.1.0
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/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