Class: Coach::Cli::ProviderFinder
- Inherits:
-
Object
- Object
- Coach::Cli::ProviderFinder
- Defined in:
- lib/coach/cli/provider_finder.rb
Instance Method Summary collapse
- #find_chain ⇒ Object
- #find_provider ⇒ Object
-
#initialize(middleware_name, value_name) ⇒ ProviderFinder
constructor
A new instance of ProviderFinder.
Constructor Details
#initialize(middleware_name, value_name) ⇒ ProviderFinder
Returns a new instance of ProviderFinder.
9 10 11 12 |
# File 'lib/coach/cli/provider_finder.rb', line 9 def initialize(middleware_name, value_name) @middleware_name = middleware_name @value_name = value_name end |
Instance Method Details
#find_chain ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/coach/cli/provider_finder.rb', line 32 def find_chain enforce_middleware_exists! middleware = Module.const_get(@middleware_name) enforce_middleware_requires_value!(middleware) provider_chain = build_provider_chain(middleware, Hash.new { Set.new }, []) if provider_chain.key?(@value_name.to_sym) chains = provider_chain[@value_name.to_sym] else err = Errors::ValueNotProvidedError.new(@middleware_name, @value_name) raise err end chains.map { |chain| chain.map(&:to_s).reverse }.to_set end |
#find_provider ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/coach/cli/provider_finder.rb', line 14 def find_provider enforce_middleware_exists! middleware = Module.const_get(@middleware_name) enforce_middleware_requires_value!(middleware) provider_mapping = build_provider_mapping(middleware, Hash.new { Set.new }) if provider_mapping.key?(@value_name.to_sym) providers = provider_mapping[@value_name.to_sym] else err = Errors::ValueNotProvidedError.new(@middleware_name, @value_name) raise err end providers.to_a.map(&:to_s) end |