Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 1899

Show
Ignore:
Timestamp:
07/21/07 23:59:51 (1 year ago)
Author:
nahi
Message:
  • as a workaround of class name crash problem between generated class and generated driver, add --drivername_postfix option to wsdl2ruby.rb. closes #372.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/bin/wsdl2ruby.rb

    r1856 r1899  
    2020    ['--standalone_server_stub','-a', GetoptLong::OPTIONAL_ARGUMENT], 
    2121    ['--driver','-d', GetoptLong::OPTIONAL_ARGUMENT], 
     22    ['--drivername_postfix','-n', GetoptLong::REQUIRED_ARGUMENT], 
    2223    ['--force','-f', GetoptLong::NO_ARGUMENT], 
    2324    ['--quiet','-q', GetoptLong::NO_ARGUMENT], 
     
    7172  --standalone_server_stub [servicename] 
    7273  --driver [porttypename] 
    73   --module_path [Module::Path::Name] 
     74  --drivername_postfix driver_classname_postfix 
     75  --module_path Module::Path::Name 
    7476  --force 
    7577  --quiet 
     
    114116            "--driver" 
    115117          opt[name.sub(/^--/, '')] = arg.empty? ? nil : arg 
     118        when "--drivername_postfix" 
     119          opt['drivername_postfix'] = arg 
    116120        when "--force" 
    117121          opt['force'] = true 
  • trunk/lib/wsdl/soap/classDefCreator.rb

    r1891 r1899  
    164164  def dump_simpletypedef_union(qname, typedef, qualified) 
    165165    union = typedef.union 
    166     c = ClassDef.new(create_class_name(qname), '::String') 
     166    classname = create_class_name(qname) 
     167    c = ClassDef.new(classname, '::String') 
    167168    c.comment = "#{qname}" 
    168169    if union.member_types 
  • trunk/lib/wsdl/soap/driverCreator.rb

    r1895 r1899  
    2222 
    2323  attr_reader :definitions 
     24  attr_accessor :drivername_postfix 
    2425 
    2526  def initialize(definitions, modulepath = nil) 
    2627    @definitions = definitions 
    2728    @modulepath = modulepath 
     29    @drivername_postfix = '' 
    2830  end 
    2931 
     
    5658 
    5759  def dump_porttype(porttype) 
    58     class_name = create_class_name(porttype) 
     60    qname = XSD::QName.new(nil, porttype.name + @drivername_postfix) 
     61    class_name = create_class_name(qname) 
    5962    defined_const = {} 
    6063    result = MethodDefCreator.new(@definitions, @modulepath, defined_const).dump(porttype) 
  • trunk/lib/wsdl/soap/wsdl2ruby.rb

    r1824 r1899  
    6262    create_cgi_stub(@opt['cgi_stub']) if @opt.key?('cgi_stub') 
    6363    create_standalone_server_stub(@opt['standalone_server_stub']) if @opt.key?('standalone_server_stub') 
    64     create_driver(@opt['driver']) if @opt.key?('driver') 
     64    create_driver(@opt['driver'], @opt['drivername_postfix']) if @opt.key?('driver') 
    6565    create_client_skelton(@opt['client_skelton']) if @opt.key?('client_skelton') 
    6666  end 
     
    137137  end 
    138138 
    139   def create_driver(porttypename
     139  def create_driver(porttypename, drivername_postfix
    140140    @logger.info { "Creating driver." } 
    141141    @driver_filename = (porttypename || @name) + 'Driver.rb' 
     142    creator = WSDL::SOAP::DriverCreator.new(@wsdl, @modulepath) 
     143    creator.drivername_postfix = drivername_postfix 
    142144    check_file(@driver_filename) or return 
    143145    write_file(@driver_filename) do |f| 
    144146      f << "require '#{@classdef_filename}'\n" if @classdef_filename 
    145147      f << "require '#{@mr_filename}'\n" if @mr_filename 
    146       f << WSDL::SOAP::DriverCreator.new(@wsdl, @modulepath).dump( 
    147         create_name(porttypename)) 
     148      f << creator.dump(create_name(porttypename)) 
    148149    end 
    149150  end