#!/usr/bin/ruby require 'socket' require "rexml/document" if ARGV.length < 2 || ARGV.length > 3 then puts "Usage: getMemberInfo Firstname [Lastname]" puts " Where == [/]*" puts puts " Example: getMemberInfo CU Ken" puts " Example: getMemberInfo CU/CS Ken Anderson" puts " Example: getMemberInfo CU/CS/Software Ken Anderson" puts exit end groupName = ARGV[0] name = ARGV[1].dup if (ARGV.length == 3) then name = name + " " + ARGV[2] end # if groupName ends with a "/" character, remove it if (groupName =~ /\/$/) then groupName = groupName.chop end member = "" members = `getMemberIds.rb #{groupName}`.chop rows = members.split(/\n/) rows.each { |line| columns = line.split(/:/) if columns[0] == name then member = columns[1] end } if member == "" then puts "#{name} is not a member of group: #{groupName}" exit end s = TCPSocket.new( 'infinite.local' , 80 ) s.puts("GET /~kena/addressBook/data/#{groupName}/#{member}.xml HTTP/1.0") s.puts doc = REXML::Document.new s name = doc.root.elements["//name"] phone = doc.root.elements["//phone"] email = doc.root.elements["//email"] if !(defined?(name) && defined?(phone) && defined?(email)) then puts "Received Invalid Response from Server" exit end puts "#{name.text}" puts puts "Phone: #{phone.text}" puts "Email: #{email.text}"