1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib/{soap,wsdl,xsd}, test/{soap,wsdl,xsd}: imported soap4r/1.5.4.

== SOAP client and server ==

	  === for both client side and server side ===

	  * improved document/literal service support.
	    style(rpc,document)/use(encoding, literal) combination are all
	    supported.  for the detail about combination, see
	    test/soap/test_style.rb.

	  * let WSDLEncodedRegistry#soap2obj map SOAP/OM to Ruby according to
	    WSDL as well as obj2soap.  closes #70.

	  * let SOAP::Mapping::Object handle XML attribute for doc/lit service.
	    you can set/get XML attribute via accessor methods which as a name
	    'xmlattr_' prefixed (<foo name="bar"/> -> Foo#xmlattr_name).

	  === client side ===

	  * WSDLDriver capitalized name operation bug fixed.  from
	    1.5.3-ruby1.8.2, operation which has capitalized name (such as
	    KeywordSearchRequest in AWS) is defined as a method having
	    uncapitalized name. (converted with GenSupport.safemethodname
	    to handle operation name 'foo-bar').  it introduced serious
	    incompatibility; in the past, it was defined as a capitalized.
	    define capitalized method as well under that circumstance.

	  * added new factory interface 'WSDLDriverFactory#create_rpc_driver'
	    to create RPC::Driver, not WSDLDriver (RPC::Driver and WSDLDriver
	    are merged).  'WSDLDriverFactory#create_driver' still creates
	    WSDLDriver for compatibility but it warns that the method is
	    deprecated.  please use create_rpc_driver instead of create_driver.

	  * allow to use an URI object as an endpoint_url even with net/http,
	    not http-access2.

	  === server side ===

	  * added mod_ruby support to SOAP::CGIStub.  rename a CGI script
	    server.cgi to server.rb and let mod_ruby's RubyHandler handles the
	    script.  CGIStub detects if it's running under mod_ruby environment
	    or not.

	  * added fcgi support to SOAP::CGIStub.  see the sample at
	    sample/soap/calc/server.fcgi.  (almost same as server.cgi but has
	    fcgi handler at the bottom.)

	  * allow to return a SOAPFault object to respond customized SOAP fault.

	  * added the interface 'generate_explicit_type' for server side
	    (CGIStub, HTTPServer).  call 'self.generate_explicit_type = true'
	    if you want to return simplified XML even if it's rpc/encoded
	    service.

	  == WSDL ==

	  === WSDL definition ===

	  * improved XML Schema support such as extension, restriction,
	    simpleType, complexType + simpleContent, ref, length, import,
	    include.

	  * reduced "unknown element/attribute" warnings (warn only 1 time for
	    each QName).

	  * importing XSD file at schemaLocation with xsd:import.

	  === code generation from WSDL ===

	  * generator crashed when there's '-' in defined element/attribute
	    name.

	  * added ApacheMap WSDL definition.

	* sample/{soap,wsdl}: removed.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nahi 2005-05-22 13:03:38 +00:00
parent 7aea792d3b
commit eb3f829be9
211 changed files with 5997 additions and 9378 deletions

View file

@ -77,7 +77,7 @@ class ClassDef < ModuleDef
end
buf << dump_class_def_end
buf << dump_package_def_end(package) unless package.empty?
buf
buf.gsub(/^\s+$/, '')
end
private

View file

@ -21,10 +21,10 @@ module CommentDef
private
def dump_comment
if /^#/ =~ @comment
if /\A#/ =~ @comment
format(@comment)
else
format(@comment).gsub(/^/, "# ")
format(@comment).gsub(/^/, '# ')
end
end
end

View file

@ -9,6 +9,49 @@
module XSD
module CodeGen
# from the file 'keywords' in 1.9.
KEYWORD = %w(
__LINE__
__FILE__
BEGIN
END
alias
and
begin
break
case
class
def
defined?
do
else
elsif
end
ensure
false
for
if
in
module
next
nil
not
or
redo
rescue
retry
return
self
super
then
true
undef
unless
until
when
while
yield
)
module GenSupport
def capitalize(target)
@ -25,7 +68,7 @@ module GenSupport
safename = name.scan(/[a-zA-Z0-9_]+/).collect { |ele|
GenSupport.capitalize(ele)
}.join
unless /^[A-Z]/ =~ safename
if /^[A-Z]/ !~ safename or keyword?(safename)
safename = "C_#{safename}"
end
safename
@ -33,12 +76,17 @@ module GenSupport
module_function :safeconstname
def safeconstname?(name)
/\A[A-Z][a-zA-Z0-9_]*\z/ =~ name
/\A[A-Z][a-zA-Z0-9_]*\z/ =~ name and !keyword?(name)
end
module_function :safeconstname?
def safemethodname(name)
safevarname(name)
safename = name.scan(/[a-zA-Z0-9_]+/).join('_')
safename = uncapitalize(safename)
if /^[a-z]/ !~ safename
safename = "m_#{safename}"
end
safename
end
module_function :safemethodname
@ -50,18 +98,23 @@ module GenSupport
def safevarname(name)
safename = name.scan(/[a-zA-Z0-9_]+/).join('_')
safename = uncapitalize(safename)
unless /^[a-z]/ =~ safename
safename = "m_#{safename}"
if /^[a-z]/ !~ safename or keyword?(safename)
safename = "v_#{safename}"
end
safename
end
module_function :safevarname
def safevarname?(name)
/\A[a-z_][a-zA-Z0-9_]*\z/ =~ name
/\A[a-z_][a-zA-Z0-9_]*\z/ =~ name and !keyword?(name)
end
module_function :safevarname?
def keyword?(word)
KEYWORD.include?(word)
end
module_function :keyword?
def format(str, indent = nil)
str = trim_eol(str)
str = trim_indent(str)
@ -76,7 +129,7 @@ private
def trim_eol(str)
str.collect { |line|
line.sub(/\r?\n$/, "") + "\n"
line.sub(/\r?\n\z/, "") + "\n"
}.join
end

View file

@ -34,7 +34,7 @@ class MethodDef
buf = ""
buf << dump_comment if @comment
buf << dump_method_def
buf << dump_definition if @definition
buf << dump_definition if @definition and !@definition.empty?
buf << dump_method_def_end
buf
end

View file

@ -89,7 +89,7 @@ class ModuleDef
end
buf << dump_module_def_end
buf << dump_package_def_end(package) unless package.empty?
buf
buf.gsub(/^\s+$/, '')
end
private