Class: TypeBalancer::StrategyFactory
- Inherits:
-
Object
- Object
- TypeBalancer::StrategyFactory
- Defined in:
- lib/type_balancer/strategy_factory.rb
Overview
Factory for creating and managing balancing strategies
Class Method Summary collapse
- .create(strategy_name = nil) ⇒ Object
- .default_strategy ⇒ Object
- .default_strategy=(name) ⇒ Object
- .register(name, strategy_class) ⇒ Object
Class Method Details
.create(strategy_name = nil) ⇒ Object
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_strategy ⇒ Object
26 27 28 |
# File 'lib/type_balancer/strategy_factory.rb', line 26 def default_strategy @default_strategy ||= :sliding_window end |
.default_strategy=(name) ⇒ Object
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 |