Class: Wireless::Resolver
- Inherits:
-
Object
- Object
- Wireless::Resolver
- Defined in:
- lib/wireless/resolver.rb,
lib/wireless/resolver/factory.rb,
lib/wireless/resolver/singleton.rb
Overview
The registry is a key/value store (Hash) whose keys are symbols and whose values are instances of this class. Resolvers are responsible for returning their dependencies, which they do by calling their corresponding blocks. They can wrap additional behaviors around this call, e.g. singletons (Wireless::Resolver::Singleton) cache the result so that the block is only called once.
Defined Under Namespace
Instance Method Summary collapse
-
#initialize(block = nil) ⇒ Resolver
constructor
A new instance of Resolver.
-
#resolve(_fetcher) ⇒ Object
Abstract method: must be implemented in subclasses.
Constructor Details
#initialize(block = nil) ⇒ Resolver
Returns a new instance of Resolver.
10 11 12 13 14 15 16 17 18 |
# File 'lib/wireless/resolver.rb', line 10 def initialize(block = nil) if block.respond_to?(:call) @block = block elsif block.is_a?(Class) @block = proc { block.new } else raise ArgumentError, "invalid argument: expected a block or a class, got: #{block.class}" end end |
Instance Method Details
#resolve(_fetcher) ⇒ Object
Abstract method: must be implemented in subclasses
21 22 23 |
# File 'lib/wireless/resolver.rb', line 21 def resolve(_fetcher) raise NotImplementedError, '#resolve is an abstract method' end |