class DRbQS::ProcessList::Server

Public Instance Methods

clear_process_not_exist() click to toggle source
# File lib/drbqs/config/process_list.rb, line 119
def clear_process_not_exist
  list.each do |uri, data|
    if !DRbQS::Misc.process_running_normally?(data[:pid]) || !DRbQS::Manage.new(:uri => uri).server_respond?
      delete(uri)
    end
  end
end
delete(uri) click to toggle source
# File lib/drbqs/config/process_list.rb, line 115
def delete(uri)
  delete_file(uri_to_file(uri))
end
get(uri) click to toggle source
# File lib/drbqs/config/process_list.rb, line 111
def get(uri)
  load_file(uri_to_file(uri))
end
list() click to toggle source
# File lib/drbqs/config/process_list.rb, line 95
def list
  h = {}
  entries.each do |file|
    h[file_to_uri(file)] = load_file(file)
  end
  h
end
save(uri, data) click to toggle source

If file exists then this method overwrites the file.

# File lib/drbqs/config/process_list.rb, line 104
def save(uri, data)
  unless save_file(uri_to_file(uri), data)
    delete(uri)
    save(uri, data)
  end
end

Private Instance Methods

file_to_uri(file) click to toggle source
# File lib/drbqs/config/process_list.rb, line 82
def file_to_uri(file)
  s = file.sub(/\.yaml$/, '')
  case s
  when /^druby_(.+)$/
    "druby://:#{CGI.unescape(Regexp.last_match[1])}"
  when /^drbunix_(.+)$/
    "drbunix:#{CGI.unescape(Regexp.last_match[1])}"
  else
    raise ArgumentError, "Invalid file name in process list: #{file}"
  end
end
uri_to_file(uri) click to toggle source
# File lib/drbqs/config/process_list.rb, line 70
def uri_to_file(uri)
  case uri
  when /^druby.*:(\d+)$/
    "druby_#{CGI.escape(Regexp.last_match[1])}.yaml"
  when /^drbunix:(.+)$/
    "drbunix_#{CGI.escape(Regexp.last_match[1])}.yaml"
  else
    raise ArgumentError, "Invalid uri of drbqs server: #{uri}"
  end
end