class DRbQS::Setting::Execute
Attributes
server_argument[RW]
Public Class Methods
new()
click to toggle source
Calls superclass method
DRbQS::Setting::Base::new
# File lib/drbqs/setting/execute.rb, line 8 def initialize super(:all_keys_defined => true) do [:port, :server, :node].each do |key| register_key(key, :check => 1) end [:no_server, :no_node, :wait_server_finish, :information, :help].each do |key| register_key(key, :bool => true) end set_argument_condition(:<=, 1) end @server_argument = [] end
Public Instance Methods
exec(io = nil)
click to toggle source
# File lib/drbqs/setting/execute.rb, line 52 def exec(io = nil) process_def = DRbQS::ProcessDefinition.new(@server, @node, @port, io) if @definition process_def.load(@definition) process_def.test_consistency end case @mode when :help io.puts process_def.usage if io when :information io.puts process_def.information_string if io else unless @no_server process_def.execute_server(@server_argument) end unless @no_node process_def.execute_node end if !@no_server && @wait_server_finish process_def.wait_server_finish end end true end
parse!()
click to toggle source
If there are invalid arguments, this method raises an error.
Calls superclass method
DRbQS::Setting::Base#parse!
# File lib/drbqs/setting/execute.rb, line 23 def parse! super @port = get_first(:port) do |val| val.to_i end @no_server = set?(:no_server) @server = get_first(:server) do |val| val.intern end @no_node = set?(:no_node) @node = get_first(:node) do |val| val.split(',').map do |s| s.intern end end @definition = get_argument[0] if get_first(:help) @mode = :help elsif get_first(:information) @mode = :information else @mode = nil end @wait_server_finish = set?(:wait_server_finish) if @mode != :help && !@definition raise DRbQS::Setting::InvalidArgument, "Definition file must be specified." end end