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
|
koans/.path_progress
|
||||||
*.sqlite3
|
*.sqlite3
|
||||||
.rbenv-version
|
.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