Class: Blinkist::Config::Factory
- Inherits:
-
Object
- Object
- Blinkist::Config::Factory
- Defined in:
- lib/blinkist/config/factory.rb
Instance Method Summary collapse
- #call(strategy) ⇒ Object
-
#initialize(aspect, implementations, env = Blinkist::Config.env, app_name = Blinkist::Config.app_name) ⇒ Factory
constructor
A new instance of Factory.
Constructor Details
#initialize(aspect, implementations, env = Blinkist::Config.env, app_name = Blinkist::Config.app_name) ⇒ Factory
Returns a new instance of Factory.
4 5 6 7 8 9 |
# File 'lib/blinkist/config/factory.rb', line 4 def initialize(aspect, implementations, env=Blinkist::Config.env, app_name=Blinkist::Config.app_name) @aspect = aspect @implementations = implementations @env = env @app_name = app_name end |
Instance Method Details
#call(strategy) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/blinkist/config/factory.rb', line 11 def call(strategy) case strategy when Symbol klass = @implementations[strategy] || raise(NotImplementedError, "Unknown strategy #{strategy} for #{@aspect}") when Class klass = strategy else if strategy.respond_to?(:call) return strategy else raise InvalidStrategyError end end klass.new(@env, @app_name) end |