Working through chapter 16, though skipping past less-interesting exercises 1 and 2
This commit is contained in:
parent
76e1cfa8c2
commit
b68f6c759d
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,3 +2,4 @@
|
||||
koans/.path_progress
|
||||
*.sqlite3
|
||||
.rbenv-version
|
||||
*.rbc
|
||||
|
12
cookbook/016/03.rb
Normal file
12
cookbook/016/03.rb
Normal 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
25
cookbook/016/03b.rb
Normal 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
|
Loading…
Reference in New Issue
Block a user