soap4r-ng 2.0.3 → 2.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/soap/mapping/encodedregistry.rb +14 -4
- data/lib/soap/mapping/rubytypeFactory.rb +6 -1
- data/lib/soap/property.rb +4 -2
- data/lib/soap/rpc/cgistub.rb +6 -3
- data/lib/soap/rpc/httpserver.rb +8 -1
- data/lib/soap/version.rb +1 -1
- data/lib/xsd/xmlparser/oxparser.rb +1 -1
- metadata +4 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b3cfbee8d5a5dbc5e4416c83cd11af3048e292043305392d03f536f9a8c51c64
|
4
|
+
data.tar.gz: b67f334fbb01dbb79ed85b5773dbf30c0d923d1c91c0f2e06d1d66f0fd6e0643
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ba9dc6197fc4c73209df255cd9840a9220f34db791fcd54d191ef32d7b22d8cdb23461e785fb2beaffb5d58c02389898eab7a0b789017425cff4bc3e59c9f51
|
7
|
+
data.tar.gz: 15b63bc41c3c82597a2c90bae4904376d2aed2771d2239c19dfd0af31fb07a22b5ba9ce39086016ec230def7f8fa1325de00fc57b47953f5e9fa32574746901a
|
@@ -6,6 +6,11 @@
|
|
6
6
|
# redistribute it and/or modify it under the same terms of Ruby's license;
|
7
7
|
# either the dual license version in 2003, or any later version.
|
8
8
|
|
9
|
+
# in 2.4, 2.5 Fixnum/Bignum aliased to 'Integer'
|
10
|
+
FixnumShim = 1.class
|
11
|
+
FIXNUM_PRESENT = FixnumShim.name == 'Fixnum'
|
12
|
+
BignumShim = (10**20).class
|
13
|
+
BIGNUM_PRESENT = BignumShim.name == 'Bignum'
|
9
14
|
|
10
15
|
require 'soap/baseData'
|
11
16
|
require 'soap/mapping/mapping'
|
@@ -122,7 +127,7 @@ class EncodedRegistry
|
|
122
127
|
|
123
128
|
StringFactory = StringFactory_.new
|
124
129
|
BasetypeFactory = BasetypeFactory_.new
|
125
|
-
FixnumFactory = FixnumFactory_.new
|
130
|
+
FixnumFactory = FixnumFactory_.new if FIXNUM_PRESENT
|
126
131
|
DateTimeFactory = DateTimeFactory_.new
|
127
132
|
ArrayFactory = ArrayFactory_.new
|
128
133
|
Base64Factory = Base64Factory_.new
|
@@ -146,7 +151,6 @@ class EncodedRegistry
|
|
146
151
|
{:derived_class => true}],
|
147
152
|
[::Float, ::SOAP::SOAPFloat, BasetypeFactory,
|
148
153
|
{:derived_class => true}],
|
149
|
-
[::Fixnum, ::SOAP::SOAPInt, FixnumFactory],
|
150
154
|
[::Integer, ::SOAP::SOAPInt, BasetypeFactory,
|
151
155
|
{:derived_class => true}],
|
152
156
|
[::Integer, ::SOAP::SOAPLong, BasetypeFactory,
|
@@ -199,6 +203,8 @@ class EncodedRegistry
|
|
199
203
|
{:type => XSD::QName.new(RubyCustomTypeNamespace, "SOAPException")}],
|
200
204
|
]
|
201
205
|
|
206
|
+
SOAPBaseMap << [FixnumShim, ::SOAP::SOAPInt, FixnumFactory] if FIXNUM_PRESENT
|
207
|
+
|
202
208
|
RubyOriginalMap = [
|
203
209
|
[::NilClass, ::SOAP::SOAPNil, BasetypeFactory],
|
204
210
|
[::TrueClass, ::SOAP::SOAPBoolean, BasetypeFactory],
|
@@ -212,7 +218,6 @@ class EncodedRegistry
|
|
212
218
|
{:derived_class => true}],
|
213
219
|
[::Float, ::SOAP::SOAPFloat, BasetypeFactory,
|
214
220
|
{:derived_class => true}],
|
215
|
-
[::Fixnum, ::SOAP::SOAPInt, FixnumFactory],
|
216
221
|
[::Integer, ::SOAP::SOAPInt, BasetypeFactory,
|
217
222
|
{:derived_class => true}],
|
218
223
|
[::Integer, ::SOAP::SOAPLong, BasetypeFactory,
|
@@ -263,6 +268,8 @@ class EncodedRegistry
|
|
263
268
|
{:type => XSD::QName.new(RubyCustomTypeNamespace, "SOAPException")}],
|
264
269
|
]
|
265
270
|
|
271
|
+
RubyOriginalMap << [FixnumShim, ::SOAP::SOAPInt, FixnumFactory] if FIXNUM_PRESENT
|
272
|
+
|
266
273
|
attr_accessor :default_factory
|
267
274
|
attr_accessor :excn_handler_obj2soap
|
268
275
|
attr_accessor :excn_handler_soap2obj
|
@@ -411,7 +418,10 @@ private
|
|
411
418
|
end
|
412
419
|
|
413
420
|
def addextend2soap(node, obj)
|
414
|
-
return if [Symbol,
|
421
|
+
return if [Symbol, Integer, Float].any?{ |c| obj.is_a?(c) }
|
422
|
+
return if FIXNUM_PRESENT && obj.is_a?(FixnumShim)
|
423
|
+
return if BIGNUM_PRESENT && obj.is_a?(BignumShim)
|
424
|
+
return if obj.is_a?(String) && obj.frozen?
|
415
425
|
list = (class << obj; self; end).ancestors - obj.class.ancestors
|
416
426
|
list = list.reject{|c| c.class == Class } ## As of Ruby 2.1 Singleton Classes are now included in the ancestry. Need to filter those out here.
|
417
427
|
|
@@ -6,6 +6,10 @@
|
|
6
6
|
# redistribute it and/or modify it under the same terms of Ruby's license;
|
7
7
|
# either the dual license version in 2003, or any later version.
|
8
8
|
|
9
|
+
old_verbose, $VERBOSE = $VERBOSE, nil # silence warnings
|
10
|
+
DATA_PRESENT = defined?(Data)
|
11
|
+
DataShim = Kernel.const_get('Data') if DATA_PRESENT
|
12
|
+
$VERBOSE = old_verbose
|
9
13
|
|
10
14
|
module SOAP
|
11
15
|
module Mapping
|
@@ -38,6 +42,7 @@ class RubytypeFactory < Factory
|
|
38
42
|
|
39
43
|
def obj2soap(soap_class, obj, info, map)
|
40
44
|
param = nil
|
45
|
+
|
41
46
|
case obj
|
42
47
|
when ::String
|
43
48
|
unless @allow_original_mapping
|
@@ -193,7 +198,7 @@ class RubytypeFactory < Factory
|
|
193
198
|
param.add('member', ele_member)
|
194
199
|
addiv2soapattr(param, obj, map)
|
195
200
|
end
|
196
|
-
when ::IO, ::Binding,
|
201
|
+
when ::IO, ::Binding, DataShim, ::Dir, ::File::Stat,
|
197
202
|
::MatchData, Method, ::Proc, ::Process::Status, ::Thread,
|
198
203
|
::ThreadGroup, ::UnboundMethod
|
199
204
|
return nil
|
data/lib/soap/property.rb
CHANGED
@@ -33,7 +33,9 @@ module SOAP
|
|
33
33
|
# aaa.hhh = iii
|
34
34
|
#
|
35
35
|
class Property
|
36
|
-
|
36
|
+
unless defined?(FrozenError) # defined since 2.5
|
37
|
+
FrozenError = (RUBY_VERSION >= "1.9.0") ? RuntimeError : TypeError
|
38
|
+
end
|
37
39
|
|
38
40
|
include Enumerable
|
39
41
|
|
@@ -327,4 +329,4 @@ private
|
|
327
329
|
end
|
328
330
|
|
329
331
|
|
330
|
-
end
|
332
|
+
end
|
data/lib/soap/rpc/cgistub.rb
CHANGED
@@ -202,7 +202,7 @@ private
|
|
202
202
|
HTTPVersion = WEBrick::HTTPVersion.new('1.0') # dummy; ignored
|
203
203
|
|
204
204
|
def run
|
205
|
-
res = WEBrick::HTTPResponse.new({:HTTPVersion => HTTPVersion})
|
205
|
+
res = WEBrick::HTTPResponse.new({:HTTPVersion => HTTPVersion, :Logger => logger})
|
206
206
|
begin
|
207
207
|
@log.info { "received a request from '#{ @remote_host }'" }
|
208
208
|
if @fcgi
|
@@ -227,9 +227,12 @@ private
|
|
227
227
|
r.send_http_header
|
228
228
|
buf = res.body
|
229
229
|
else
|
230
|
-
|
230
|
+
# since 2.5 it doesn't work with empty string in WEBRICK::HTTPResponse#send_header(socket)
|
231
|
+
# https://github.com/ruby/ruby/commit/c44978b99f0454b8f00674f2f407893c8c47248e
|
232
|
+
buf = StringIO.new
|
231
233
|
res.send_response(buf)
|
232
|
-
|
234
|
+
|
235
|
+
buf = buf.string.sub(/^[^\r]+\r\n/, '') # Trim status line.
|
233
236
|
end
|
234
237
|
@log.debug { "SOAP CGI Response:\n#{ buf }" }
|
235
238
|
if @fcgi
|
data/lib/soap/rpc/httpserver.rb
CHANGED
@@ -41,6 +41,7 @@ class HTTPServer < Logger::Application
|
|
41
41
|
@router = ::SOAP::RPC::Router.new(actor)
|
42
42
|
@soaplet = ::SOAP::RPC::SOAPlet.new(@router)
|
43
43
|
on_init
|
44
|
+
|
44
45
|
@server = WEBrick::HTTPServer.new(@webrick_config)
|
45
46
|
@server.mount('/soaprouter', @soaplet)
|
46
47
|
if wsdldir = config[:WSDLDocumentDirectory]
|
@@ -58,7 +59,13 @@ class HTTPServer < Logger::Application
|
|
58
59
|
end
|
59
60
|
|
60
61
|
def shutdown
|
61
|
-
|
62
|
+
if @server
|
63
|
+
@server.shutdown
|
64
|
+
while (@server.listeners.length > 0) && (@server.tokens.length > 0) && (@server.status != :Stop)
|
65
|
+
sleep(0.25)
|
66
|
+
end
|
67
|
+
sleep(0.25) # One more for good measure.
|
68
|
+
end
|
62
69
|
end
|
63
70
|
|
64
71
|
def authenticator
|
data/lib/soap/version.rb
CHANGED
@@ -28,7 +28,7 @@ class OxParser < XSD::XMLParser::Parser
|
|
28
28
|
::Ox.sax_parse(handler, string, {:symbolize=> false, :convert_special=> true, :skip=> :skip_return} )
|
29
29
|
else
|
30
30
|
# Use HTMLEntities Decoder. Leave the special-character conversion alone and let HTMLEntities decode it for us.
|
31
|
-
::Ox.sax_parse(handler, string, {})
|
31
|
+
::Ox.sax_parse(handler, string, {:skip=> :skip_none})
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
metadata
CHANGED
@@ -1,43 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: soap4r-ng
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Laurence A. Lee, Hiroshi NAKAMURA
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: httpclient
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '2.6'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '2.6'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: logger-application
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0.2
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 0.0.2
|
11
|
+
date: 2018-06-21 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
41
13
|
description: Soap4R NextGen (as maintained by RubyJedi) for Ruby 1.8 thru 2.1 and
|
42
14
|
beyond
|
43
15
|
email: rubyjedi@gmail.com, nahi@ruby-lang.org
|
@@ -230,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
230
202
|
requirements:
|
231
203
|
- none
|
232
204
|
rubyforge_project:
|
233
|
-
rubygems_version: 2.
|
205
|
+
rubygems_version: 2.7.7
|
234
206
|
signing_key:
|
235
207
|
specification_version: 4
|
236
208
|
summary: Soap4R-ng - Soap4R (as maintained by RubyJedi) for Ruby 1.8 thru 2.1 and
|