Class: TypeBalancer::StrategyFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/type_balancer/strategy_factory.rb

Overview

Factory for creating and managing balancing strategies

Class Method Summary collapse

Class Method Details

.create(strategy_name = nil) ⇒ Object

Raises:

  • (ArgumentError)


7
8
9
10
11
12
13
14
# File 'lib/type_balancer/strategy_factory.rb', line 7

def create(strategy_name = nil, **)
  strategy_name ||= default_strategy
  strategy_class = find_strategy(strategy_name)

  raise ArgumentError, "Unknown strategy: #{strategy_name}" unless strategy_class

  strategy_class.new(**)
end

.default_strategyObject



26
27
28
# File 'lib/type_balancer/strategy_factory.rb', line 26

def default_strategy
  @default_strategy ||= :sliding_window
end

.default_strategy=(name) ⇒ Object

Raises:

  • (ArgumentError)


20
21
22
23
24
# File 'lib/type_balancer/strategy_factory.rb', line 20

def default_strategy=(name)
  raise ArgumentError, "Unknown strategy: #{name}" unless strategies.key?(name.to_sym)

  @default_strategy = name.to_sym
end

.register(name, strategy_class) ⇒ Object



16
17
18
# File 'lib/type_balancer/strategy_factory.rb', line 16

def register(name, strategy_class)
  strategies[name.to_sym] = strategy_class
end