class Nand::Launcher::RbFileLauncher
Public Class Methods
launchable?( target, io, opts )
click to toggle source
# File lib/nand/launcher/rb_file_launcher.rb, line 8 def self.launchable?( target, io, opts ) return false unless target.to_s =~/\.rb$/ require_rb(target) and true rescue LoadError => e io.puts "\t- " + e.message false rescue => e io.puts "\t- " + e.message false end
load( target, opts, *argv )
click to toggle source
# File lib/nand/launcher/rb_file_launcher.rb, line 19 def self.load( target, opts, *argv ) plugin = opts[:plugin] || File.basename(target, ".rb").split(/_/).map{|s| s.capitalize}.join #raise "Option --plugin is Required for #{target}" if plugin.nil? executor = Plugin.plugin!(plugin, *argv) raise "Executor #{plugin} is Not Emplemented exec Method" unless executor.respond_to?(:exec) RbFileLauncher.new(target, executor, opts, *argv) rescue LoadError => e raise "Not Found Plugin #{target}" end
new(target, executor, opts, *argv)
click to toggle source
Calls superclass method
Nand::Launcher::Base::new
# File lib/nand/launcher/rb_file_launcher.rb, line 34 def initialize(target, executor, opts, *argv) super(target, opts, *argv) @executor = executor end
rb_file(target)
click to toggle source
# File lib/nand/launcher/rb_file_launcher.rb, line 31 def self.rb_file(target) Pathname.new(target).expand_path end
require_rb(target)
click to toggle source
# File lib/nand/launcher/rb_file_launcher.rb, line 28 def self.require_rb(target) require "#{RbFileLauncher.rb_file(target).to_s}" end
Public Instance Methods
launch()
click to toggle source
# File lib/nand/launcher/rb_file_launcher.rb, line 38 def launch if child = Process.fork child else begin STDIN.reopen(@exec_stdin) STDOUT.reopen(@exec_stdout) STDERR.reopen(@exec_stderr) Signal.trap(:INT) {exit 0} Signal.trap(:TERM) {exit 0} Process.setpgrp @executor.exec rescue LoadError => e STDERR.puts e.message rescue => e STDERR.puts e.message ensure end end end