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

This commit is contained in:
Dan Buch 2011-11-18 08:47:02 -05:00
parent 76e1cfa8c2
commit b68f6c759d
3 changed files with 38 additions and 0 deletions

1
.gitignore vendored
View File

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

12
cookbook/016/03.rb Normal file
View File

@ -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

25
cookbook/016/03b.rb Normal file
View File

@ -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