class Blinkist::Config::Factory
Public Class Methods
new(aspect, implementations, env=Blinkist::Config.env, app_name=Blinkist::Config.app_name)
click to toggle source
# 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
Public Instance Methods
call(strategy)
click to toggle source
# 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