Class: KuberKit::ShellLauncher::Launcher
- Defined in:
- lib/kuber_kit/shell_launcher/launcher.rb
Constant Summary collapse
- StrategyNotFoundError =
Class.new(KuberKit::NotFoundError)
Instance Method Summary collapse
- #call(shell, strategy_name) ⇒ Object
- #get_strategy(strategy_name) ⇒ Object
- #register_strategy(strategy_name, strategy) ⇒ Object
Instance Method Details
#call(shell, strategy_name) ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/kuber_kit/shell_launcher/launcher.rb', line 9 def call(shell, strategy_name) launcher = get_strategy(strategy_name) raise StrategyNotFoundError, "Can't find strategy with name #{strategy_name}" if launcher.nil? launcher.call(shell) end |
#get_strategy(strategy_name) ⇒ Object
27 28 29 30 |
# File 'lib/kuber_kit/shell_launcher/launcher.rb', line 27 def get_strategy(strategy_name) @@strategies ||= {} @@strategies[strategy_name] end |
#register_strategy(strategy_name, strategy) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/kuber_kit/shell_launcher/launcher.rb', line 17 def register_strategy(strategy_name, strategy) @@strategies ||= {} if !strategy.is_a?(KuberKit::ShellLauncher::Strategies::Abstract) raise ArgumentError.new("should be an instance of KuberKit::ShellLauncher::Strategies::Abstract, got: #{strategy.inspect}") end @@strategies[strategy_name] = strategy end |