module Nand::Launcher

Public Class Methods

find(target, opts = {}, *argv) click to toggle source
# File lib/nand/launcher.rb, line 7
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