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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1122813235a4bb4cf99eb67e396cd70e0d58d995228d5d98095159b2bffc1e6b
4
- data.tar.gz: f0a6c651e57ea285eb6ccd842d1e0445861ad02f5be3fb4a4e29a539446427c8
3
+ metadata.gz: eba7d19ae81a5192bbb8ab526bea179925725b9d5456dac7e9bc13c37514b14d
4
+ data.tar.gz: 6eefe11fbbae21a16bfb136f8397abf8deb0b5730ef3d550a5a1313a174e115d
5
5
  SHA512:
6
- metadata.gz: 11a9f8ea23f8ea1b9adf65841eede3baac1073fad9e092ebbccf13925afbbdc34e7b99061d25d23a7f440c69751c843e4b7e056e3d16f18463cad9e55edf6f77
7
- data.tar.gz: 5668ecbbee6758bc7fe4ee9c139fd69ef28d98a8eb4cf99cb44b54668c8272fbae93ad0b27022c50aaa013d4255f4af8fb45cb1f9b22ad97868572ded5e43340
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
- # container.resolve will raise when trying to resolve unregistered dependencies
42
- # Use container.resolve! to resolve unregistered dependencies without raising (dangerous)
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
- # container.register will raise when trying to overwrite registered dependencies
47
- # Use container.register! to overwrite dependencies (dangerous)
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
 
@@ -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
- return dependencies[key].call(*args, &block) if dependencies.key?(key)
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
- dependencies[key]&.call(*args, &block)
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
@@ -3,7 +3,7 @@
3
3
  module Dinja
4
4
  module Version
5
5
  MAJOR = 1
6
- MINOR = 0
6
+ MINOR = 1
7
7
  PATCH = 0
8
8
  PRE = nil
9
9
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dinja
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Dejonckheere