class StrategyStore::Configuration

StrategyStore global configuration

Public Class Methods

new() click to toggle source
# File lib/strategy_store/configuration.rb, line 29
def initialize
  @registered_strategies ||= HashWithIndifferentAccess.new
  default_strategy
end

Public Instance Methods

fetch_strategy(strategy_ui_id) click to toggle source
# File lib/strategy_store/configuration.rb, line 39
def fetch_strategy(strategy_ui_id)
  # TODO : Do not raise error here, just warning a message that the strategy is not registered in initialize
  raise StrategyStore::StrategyMissing.new(strategy_ui_id) unless @registered_strategies[strategy_ui_id]
  @registered_strategies[strategy_ui_id]
end
register_strategy(strategy_ui_id, &block) click to toggle source
# File lib/strategy_store/configuration.rb, line 34
def register_strategy(strategy_ui_id, &block)
  raise StrategyStore::StrategyAlreadyRegister.new(self) if @registered_strategies[strategy_ui_id]
  @registered_strategies[strategy_ui_id] = StrategyStore::StrategyDSL.new(strategy_ui_id, &block)
end

Protected Instance Methods

default_strategy() click to toggle source
# File lib/strategy_store/configuration.rb, line 51
def default_strategy
  @_default_strategy ||= register_strategy(:default) do |strategy|
    strategy.strategy_methods = [:perform]
  end
end