Network Ruby

require "xmlrpc/client"
uri = ARGV[0] || "http://localhost:8080"
system = XMLRPC::Client.new2(uri).proxy("system")
puts "Introspecting #{ uri }"
for meth in system.listMethods.sort
  puts '=' * 70
  for sig in system.methodSignature(meth)
    puts "- %s %s( %s )" % [
      sig[0], meth, (sig[1..-1] || []).join(', ')
    ]
  end
  puts "", system.methodHelp(meth)
end