Class: KuberKit::ShellLauncher::Launcher

Inherits:
Object
  • Object
show all
Defined in:
lib/kuber_kit/shell_launcher/launcher.rb

Constant Summary collapse

StrategyNotFoundError =
Class.new(KuberKit::NotFoundError)

Instance Method Summary collapse

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