class WSDL::SOAP::WSDL2Ruby
Attributes
basedir[RW]
location[RW]
logger[RW]
opt[R]
Public Class Methods
new()
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 49 def initialize @modulepath = nil @location = nil @opt = {} @logger = Logger.new(STDERR) @basedir = nil @wsdl = nil @name = nil @classdef_filename = nil @mr_filename = nil @name_creator = ClassNameCreator.new end
Public Instance Methods
run()
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 34 def run unless @location raise RuntimeError, "WSDL location not given" end @wsdl = import(@location) if @opt['classdef'] @name = @opt['classdef'] else @name = @wsdl.name ? @wsdl.name.name : 'default' end create_file end
Private Instance Methods
check_file(filename)
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 193 def check_file(filename) if @basedir filename = File.join(basedir, filename) end if FileTest.exist?(filename) if @opt.key?('force') @logger.warn { "File '#{filename}' exists but overrides it." } true else @logger.warn { "File '#{filename}' exists. #{$0} did not override it." } false end else @logger.info { "Creates file '#{filename}'." } true end end
create_cgi_stub(servicename)
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 124 def create_cgi_stub(servicename) @logger.info { "Creating CGI stub." } servicename ||= @wsdl.services[0].name.name @cgi_stubFilename = servicename + '.cgi' check_file(@cgi_stubFilename) or return write_file(@cgi_stubFilename) do |f| f << shbang << "\n" f.puts "# encoding: UTF-8" f.puts "# Generated by wsdl2ruby\n" f << "require_relative '#{@servant_skelton_filename}'\n" if @servant_skelton_filename f << "require_relative '#{@mr_filename}'\n" if @mr_filename f << WSDL::SOAP::CGIStubCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename)) end end
create_classdef()
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 74 def create_classdef @logger.info { "Creating class definition." } @classdef_filename = @name + '.rb' check_file(@classdef_filename) or return write_file(@classdef_filename) do |f| f.puts "# encoding: UTF-8" f.puts "# Generated by wsdl2ruby\n" f << WSDL::SOAP::ClassDefCreator.new(@wsdl, @name_creator, @modulepath).dump end end
create_client_skelton(servicename)
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 97 def create_client_skelton(servicename) return if @wsdl.services.empty? @logger.info { "Creating client skelton." } servicename ||= @wsdl.services[0].name.name @client_skelton_filename = servicename + 'Client.rb' check_file(@client_skelton_filename) or return write_file(@client_skelton_filename) do |f| f << shbang << "\n" f.puts "# encoding: UTF-8" f.puts "# Generated by wsdl2ruby\n" f << "require_relative '#{@driver_filename}'\n\n" if @driver_filename f << WSDL::SOAP::ClientSkeltonCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename)) end end
create_driver(porttypename, drivername_postfix)
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 169 def create_driver(porttypename, drivername_postfix) @logger.info { "Creating driver." } @driver_filename = (porttypename || @name) + 'Driver.rb' creator = WSDL::SOAP::DriverCreator.new(@wsdl, @name_creator, @modulepath) creator.drivername_postfix = drivername_postfix check_file(@driver_filename) or return write_file(@driver_filename) do |f| f.puts "# encoding: UTF-8" f.puts "# Generated by wsdl2ruby\n" f << "require_relative '#{@classdef_filename}'\n" if @classdef_filename f << "require_relative '#{@mr_filename}'\n" if @mr_filename f << creator.dump(create_name(porttypename)) end end
create_file()
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 62 def create_file @modulepath = @opt['module_path'] create_classdef if @opt.key?('classdef') create_mapping_registry if @opt.key?('mapping_registry') create_servant_skelton(@opt['servant_skelton']) if @opt.key?('servant_skelton') create_cgi_stub(@opt['cgi_stub']) if @opt.key?('cgi_stub') create_standalone_server_stub(@opt['standalone_server_stub']) if @opt.key?('standalone_server_stub') create_servlet_stub(@opt['servlet_stub']) if @opt.key?('servlet_stub') create_driver(@opt['driver'], @opt['drivername_postfix'] || '') if @opt.key?('driver') create_client_skelton(@opt['client_skelton']) if @opt.key?('client_skelton') end
create_mapping_registry()
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 85 def create_mapping_registry @logger.info { "Creating mapping registry definition." } @mr_filename = @name + 'MappingRegistry.rb' check_file(@mr_filename) or return write_file(@mr_filename) do |f| f.puts "# encoding: UTF-8" f.puts "# Generated by wsdl2ruby\n" f << "require_relative '#{@classdef_filename}'\n" if @classdef_filename f << WSDL::SOAP::MappingRegistryCreator.new(@wsdl, @name_creator, @modulepath).dump end end
create_name(name)
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 219 def create_name(name) name ? XSD::QName.new(@wsdl.targetnamespace, name) : nil end
create_servant_skelton(porttypename)
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 112 def create_servant_skelton(porttypename) @logger.info { "Creating servant skelton." } @servant_skelton_filename = (porttypename || @name + 'Servant') + '.rb' check_file(@servant_skelton_filename) or return write_file(@servant_skelton_filename) do |f| f.puts "# encoding: UTF-8" f.puts "# Generated by wsdl2ruby\n" f << "require_relative '#{@classdef_filename}'\n\n" if @classdef_filename f << WSDL::SOAP::ServantSkeltonCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(porttypename)) end end
create_servlet_stub(servicename)
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 154 def create_servlet_stub(servicename) @logger.info { "Creating servlet stub." } servicename ||= @wsdl.services[0].name.name @servlet_stub_filename = servicename + 'Servlet.rb' check_file(@servlet_stub_filename) or return write_file(@servlet_stub_filename) do |f| f << shbang << "\n" f.puts "# encoding: UTF-8" f.puts "# Generated by wsdl2ruby\n" f << "require_relative '#{@servant_skelton_filename}'\n" if @servant_skelton_filename f << "require_relative '#{@mr_filename}'\n" if @mr_filename f << WSDL::SOAP::ServletStubCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename)) end end
create_standalone_server_stub(servicename)
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 139 def create_standalone_server_stub(servicename) @logger.info { "Creating standalone stub." } servicename ||= @wsdl.services[0].name.name @standalone_server_stub_filename = servicename + '.rb' check_file(@standalone_server_stub_filename) or return write_file(@standalone_server_stub_filename) do |f| f << shbang << "\n" f.puts "# encoding: UTF-8" f.puts "# Generated by wsdl2ruby\n" f << "require_relative '#{@servant_skelton_filename}'\n" if @servant_skelton_filename f << "require_relative '#{@mr_filename}'\n" if @mr_filename f << WSDL::SOAP::StandaloneServerStubCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename)) end end
import(location)
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 223 def import(location) WSDL::Importer.import(location) end
shbang()
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 215 def shbang "#!/usr/bin/env ruby" end
write_file(filename) { |f| ... }
click to toggle source
# File lib/wsdl/soap/wsdl2ruby.rb, line 184 def write_file(filename) if @basedir filename = File.join(basedir, filename) end File.open(filename, "w") do |f| yield f end end