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 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