Changeset 1437
- Timestamp:
- 02/08/05 23:35:36 (4 years ago)
- Files:
-
- trunk/bin/wsdl2ruby.rb (modified) (3 diffs)
- trunk/bin/xsd2ruby.rb (modified) (3 diffs)
- trunk/lib/wsdl/soap/wsdl2ruby.rb (added)
- trunk/lib/wsdl/xmlSchema/xsd2ruby.rb (added)
- trunk/test/wsdl/any/test_any.rb (modified) (1 diff)
- trunk/test/wsdl/marshal/test_wsdlmarshal.rb (modified) (2 diffs)
- trunk/test/wsdl/ref/test_ref.rb (modified) (1 diff)
- trunk/test/wsdl/simpletype/rpc/test_rpc.rb (modified) (2 diffs)
- trunk/test/wsdl/soap/wsdl2ruby/section/test_section.rb (modified) (2 diffs)
- trunk/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/bin/wsdl2ruby.rb
r1365 r1437 3 3 require 'getoptlong' 4 4 require 'logger' 5 require 'xsd/qname' 6 require 'wsdl/parser' 7 require 'wsdl/importer' 8 require 'wsdl/soap/classDefCreator' 9 require 'wsdl/soap/servantSkeltonCreator' 10 require 'wsdl/soap/driverCreator' 11 require 'wsdl/soap/clientSkeltonCreator' 12 require 'wsdl/soap/standaloneServerStubCreator' 13 require 'wsdl/soap/cgiStubCreator' 5 require 'wsdl/soap/wsdl2ruby' 6 14 7 15 8 class WSDL2RubyApp < Logger::Application … … 32 25 super('app') 33 26 STDERR.sync = true 34 @wsdl_location = nil35 @opt = nil36 @wsdl = nil37 @name = nil38 27 self.level = Logger::FATAL 39 28 end 40 29 41 30 def run 42 @wsdl_location, @opt = parse_opt(GetoptLong.new(*OptSet)) 43 if @opt['quiet'] 31 @worker = WSDL::SOAP::WSDL2Ruby.new 32 @worker.logger = @log 33 location, opt = parse_opt(GetoptLong.new(*OptSet)) 34 usage_exit unless location 35 @worker.location = location 36 if opt['quiet'] 44 37 self.level = Logger::FATAL 45 38 else 46 39 self.level = Logger::INFO 47 40 end 48 usage_exit unless @wsdl_location 49 @wsdl = import(@wsdl_location) 50 @name = @wsdl.name ? @wsdl.name.name : 'default' 51 create_file 41 @worker.opt.update(opt) 42 @worker.run 52 43 0 53 end54 55 def create_file56 create_classdef if @opt.key?('classdef')57 create_servant_skelton(@opt['servant_skelton']) if @opt.key?('servant_skelton')58 create_cgi_stub(@opt['cgi_stub']) if @opt.key?('cgi_stub')59 create_standalone_server_stub(@opt['standalone_server_stub']) if @opt.key?('standalone_server_stub')60 create_driver(@opt['driver']) if @opt.key?('driver')61 create_client_skelton(@opt['client_skelton']) if @opt.key?('client_skelton')62 44 end 63 45 … … 139 121 return wsdl, opt 140 122 end 141 142 def create_classdef143 log(INFO) { "Creating class definition." }144 @classdef_filename = @name + '.rb'145 check_file(@classdef_filename) or return146 File.open(@classdef_filename, "w") do |f|147 f << WSDL::SOAP::ClassDefCreator.new(@wsdl).dump148 end149 end150 151 def create_client_skelton(servicename)152 log(INFO) { "Creating client skelton." }153 servicename ||= @wsdl.services[0].name.name154 @client_skelton_filename = servicename + 'Client.rb'155 check_file(@client_skelton_filename) or return156 File.open(@client_skelton_filename, "w") do |f|157 f << shbang << "\n"158 f << "require '#{ @driver_filename }'\n\n" if @driver_filename159 f << WSDL::SOAP::ClientSkeltonCreator.new(@wsdl).dump(160 create_name(servicename))161 end162 end163 164 def create_servant_skelton(porttypename)165 log(INFO) { "Creating servant skelton." }166 @servant_skelton_filename = (porttypename || @name + 'Servant') + '.rb'167 check_file(@servant_skelton_filename) or return168 File.open(@servant_skelton_filename, "w") do |f|169 f << "require '#{ @classdef_filename }'\n\n" if @classdef_filename170 f << WSDL::SOAP::ServantSkeltonCreator.new(@wsdl).dump(171 create_name(porttypename))172 end173 end174 175 def create_cgi_stub(servicename)176 log(INFO) { "Creating CGI stub." }177 servicename ||= @wsdl.services[0].name.name178 @cgi_stubFilename = servicename + '.cgi'179 check_file(@cgi_stubFilename) or return180 File.open(@cgi_stubFilename, "w") do |f|181 f << shbang << "\n"182 if @servant_skelton_filename183 f << "require '#{ @servant_skelton_filename }'\n\n"184 end185 f << WSDL::SOAP::CGIStubCreator.new(@wsdl).dump(create_name(servicename))186 end187 end188 189 def create_standalone_server_stub(servicename)190 log(INFO) { "Creating standalone stub." }191 servicename ||= @wsdl.services[0].name.name192 @standalone_server_stub_filename = servicename + '.rb'193 check_file(@standalone_server_stub_filename) or return194 File.open(@standalone_server_stub_filename, "w") do |f|195 f << shbang << "\n"196 f << "require '#{ @servant_skelton_filename }'\n\n" if @servant_skelton_filename197 f << WSDL::SOAP::StandaloneServerStubCreator.new(@wsdl).dump(198 create_name(servicename))199 end200 end201 202 def create_driver(porttypename)203 log(INFO) { "Creating driver." }204 @driver_filename = (porttypename || @name) + 'Driver.rb'205 check_file(@driver_filename) or return206 File.open(@driver_filename, "w") do |f|207 f << "require '#{ @classdef_filename }'\n\n" if @classdef_filename208 f << WSDL::SOAP::DriverCreator.new(@wsdl).dump(209 create_name(porttypename))210 end211 end212 213 def check_file(filename)214 if FileTest.exist?(filename)215 if @opt.key?('force')216 log(WARN) {217 "File '#{ filename }' exists but overrides it."218 }219 true220 else221 log(WARN) {222 "File '#{ filename }' exists. #{ $0 } did not override it."223 }224 false225 end226 else227 log(INFO) { "Creates file '#{ filename }'." }228 true229 end230 end231 232 def shbang233 "#!/usr/bin/env ruby"234 end235 236 def create_name(name)237 name ? XSD::QName.new(@wsdl.targetnamespace, name) : nil238 end239 240 def import(location)241 WSDL::Importer.import(location)242 end243 123 end 244 124 trunk/bin/xsd2ruby.rb
r1425 r1437 3 3 require 'getoptlong' 4 4 require 'logger' 5 require 'xsd/qname' 6 require 'xsd/codegen/gensupport' 7 require 'wsdl/xmlSchema/parser' 8 require 'wsdl/xmlSchema/importer' 9 require 'wsdl/soap/classDefCreator' 5 require 'wsdl/xmlSchema/xsd2ruby' 6 10 7 11 8 class XSD2RubyApp < Logger::Application … … 21 18 def initialize 22 19 super('app') 23 @xsd_location = nil 24 @opt = nil 25 @xsd = nil 26 @name = nil 20 STDERR.sync = true 27 21 self.level = Logger::FATAL 28 22 end 29 23 30 24 def run 31 @xsd_location, @opt = parse_opt(GetoptLong.new(*OptSet)) 32 if @opt['quiet'] 25 @worker = WSDL::XMLSchema::XSD2Ruby.new 26 @worker.logger = @log 27 location, opt = parse_opt(GetoptLong.new(*OptSet)) 28 usage_exit unless location 29 @worker.location = location 30 if opt['quiet'] 33 31 self.level = Logger::FATAL 34 32 else 35 33 self.level = Logger::INFO 36 34 end 37 usage_exit unless @xsd_location 38 @xsd = import(@xsd_location) 39 @name = create_classname(@xsd) 40 create_file 35 @worker.opt.update(opt) 36 @worker.run 41 37 0 42 end43 44 def create_file45 create_classdef46 38 end 47 39 … … 86 78 return xsd, opt 87 79 end 88 89 def create_classdef90 log(INFO) { "Creating class definition." }91 @classdef_filename = @name + '.rb'92 check_file(@classdef_filename) or return93 File.open(@classdef_filename, "w") do |f|94 f << WSDL::SOAP::ClassDefCreator.new(@xsd).dump95 end96 end97 98 def check_file(filename)99 if FileTest.exist?(filename)100 if @opt.key?('force')101 log(WARN) {102 "File '#{ filename }' exists but overrides it."103 }104 true105 else106 log(WARN) {107 "File '#{ filename }' exists. #{ $0 } did not override it."108 }109 false110 end111 else112 log(INFO) { "Creates file '#{ filename }'." }113 true114 end115 end116 117 def create_classname(xsd)118 name = xsd.targetnamespace.scan(/[a-zA-Z0-9]+$/)[0]119 if name.nil?120 'default'121 else122 XSD::CodeGen::GenSupport.safevarname(name)123 end124 end125 126 def import(location)127 WSDL::XMLSchema::Importer.import(location)128 end129 80 end 130 81 trunk/test/wsdl/any/test_any.rb
r1313 r1437 11 11 12 12 def test_any 13 system("cd #{DIR} && ruby #{pathname("../../../bin/wsdl2ruby.rb")} --classdef --wsdl #{pathname("any.wsdl")} --type client --type server --force --quiet") 13 gen = WSDL::SOAP::WSDL2Ruby.new 14 gen.location = pathname("any.wsdl") 15 gen.basedir = DIR 16 gen.logger.level = Logger::FATAL 17 gen.opt['classdef'] = nil 18 gen.opt['driver'] = nil 19 gen.opt['client_skelton'] = nil 20 gen.opt['servant_skelton'] = nil 21 gen.opt['standalone_server_stub'] = nil 22 gen.opt['force'] = true 23 gen.run 14 24 compare("expectedDriver.rb", "echoDriver.rb") 15 25 compare("expectedEcho.rb", "echo.rb") trunk/test/wsdl/marshal/test_wsdlmarshal.rb
r1313 r1437 3 3 require 'soap/mapping/wsdlencodedregistry' 4 4 require 'soap/marshal' 5 require 'wsdl/soap/wsdl2ruby' 5 6 6 7 class WSDLMarshaller … … 55 56 56 57 def test_classdef 57 system("cd #{DIR} && ruby #{pathname("../../../bin/wsdl2ruby.rb")} --classdef --wsdl #{pathname("person.wsdl")} --force --quiet") 58 gen = WSDL::SOAP::WSDL2Ruby.new 59 gen.location = pathname("person.wsdl") 60 gen.basedir = DIR 61 gen.logger.level = Logger::FATAL 62 gen.opt['classdef'] = nil 63 gen.opt['force'] = true 64 gen.run 58 65 compare("person_org.rb", "Person.rb") 59 66 File.unlink(pathname('Person.rb')) trunk/test/wsdl/ref/test_ref.rb
r1431 r1437 76 76 77 77 def test_classdef 78 system("cd #{DIR} && ruby #{pathname("../../../bin/wsdl2ruby.rb")} --classdef --wsdl #{pathname("product.wsdl")} --force --quiet") 78 gen = WSDL::SOAP::WSDL2Ruby.new 79 gen.location = pathname("product.wsdl") 80 gen.basedir = DIR 81 gen.logger.level = Logger::FATAL 82 gen.opt['classdef'] = nil 83 gen.opt['force'] = true 84 gen.run 79 85 compare("expectedProduct.rb", "product.rb") 80 86 File.unlink(pathname('product.rb')) trunk/test/wsdl/simpletype/rpc/test_rpc.rb
r1329 r1437 1 1 require 'test/unit' 2 2 require 'wsdl/parser' 3 require 'wsdl/soap/wsdl2ruby' 4 5 3 6 module WSDL; module SimpleType 4 7 … … 11 14 12 15 def test_rpc 13 system("cd #{DIR} && ruby #{pathname("../../../../bin/wsdl2ruby.rb")} --classdef --wsdl #{pathname("rpc.wsdl")} --type client --type server --force --quiet") 16 gen = WSDL::SOAP::WSDL2Ruby.new 17 gen.location = pathname("rpc.wsdl") 18 gen.basedir = DIR 19 gen.logger.level = Logger::FATAL 20 gen.opt['classdef'] = nil 21 gen.opt['driver'] = nil 22 gen.opt['client_skelton'] = nil 23 gen.opt['servant_skelton'] = nil 24 gen.opt['standalone_server_stub'] = nil 25 gen.opt['force'] = true 26 gen.run 14 27 compare("expectedEchoVersion.rb", "echo_version.rb") 15 28 compare("expectedDriver.rb", "echo_versionDriver.rb") trunk/test/wsdl/soap/wsdl2ruby/section/test_section.rb
r1436 r1437 1 1 require 'test/unit' 2 2 require 'soap/marshal' 3 module WSDL; module SOAP ; module WSDL2Ruby3 module WSDL; module SOAP 4 4 5 5 … … 46 46 47 47 48 end; end ; end48 end; end trunk/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb
r1313 r1437 1 1 require 'test/unit' 2 2 require 'wsdl/parser' 3 module WSDL; module SOAP ; module WSDL2Ruby3 module WSDL; module SOAP 4 4 5 5 … … 47 47 48 48 49 end; end ; end49 end; end