Class | WSDL::SOAP::WSDL2Ruby |
In: |
lib/wsdl/soap/wsdl2ruby.rb
|
Parent: | Object |
basedir | [RW] | |
location | [RW] | |
logger | [RW] | |
opt | [R] |
# File lib/wsdl/soap/wsdl2ruby.rb, line 41 41: def initialize 42: @location = nil 43: @opt = {} 44: @logger = Logger.new(STDERR) 45: @basedir = nil 46: @wsdl = nil 47: @name = nil 48: end
# File lib/wsdl/soap/wsdl2ruby.rb, line 30 30: def run 31: unless @location 32: raise RuntimeError, "WSDL location not given" 33: end 34: @wsdl = import(@location) 35: @name = @wsdl.name ? @wsdl.name.name : 'default' 36: create_file 37: end
# File lib/wsdl/soap/wsdl2ruby.rb, line 139 139: def check_file(filename) 140: if @basedir 141: filename = File.join(basedir, filename) 142: end 143: if FileTest.exist?(filename) 144: if @opt.key?('force') 145: @logger.warn { 146: "File '#{filename}' exists but overrides it." 147: } 148: true 149: else 150: @logger.warn { 151: "File '#{filename}' exists. #{$0} did not override it." 152: } 153: false 154: end 155: else 156: @logger.info { "Creates file '#{filename}'." } 157: true 158: end 159: end
# File lib/wsdl/soap/wsdl2ruby.rb, line 92 92: def create_cgi_stub(servicename) 93: @logger.info { "Creating CGI stub." } 94: servicename ||= @wsdl.services[0].name.name 95: @cgi_stubFilename = servicename + '.cgi' 96: check_file(@cgi_stubFilename) or return 97: write_file(@cgi_stubFilename) do |f| 98: f << shbang << "\n" 99: if @servant_skelton_filename 100: f << "require '#{@servant_skelton_filename}'\n\n" 101: end 102: f << WSDL::SOAP::CGIStubCreator.new(@wsdl).dump(create_name(servicename)) 103: end 104: end
# File lib/wsdl/soap/wsdl2ruby.rb, line 59 59: def create_classdef 60: @logger.info { "Creating class definition." } 61: @classdef_filename = @name + '.rb' 62: check_file(@classdef_filename) or return 63: write_file(@classdef_filename) do |f| 64: f << WSDL::SOAP::ClassDefCreator.new(@wsdl).dump 65: end 66: end
# File lib/wsdl/soap/wsdl2ruby.rb, line 68 68: def create_client_skelton(servicename) 69: @logger.info { "Creating client skelton." } 70: servicename ||= @wsdl.services[0].name.name 71: @client_skelton_filename = servicename + 'Client.rb' 72: check_file(@client_skelton_filename) or return 73: write_file(@client_skelton_filename) do |f| 74: f << shbang << "\n" 75: f << "require '#{@driver_filename}'\n\n" if @driver_filename 76: f << WSDL::SOAP::ClientSkeltonCreator.new(@wsdl).dump( 77: create_name(servicename)) 78: end 79: end
# File lib/wsdl/soap/wsdl2ruby.rb, line 119 119: def create_driver(porttypename) 120: @logger.info { "Creating driver." } 121: @driver_filename = (porttypename || @name) + 'Driver.rb' 122: check_file(@driver_filename) or return 123: write_file(@driver_filename) do |f| 124: f << "require '#{@classdef_filename}'\n\n" if @classdef_filename 125: f << WSDL::SOAP::DriverCreator.new(@wsdl).dump( 126: create_name(porttypename)) 127: end 128: end
# File lib/wsdl/soap/wsdl2ruby.rb, line 50 50: def create_file 51: create_classdef if @opt.key?('classdef') 52: create_servant_skelton(@opt['servant_skelton']) if @opt.key?('servant_skelton') 53: create_cgi_stub(@opt['cgi_stub']) if @opt.key?('cgi_stub') 54: create_standalone_server_stub(@opt['standalone_server_stub']) if @opt.key?('standalone_server_stub') 55: create_driver(@opt['driver']) if @opt.key?('driver') 56: create_client_skelton(@opt['client_skelton']) if @opt.key?('client_skelton') 57: end
# File lib/wsdl/soap/wsdl2ruby.rb, line 165 165: def create_name(name) 166: name ? XSD::QName.new(@wsdl.targetnamespace, name) : nil 167: end
# File lib/wsdl/soap/wsdl2ruby.rb, line 81 81: def create_servant_skelton(porttypename) 82: @logger.info { "Creating servant skelton." } 83: @servant_skelton_filename = (porttypename || @name + 'Servant') + '.rb' 84: check_file(@servant_skelton_filename) or return 85: write_file(@servant_skelton_filename) do |f| 86: f << "require '#{@classdef_filename}'\n\n" if @classdef_filename 87: f << WSDL::SOAP::ServantSkeltonCreator.new(@wsdl).dump( 88: create_name(porttypename)) 89: end 90: end
# File lib/wsdl/soap/wsdl2ruby.rb, line 106 106: def create_standalone_server_stub(servicename) 107: @logger.info { "Creating standalone stub." } 108: servicename ||= @wsdl.services[0].name.name 109: @standalone_server_stub_filename = servicename + '.rb' 110: check_file(@standalone_server_stub_filename) or return 111: write_file(@standalone_server_stub_filename) do |f| 112: f << shbang << "\n" 113: f << "require '#{@servant_skelton_filename}'\n\n" if @servant_skelton_filename 114: f << WSDL::SOAP::StandaloneServerStubCreator.new(@wsdl).dump( 115: create_name(servicename)) 116: end 117: end
# File lib/wsdl/soap/wsdl2ruby.rb, line 169 169: def import(location) 170: WSDL::Importer.import(location) 171: end