diff options
Diffstat (limited to 'sample')
-rwxr-xr-x | sample/optparse/subcommand.rb | 19 | ||||
-rw-r--r-- | sample/soap/helloworld/hw_c_gzip.rb | 8 | ||||
-rw-r--r-- | sample/soap/helloworld/hw_s_gzip.rb | 21 | ||||
-rw-r--r-- | sample/soap/scopesample/client.rb | 34 | ||||
-rw-r--r-- | sample/soap/scopesample/httpd.rb | 22 | ||||
-rw-r--r-- | sample/soap/scopesample/samplehttpd.conf | 2 | ||||
-rw-r--r-- | sample/soap/scopesample/servant.rb | 18 | ||||
-rwxr-xr-x | sample/soap/scopesample/server.cgi | 29 | ||||
-rw-r--r-- | sample/soap/scopesample/server.rb | 20 |
9 files changed, 173 insertions, 0 deletions
diff --git a/sample/optparse/subcommand.rb b/sample/optparse/subcommand.rb new file mode 100755 index 0000000000..21c42dd60a --- /dev/null +++ b/sample/optparse/subcommand.rb @@ -0,0 +1,19 @@ +#! /usr/bin/ruby +# contributed by Minero Aoki. + +require 'optparse' + +parser = OptionParser.new +parser.on('-i') { puts "-i" } +parser.on('-o') { puts '-o' } + +subparsers = Hash.new {|h,k| + $stderr.puts "no such subcommand: #{k}" + exit 1 +} +subparsers['add'] = OptionParser.new.on('-i') { puts "add -i" } +subparsers['del'] = OptionParser.new.on('-i') { puts "del -i" } +subparsers['list'] = OptionParser.new.on('-i') { puts "list -i" } + +parser.order!(ARGV) +subparsers[ARGV.shift].parse!(ARGV) unless ARGV.empty? diff --git a/sample/soap/helloworld/hw_c_gzip.rb b/sample/soap/helloworld/hw_c_gzip.rb new file mode 100644 index 0000000000..3335b5f571 --- /dev/null +++ b/sample/soap/helloworld/hw_c_gzip.rb @@ -0,0 +1,8 @@ +require 'soap/rpc/driver' + +s = SOAP::RPC::Driver.new('http://localhost:2000/', 'urn:hws') +s.add_method("hello_world", "from") +#s.wiredump_dev = STDOUT # care about binary output. +s.streamhandler.accept_encoding_gzip = true + +p s.hello_world(self.to_s) diff --git a/sample/soap/helloworld/hw_s_gzip.rb b/sample/soap/helloworld/hw_s_gzip.rb new file mode 100644 index 0000000000..d124df0e04 --- /dev/null +++ b/sample/soap/helloworld/hw_s_gzip.rb @@ -0,0 +1,21 @@ +require 'soap/rpc/standaloneServer' + +class HelloWorldServer < SOAP::RPC::StandaloneServer + def on_init + @soaplet.allow_content_encoding_gzip = true + @log.level = Logger::Severity::DEBUG + add_method(self, 'hello_world', 'from') + end + + def hello_world(from) + "Hello World, from #{ from }" + end +end + +if $0 == __FILE__ + server = HelloWorldServer.new('hws', 'urn:hws', '0.0.0.0', 2000) + trap(:INT) do + server.shutdown + end + server.start +end diff --git a/sample/soap/scopesample/client.rb b/sample/soap/scopesample/client.rb new file mode 100644 index 0000000000..009fdf1919 --- /dev/null +++ b/sample/soap/scopesample/client.rb @@ -0,0 +1,34 @@ +require 'soap/rpc/driver' + +server = ARGV.shift || 'http://localhost:7000/' +# server = 'http://localhost:8808/server.cgi' + +# client which accesses application scope servant. +app = SOAP::RPC::Driver.new(server, + 'http://tempuri.org/applicationScopeService') +app.add_method('push', 'value') +app.add_method('pop') + +# client which accesses request scope servant must send SOAPAction to identify +# the service. +req = SOAP::RPC::Driver.new(server, + 'http://tempuri.org/requestScopeService') +req.add_method_with_soapaction('push', + 'http://tempuri.org/requestScopeService', 'value') +req.add_method_with_soapaction('pop', + 'http://tempuri.org/requestScopeService') + +# exec +app.push(1) +app.push(2) +app.push(3) +p app.pop +p app.pop +p app.pop + +req.push(1) +req.push(2) +req.push(3) +p req.pop +p req.pop +p req.pop diff --git a/sample/soap/scopesample/httpd.rb b/sample/soap/scopesample/httpd.rb new file mode 100644 index 0000000000..5f58c7e14a --- /dev/null +++ b/sample/soap/scopesample/httpd.rb @@ -0,0 +1,22 @@ +#!/usr/bin/env ruby + +require 'webrick' +require 'soap/property' + +docroot = "." +port = 8808 +if opt = SOAP::Property.loadproperty("samplehttpd.conf") + docroot = opt["docroot"] + port = Integer(opt["port"]) +end + +s = WEBrick::HTTPServer.new( + :BindAddress => "0.0.0.0", + :Port => port, + :DocumentRoot => docroot, + :CGIPathEnv => ENV['PATH'] +) +trap(:INT) do + s.shutdown +end +s.start diff --git a/sample/soap/scopesample/samplehttpd.conf b/sample/soap/scopesample/samplehttpd.conf new file mode 100644 index 0000000000..85e9995021 --- /dev/null +++ b/sample/soap/scopesample/samplehttpd.conf @@ -0,0 +1,2 @@ +docroot = . +port = 8808 diff --git a/sample/soap/scopesample/servant.rb b/sample/soap/scopesample/servant.rb new file mode 100644 index 0000000000..5076050076 --- /dev/null +++ b/sample/soap/scopesample/servant.rb @@ -0,0 +1,18 @@ +class Servant + def self.create + new + end + + def initialize + STDERR.puts "Servant created." + @task = [] + end + + def push(value) + @task.push(value) + end + + def pop + @task.pop + end +end diff --git a/sample/soap/scopesample/server.cgi b/sample/soap/scopesample/server.cgi new file mode 100755 index 0000000000..ebe13eb131 --- /dev/null +++ b/sample/soap/scopesample/server.cgi @@ -0,0 +1,29 @@ +#!/usr/bin/env ruby + +require 'soap/rpc/cgistub' +require 'servant' + +class Server < SOAP::RPC::CGIStub + class DummyServant + def push(value) + "Not supported" + end + + def pop + "Not supported" + end + end + + def initialize(*arg) + super + add_rpc_servant(Servant.new, 'http://tempuri.org/requestScopeService') + + # Application scope servant is not supported in CGI environment. + # See server.rb to support application scope servant. + dummy = DummyServant.new + add_method_with_namespace('http://tempuri.org/applicationScopeService', dummy, 'push', 'value') + add_method_with_namespace('http://tempuri.org/applicationScopeService', dummy, 'pop') + end +end + +status = Server.new('Server', nil).start diff --git a/sample/soap/scopesample/server.rb b/sample/soap/scopesample/server.rb new file mode 100644 index 0000000000..6b87b74c2f --- /dev/null +++ b/sample/soap/scopesample/server.rb @@ -0,0 +1,20 @@ +#!/usr/bin/env ruby + +require 'soap/rpc/standaloneServer' +require 'servant' + +class Server < SOAP::RPC::StandaloneServer + def initialize(*arg) + super + add_rpc_servant(Servant.new, 'http://tempuri.org/applicationScopeService') + add_rpc_request_servant(Servant, 'http://tempuri.org/requestScopeService') + end +end + +if $0 == __FILE__ + server = Server.new('Server', nil, '0.0.0.0', 7000) + trap(:INT) do + server.shutdown + end + server.start +end |