providers 0.4.0 → 0.5.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/providers.rb +22 -5
  3. data/lib/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ae6e1bb3fca5b395d2e28d8e4844dbdbb84817cff3d5cd38a6f144d1318ef9b0
4
- data.tar.gz: 6f00911d21891db4a2c4bdaf9186b9cfe9b2b045f4fe5e308f5381b6572f22e9
3
+ metadata.gz: 2f00a76777a6c399d76aa2e7b9da8620d4282d6b92ab59426f349ad43dcbcf0f
4
+ data.tar.gz: ccba87d34e77891304bca92fce2c6b7f3f485fe81bb959a27699f53819147c01
5
5
  SHA512:
6
- metadata.gz: 8c7122adaae197ea905c768a892cc8a2f71296b403b4d7d6b2061c90ca8e9d92da13dbddc124483563be12264dd91a5b314495184326fea8072113c50ae36061
7
- data.tar.gz: 1fd20a67479d3b196f96ec1ac068874573f0ff83ca7c931d872ea161dfe3b18233d0bd8ec7d797f607176ef59a4717b88f3c172970ec5baee993237de86c071f
6
+ metadata.gz: 8624a205b4ca891a1464338ffc3dbb6b959ea0d896c25d15b0a6ee010cae08dcdad9ddf3d19ba05d5ff58a9ec5523c64a1c6e3a357da4f5bf2479b6fa847d0c7
7
+ data.tar.gz: 3982786ceb3db9878cdfed87d078a2abd8cc7b9a325b7e705741e63579f69bdf0218542e118e081c701e642aac0932c0b04b46af285142f5ca47df5164e5d736
data/lib/providers.rb CHANGED
@@ -17,11 +17,18 @@ module Providers
17
17
 
18
18
  # Providers[] are hard to stub in tests and should only be used when dependency injection isn't possible.
19
19
  # TODO: Make Providers[] easy to stub in tests and look into feature where we get providers from another Ecosystem.
20
- def [](provider_key)
21
- provider = providers[provider_key]
22
- raise(MissingProviderError, "Provider #{provider_key.inspect} not found") if provider.nil?
23
-
24
- provider.result
20
+ def [](*provider_keys)
21
+ provider_keys = [*provider_keys]
22
+
23
+ raise(MissingProviderError, 'Pass one more provider keys') if provider_keys.empty?
24
+
25
+ if provider_keys.count == 1
26
+ result(provider_keys.first)
27
+ else
28
+ provider_keys.map do |provider_key|
29
+ result(provider_key)
30
+ end
31
+ end
25
32
  end
26
33
 
27
34
  def all
@@ -31,5 +38,15 @@ module Providers
31
38
  def clear
32
39
  @providers = {}
33
40
  end
41
+
42
+ private
43
+
44
+ def result(provider_key)
45
+ provider = providers[provider_key]
46
+
47
+ raise(MissingProviderError, "Provider #{provider_key.inspect} not found") if provider.nil?
48
+
49
+ provider.result
50
+ end
34
51
  end
35
52
  end
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Providers
4
- VERSION = '0.4.0'
4
+ VERSION = '0.5.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: providers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - maedi
@@ -58,7 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  - !ruby/object:Gem::Version
59
59
  version: '0'
60
60
  requirements: []
61
- rubygems_version: 4.0.6
61
+ rubygems_version: 4.0.10
62
62
  specification_version: 4
63
63
  summary: Dependency Injection in crisp and clear syntax
64
64
  test_files: []