From db9445103c082a306ba085f7677da02ea94b8841 Mon Sep 17 00:00:00 2001 From: nahi Date: Wed, 24 Sep 2003 15:18:44 +0000 Subject: * lib/soap/* (29 files): SOAP4R added. * lib/wsdl/* (42 files): WSDL4R added. * lib/xsd/* (12 files): XSD4R added. * test/soap/* (16 files): added. * test/wsdl/* (2 files): added. * test/xsd/* (3 files): added. * sample/soap/* (27 files): added. * sample/wsdl/* (13 files): added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- sample/soap/calc/calc.rb | 17 +++++++++++++++++ sample/soap/calc/calc2.rb | 29 +++++++++++++++++++++++++++++ sample/soap/calc/client.rb | 26 ++++++++++++++++++++++++++ sample/soap/calc/client2.rb | 29 +++++++++++++++++++++++++++++ sample/soap/calc/httpd.rb | 15 +++++++++++++++ sample/soap/calc/server.cgi | 15 +++++++++++++++ sample/soap/calc/server.rb | 17 +++++++++++++++++ sample/soap/calc/server2.rb | 20 ++++++++++++++++++++ 8 files changed, 168 insertions(+) create mode 100644 sample/soap/calc/calc.rb create mode 100644 sample/soap/calc/calc2.rb create mode 100644 sample/soap/calc/client.rb create mode 100644 sample/soap/calc/client2.rb create mode 100644 sample/soap/calc/httpd.rb create mode 100644 sample/soap/calc/server.cgi create mode 100644 sample/soap/calc/server.rb create mode 100644 sample/soap/calc/server2.rb (limited to 'sample/soap/calc') diff --git a/sample/soap/calc/calc.rb b/sample/soap/calc/calc.rb new file mode 100644 index 0000000000..6bc78803b3 --- /dev/null +++ b/sample/soap/calc/calc.rb @@ -0,0 +1,17 @@ +module CalcService + def self.add(lhs, rhs) + lhs + rhs + end + + def self.sub(lhs, rhs) + lhs - rhs + end + + def self.multi(lhs, rhs) + lhs * rhs + end + + def self.div(lhs, rhs) + lhs / rhs + end +end diff --git a/sample/soap/calc/calc2.rb b/sample/soap/calc/calc2.rb new file mode 100644 index 0000000000..e9cf6bbca7 --- /dev/null +++ b/sample/soap/calc/calc2.rb @@ -0,0 +1,29 @@ +class CalcService2 + def initialize(value = 0) + @value = value + end + + def set(value) + @value = value + end + + def get + @value + end + + def +(rhs) + @value + rhs + end + + def -(rhs) + @value - rhs + end + + def *(rhs) + @value * rhs + end + + def /(rhs) + @value / rhs + end +end diff --git a/sample/soap/calc/client.rb b/sample/soap/calc/client.rb new file mode 100644 index 0000000000..57a4c0ba5b --- /dev/null +++ b/sample/soap/calc/client.rb @@ -0,0 +1,26 @@ +require 'soap/rpc/driver' + +server = ARGV.shift || 'http://localhost:7000/' +# server = 'http://localhost:8808/server.cgi' + +calc = SOAP::RPC::Driver.new(server, 'http://tempuri.org/calcService') +#calc.wiredump_dev = STDERR +calc.add_method('add', 'lhs', 'rhs') +calc.add_method('sub', 'lhs', 'rhs') +calc.add_method('multi', 'lhs', 'rhs') +calc.add_method('div', 'lhs', 'rhs') + +puts 'add: 1 + 2 # => 3' +puts calc.add(1, 2) +puts 'sub: 1.1 - 2.2 # => -1.1' +puts calc.sub(1.1, 2.2) +puts 'multi: 1.1 * 2.2 # => 2.42' +puts calc.multi(1.1, 2.2) +puts 'div: 5 / 2 # => 2' +puts calc.div(5, 2) +puts 'div: 5.0 / 2 # => 2.5' +puts calc.div(5.0, 2) +puts 'div: 1.1 / 0 # => Infinity' +puts calc.div(1.1, 0) +puts 'div: 1 / 0 # => ZeroDivisionError' +puts calc.div(1, 0) diff --git a/sample/soap/calc/client2.rb b/sample/soap/calc/client2.rb new file mode 100644 index 0000000000..2c53f09d42 --- /dev/null +++ b/sample/soap/calc/client2.rb @@ -0,0 +1,29 @@ +require 'soap/rpc/driver' + +server = ARGV.shift || 'http://localhost:7000/' +# server = 'http://localhost:8808/server2.cgi' + +var = SOAP::RPC::Driver.new( server, 'http://tempuri.org/calcService' ) +var.add_method( 'set', 'newValue' ) +var.add_method( 'get' ) +var.add_method_as( '+', 'add', 'rhs' ) +var.add_method_as( '-', 'sub', 'rhs' ) +var.add_method_as( '*', 'multi', 'rhs' ) +var.add_method_as( '/', 'div', 'rhs' ) + +puts 'var.set( 1 )' +puts '# Bare in mind that another client set another value to this service.' +puts '# This is only a sample for proof of concept.' +var.set( 1 ) +puts 'var + 2 # => 1 + 2 = 3' +puts var + 2 +puts 'var - 2.2 # => 1 - 2.2 = -1.2' +puts var - 2.2 +puts 'var * 2.2 # => 1 * 2.2 = 2.2' +puts var * 2.2 +puts 'var / 2 # => 1 / 2 = 0' +puts var / 2 +puts 'var / 2.0 # => 1 / 2.0 = 0.5' +puts var / 2.0 +puts 'var / 0 # => 1 / 0 => ZeroDivisionError' +puts var / 0 diff --git a/sample/soap/calc/httpd.rb b/sample/soap/calc/httpd.rb new file mode 100644 index 0000000000..ee8ab09f50 --- /dev/null +++ b/sample/soap/calc/httpd.rb @@ -0,0 +1,15 @@ +#!/usr/bin/env ruby + +require 'webrick' +require 'getopts' + +getopts "", 'r:', 'p:8808' + +s = WEBrick::HTTPServer.new( + :BindAddress => "0.0.0.0", + :Port => $OPT_p.to_i, + :DocumentRoot => $OPT_r || ".", + :CGIPathEnv => ENV['PATH'] +) +trap(:INT){ s.shutdown } +s.start diff --git a/sample/soap/calc/server.cgi b/sample/soap/calc/server.cgi new file mode 100644 index 0000000000..c4fa687550 --- /dev/null +++ b/sample/soap/calc/server.cgi @@ -0,0 +1,15 @@ +#!/usr/bin/env ruby + +require 'soap/rpc/cgistub' + +class CalcServer < SOAP::RPC::CGIStub + def initialize(*arg) + super + + require 'calc' + servant = CalcService + add_servant(servant, 'http://tempuri.org/calcService') + end +end + +status = CalcServer.new('CalcServer', nil).start diff --git a/sample/soap/calc/server.rb b/sample/soap/calc/server.rb new file mode 100644 index 0000000000..12a3968b5a --- /dev/null +++ b/sample/soap/calc/server.rb @@ -0,0 +1,17 @@ +#!/usr/bin/env ruby + +require 'soap/rpc/standaloneServer' +require 'calc' + +class CalcServer < SOAP::RPC::StandaloneServer + def initialize(*arg) + super + + servant = CalcService + add_servant(servant, 'http://tempuri.org/calcService') + end +end + +if $0 == __FILE__ + status = CalcServer.new('CalcServer', nil, '0.0.0.0', 7000).start +end diff --git a/sample/soap/calc/server2.rb b/sample/soap/calc/server2.rb new file mode 100644 index 0000000000..735721de64 --- /dev/null +++ b/sample/soap/calc/server2.rb @@ -0,0 +1,20 @@ +#!/usr/bin/env ruby + +require 'soap/rpc/standaloneServer' +require 'calc2' + +class CalcServer2 < SOAP::RPC::StandaloneServer + def on_init + servant = CalcService2.new + add_method(servant, 'set', 'newValue') + add_method(servant, 'get') + add_method_as(servant, '+', 'add', 'lhs') + add_method_as(servant, '-', 'sub', 'lhs') + add_method_as(servant, '*', 'multi', 'lhs') + add_method_as(servant, '/', 'div', 'lhs') + end +end + +if $0 == __FILE__ + status = CalcServer2.new('CalcServer', 'http://tempuri.org/calcService', '0.0.0.0', 7000).start +end -- cgit v1.2.3