soap4r-ng 2.0.3 → 2.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: feac1a1b6c95487a81f512a6140b042fb412fece
4
- data.tar.gz: 07fd71acfbc506dd522a151d6ac450927452b3e7
2
+ SHA256:
3
+ metadata.gz: 7ee42117a6f0c89fd3dbf5a3fb81a4953dcb4ab6a6a0b7b17d701fd4a1df5692
4
+ data.tar.gz: 9c1cd45b938b7763bf30fd62670bf2119054129f44b2cb86f9c421e7ba8e7861
5
5
  SHA512:
6
- metadata.gz: ea80f755cd8d36451727d5a572ce9e509efe93d562e3fa463fd1e379bf8b5a1f02c59466d3ba90aa64309e83417688c6e0b0004b9d31b0872b1aa3b68d329d82
7
- data.tar.gz: 109b4f5fcdc2b3c98412c5e3ee1a8ae921eec1345e170681a1052afe04e82eba47656bcec78956e886bb3cc7f3b023d777b01a869f7028037667c734bd1f4599
6
+ metadata.gz: c967b100a580ee46c0b4825579f4c195a292f22764ecb18789c447d12572f30de45c051d4a5ad7a2dc9bab72d73520e63c5ca23877998b706bb6a8797c267aff
7
+ data.tar.gz: cc8c9af693fff6f4c3e88e66cc4ed489f05e9b98e8edee3f2a7c1568f956b552be1dadb2738ded70e14a273ffff1054927f79b49997f4052fcb6872a8ad3c443
data/lib/soap/baseData.rb CHANGED
@@ -1080,7 +1080,7 @@ private
1080
1080
  "#{typename}[" << ',' * (rank - 1) << ']'
1081
1081
  end
1082
1082
 
1083
- TypeParseRegexp = Regexp.new('^(.+)\[([\d,]*)\]$', nil, 'n')
1083
+ TypeParseRegexp = Regexp.new('^(.+)\[([\d,]*)\]$', Regexp::NOENCODING)
1084
1084
 
1085
1085
  def self.parse_type(string)
1086
1086
  TypeParseRegexp =~ string
@@ -270,7 +270,15 @@ private
270
270
  end
271
271
 
272
272
  def get_encode_char_regexp
273
- ENCODE_CHAR_REGEXP[XSD::Charset.encoding] ||= Regexp.new("[#{EncodeMap.keys.join}]", nil, (RUBY_VERSION.to_f <= 1.8) ? XSD::Charset.encoding : nil) # RubyJedi: compatible with Ruby 1.8.6 and above
273
+ ENCODE_CHAR_REGEXP[XSD::Charset.encoding] ||= begin
274
+ if RUBY_VERSION.to_f <= 1.8
275
+ Regexp.new("[#{EncodeMap.keys.join}]", nil, XSD::Charset.encoding)
276
+ elsif RUBY_VERSION.to_f < 3.3
277
+ Regexp.new("[#{EncodeMap.keys.join}]", nil, nil) # RubyJedi: compatible with Ruby 1.8.6 and above
278
+ else
279
+ Regexp.new("[#{EncodeMap.keys.join}]")
280
+ end
281
+ end
274
282
  end
275
283
 
276
284
  def find_handler(encodingstyle)
@@ -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, Fixnum, Bignum, Float].any?{ |c| obj.is_a?(c) }
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, ::Data, ::Dir, ::File::Stat,
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
- FrozenError = (RUBY_VERSION >= "1.9.0") ? RuntimeError : TypeError
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
@@ -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
- buf = ''
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
- buf.sub!(/^[^\r]+\r\n/, '') # Trim status line.
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
@@ -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
- @server.shutdown if @server
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
@@ -3,7 +3,7 @@ module SOAP
3
3
  module VERSION #:nodoc:
4
4
  MAJOR = 2
5
5
  MINOR = 0
6
- TINY = 3
6
+ TINY = 6
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
 
9
9
  FORK = "SOAP4R-NG"
data/lib/xsd/charset.rb CHANGED
@@ -130,18 +130,18 @@ public
130
130
 
131
131
  # us_ascii = '[\x00-\x7F]'
132
132
  us_ascii = '[\x9\xa\xd\x20-\x7F]' # XML 1.0 restricted.
133
- USASCIIRegexp = Regexp.new("\\A#{us_ascii}*\\z", nil, 'n')
133
+ USASCIIRegexp = Regexp.new("\\A#{us_ascii}*\\z", Regexp::NOENCODING)
134
134
 
135
135
  twobytes_euc = '(?:[\x8E\xA1-\xFE][\xA1-\xFE])'
136
136
  threebytes_euc = '(?:\x8F[\xA1-\xFE][\xA1-\xFE])'
137
137
  character_euc = "(?:#{us_ascii}|#{twobytes_euc}|#{threebytes_euc})"
138
- EUCRegexp = Regexp.new("\\A#{character_euc}*\\z", nil, 'n')
138
+ EUCRegexp = Regexp.new("\\A#{character_euc}*\\z", Regexp::NOENCODING)
139
139
 
140
140
  # onebyte_sjis = '[\x00-\x7F\xA1-\xDF]'
141
141
  onebyte_sjis = '[\x9\xa\xd\x20-\x7F\xA1-\xDF]' # XML 1.0 restricted.
142
142
  twobytes_sjis = '(?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])'
143
143
  character_sjis = "(?:#{onebyte_sjis}|#{twobytes_sjis})"
144
- SJISRegexp = Regexp.new("\\A#{character_sjis}*\\z", nil, 'n')
144
+ SJISRegexp = Regexp.new("\\A#{character_sjis}*\\z", Regexp::NOENCODING)
145
145
 
146
146
  # 0xxxxxxx
147
147
  # 110yyyyy 10xxxxxx
@@ -152,7 +152,7 @@ public
152
152
  fourbytes_utf8 = '(?:[\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF])'
153
153
  character_utf8 =
154
154
  "(?:#{us_ascii}|#{twobytes_utf8}|#{threebytes_utf8}|#{fourbytes_utf8})"
155
- UTF8Regexp = Regexp.new("\\A#{character_utf8}*\\z", nil, 'n')
155
+ UTF8Regexp = Regexp.new("\\A#{character_utf8}*\\z", Regexp::NOENCODING)
156
156
 
157
157
  def Charset.is_us_ascii(str)
158
158
  USASCIIRegexp =~ str
@@ -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.3
4
+ version: 2.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Laurence A. Lee, Hiroshi NAKAMURA
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-29 00:00:00.000000000 Z
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: 2024-08-03 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
@@ -213,7 +185,7 @@ homepage: http://rubyjedi.github.io/soap4r/
213
185
  licenses:
214
186
  - Ruby
215
187
  metadata: {}
216
- post_install_message:
188
+ post_install_message:
217
189
  rdoc_options: []
218
190
  require_paths:
219
191
  - lib
@@ -229,9 +201,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
229
201
  version: '0'
230
202
  requirements:
231
203
  - none
232
- rubyforge_project:
233
- rubygems_version: 2.4.6
234
- signing_key:
204
+ rubygems_version: 3.5.11
205
+ signing_key:
235
206
  specification_version: 4
236
207
  summary: Soap4R-ng - Soap4R (as maintained by RubyJedi) for Ruby 1.8 thru 2.1 and
237
208
  beyond