Working through chapter 16, though skipping past less-interesting exercises 1 and 2

cat-town
Dan Buch 13 years ago
parent 76e1cfa8c2
commit b68f6c759d

1
.gitignore vendored

@ -2,3 +2,4 @@
koans/.path_progress koans/.path_progress
*.sqlite3 *.sqlite3
.rbenv-version .rbenv-version
*.rbc

@ -0,0 +1,12 @@
require 'xmlrpc/client'
server = XMLRPC::Client.new2('http://betty.userland.com/RPC2')
puts server.call('examples.getStateName', 5)
begin
server.call('noSuchMethod')
rescue XMLRPC::FaultException => e
puts "Error: fault code #{e.faultCode}"
puts e.faultString
end

@ -0,0 +1,25 @@
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
Loading…
Cancel
Save