| 1 |
#!/usr/local/bin/ruby |
|---|
| 2 |
|
|---|
| 3 |
require 'soap/cgistub' |
|---|
| 4 |
|
|---|
| 5 |
require 'soap/XMLSchemaDatatypes1999' |
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 |
class Address |
|---|
| 9 |
@@typeName = 'address' |
|---|
| 10 |
@@typeNamespace = 'urn:ibm-soap-address-demo' |
|---|
| 11 |
|
|---|
| 12 |
attr_accessor :streetNum, :streetName, :city, :state, :zip, :phoneNumber |
|---|
| 13 |
def initialize( streetNum = nil, streetName = nil, city = nil, state = nil, zip = nil, phoneNumber = nil ) |
|---|
| 14 |
@streetNum = streetNum |
|---|
| 15 |
@streetName = streetName |
|---|
| 16 |
@city = city |
|---|
| 17 |
@state = state |
|---|
| 18 |
@zip = zip |
|---|
| 19 |
@phoneNumber = phoneNumber |
|---|
| 20 |
end |
|---|
| 21 |
end |
|---|
| 22 |
|
|---|
| 23 |
class PhoneNumber |
|---|
| 24 |
@@typeName = 'phone' |
|---|
| 25 |
@@typeNamespace = 'urn:ibm-soap-address-demo' |
|---|
| 26 |
|
|---|
| 27 |
attr_accessor :areaCode, :exchange, :number |
|---|
| 28 |
def initialize( areaCode = nil, exchange = nil, number = nil ) |
|---|
| 29 |
@exchange = exchange |
|---|
| 30 |
@areaCode = areaCode |
|---|
| 31 |
@number = number |
|---|
| 32 |
end |
|---|
| 33 |
end |
|---|
| 34 |
|
|---|
| 35 |
|
|---|
| 36 |
class SampleApp < SOAP::CGIStub |
|---|
| 37 |
NS1 = 'urn:i3solutions-delayed-quotes' |
|---|
| 38 |
NS2 = 'urn:AddressFetcher' |
|---|
| 39 |
|
|---|
| 40 |
def methodDef |
|---|
| 41 |
addMethod( self, "getQuote", NS1 ) |
|---|
| 42 |
addMethod( self, "getAddressFromName", NS2 ) |
|---|
| 43 |
addMethod( self, "addEntry", NS2 ) |
|---|
| 44 |
end |
|---|
| 45 |
|
|---|
| 46 |
def getQuote( symbol ) |
|---|
| 47 |
152 |
|---|
| 48 |
end |
|---|
| 49 |
|
|---|
| 50 |
def getAddressFromName( nameToLookup ) |
|---|
| 51 |
ret = Address.new( 123, 'Main Street', 'Anytown', 'NY', 12345, PhoneNumber.new( 123, '456', '7890' )) |
|---|
| 52 |
ret |
|---|
| 53 |
end |
|---|
| 54 |
|
|---|
| 55 |
def addEntry( nameToRegister, address ) |
|---|
| 56 |
ret = Address.new( 123, 'Main Street', 'Anytown', 'NY', 12345, PhoneNumber.new( 123, '456', '7890' )) |
|---|
| 57 |
[ ret, ret, ret ] |
|---|
| 58 |
end |
|---|
| 59 |
end |
|---|
| 60 |
|
|---|
| 61 |
SampleApp.new( "foo", "http://www.sarion.com/xmlns/nakahiro/soap4r/sample1" ).start |
|---|