Module: Nand::Launcher

Defined in:
lib/nand/launcher.rb,
lib/nand/launcher/shell_launcher.rb,
lib/nand/launcher/plugin_launcher.rb,
lib/nand/launcher/rb_file_launcher.rb,
lib/nand/launcher/executable_file_launcher.rb

Defined Under Namespace

Classes: Base, ExecutableFileLauncher, PluginLauncher, RbFileLauncher, ShellLauncher

Class Method Summary collapse

Class Method Details

.find(target, opts = {}, *argv) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/nand/launcher.rb', line 8

def self.find(target, opts = {}, *argv)
  require 'nand/launcher/executable_file_launcher'
  require 'nand/launcher/shell_launcher'
  require 'nand/launcher/rb_file_launcher'
  require 'nand/launcher/plugin_launcher'

  err = StringIO.new("", "w")
  launcher_klass = [ExecutableFileLauncher, RbFileLauncher, PluginLauncher, ShellLauncher].find do |klass|
    klass.launchable? target, err, opts
  end
  raise "Not Found Executable #{target}:\n#{io.string}" if launcher_klass.nil?
  launcher = launcher_klass.load(target, opts, *argv)
  raise "Not be Ready for #{target} Launcher" unless launcher.ready?
  launcher
end