box-o-sand/cookbook/016/03b.rb

26 lines
605 B
Ruby

require 'xmlrpc/client'
def lookup_upc(upc, rpc_key)
server = XMLRPC::Client.new2('http://www.upcdatabase.com/xmlrpc')
begin
response = server.call('lookup', :upc => upc, :rpc_key => rpc_key)
return response['found'] ? response : nil
rescue XMLRPC::FaultException => e
puts "Error: "
puts e.faultCode
puts e.faultString
end
end
['018787765654', 'no such UPC'].each do |upc|
product = lookup_upc(upc, ARGV.first.strip)
if product
puts product['description']
puts product['size']
else
puts "Oh no! product with upc='#{upc}' is #{product.inspect}"
end
end