savon 2.11.2 → 2.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +2 -0
  3. data/CHANGELOG.md +103 -73
  4. data/CONTRIBUTING.md +15 -19
  5. data/Gemfile +2 -7
  6. data/README.md +26 -15
  7. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc.png +0 -0
  8. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc_disabled.png +0 -0
  9. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_both.png +0 -0
  10. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc.png +0 -0
  11. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc_disabled.png +0 -0
  12. data/coverage/assets/0.12.3/application.css +1 -0
  13. data/coverage/assets/0.12.3/application.js +7 -0
  14. data/coverage/assets/0.12.3/colorbox/border.png +0 -0
  15. data/coverage/assets/0.12.3/colorbox/controls.png +0 -0
  16. data/coverage/assets/0.12.3/colorbox/loading.gif +0 -0
  17. data/coverage/assets/0.12.3/colorbox/loading_background.png +0 -0
  18. data/coverage/assets/0.12.3/favicon_green.png +0 -0
  19. data/coverage/assets/0.12.3/favicon_red.png +0 -0
  20. data/coverage/assets/0.12.3/favicon_yellow.png +0 -0
  21. data/coverage/assets/0.12.3/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  22. data/coverage/assets/0.12.3/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  23. data/coverage/assets/0.12.3/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  24. data/coverage/assets/0.12.3/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  25. data/coverage/assets/0.12.3/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  26. data/coverage/assets/0.12.3/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  27. data/coverage/assets/0.12.3/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  28. data/coverage/assets/0.12.3/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  29. data/coverage/assets/0.12.3/images/ui-icons_222222_256x240.png +0 -0
  30. data/coverage/assets/0.12.3/images/ui-icons_2e83ff_256x240.png +0 -0
  31. data/coverage/assets/0.12.3/images/ui-icons_454545_256x240.png +0 -0
  32. data/coverage/assets/0.12.3/images/ui-icons_888888_256x240.png +0 -0
  33. data/coverage/assets/0.12.3/images/ui-icons_cd0a0a_256x240.png +0 -0
  34. data/coverage/assets/0.12.3/loading.gif +0 -0
  35. data/coverage/assets/0.12.3/magnify.png +0 -0
  36. data/coverage/index.html +21518 -0
  37. data/lib/savon/block_interface.rb +1 -0
  38. data/lib/savon/builder.rb +95 -29
  39. data/lib/savon/client.rb +1 -0
  40. data/lib/savon/core_ext/string.rb +1 -0
  41. data/lib/savon/header.rb +2 -6
  42. data/lib/savon/http_error.rb +4 -4
  43. data/lib/savon/log_message.rb +1 -0
  44. data/lib/savon/message.rb +1 -0
  45. data/lib/savon/mock/expectation.rb +1 -0
  46. data/lib/savon/mock/spec_helper.rb +1 -0
  47. data/lib/savon/mock.rb +1 -0
  48. data/lib/savon/model.rb +1 -0
  49. data/lib/savon/operation.rb +20 -18
  50. data/lib/savon/options.rb +70 -1
  51. data/lib/savon/qualified_message.rb +5 -4
  52. data/lib/savon/request.rb +18 -3
  53. data/lib/savon/request_logger.rb +8 -2
  54. data/lib/savon/response.rb +49 -2
  55. data/lib/savon/soap_fault.rb +2 -3
  56. data/lib/savon/version.rb +2 -1
  57. data/lib/savon.rb +1 -0
  58. data/savon.gemspec +10 -9
  59. data/spec/fixtures/response/empty_soap_fault.xml +13 -0
  60. data/spec/fixtures/response/no_body.xml +1 -0
  61. data/spec/fixtures/wsdl/elements_in_types.xml +43 -0
  62. data/spec/integration/support/application.rb +34 -2
  63. data/spec/integration/support/server.rb +1 -0
  64. data/spec/integration/zipcode_example_spec.rb +5 -8
  65. data/spec/savon/builder_spec.rb +2 -1
  66. data/spec/savon/client_spec.rb +5 -4
  67. data/spec/savon/core_ext/string_spec.rb +2 -1
  68. data/spec/savon/features/message_tag_spec.rb +2 -1
  69. data/spec/savon/http_error_spec.rb +9 -1
  70. data/spec/savon/log_message_spec.rb +2 -1
  71. data/spec/savon/message_spec.rb +2 -11
  72. data/spec/savon/mock_spec.rb +2 -1
  73. data/spec/savon/model_spec.rb +2 -1
  74. data/spec/savon/multipart_request_spec.rb +46 -0
  75. data/spec/savon/observers_spec.rb +2 -1
  76. data/spec/savon/operation_spec.rb +20 -43
  77. data/spec/savon/options_spec.rb +84 -5
  78. data/spec/savon/qualified_message_spec.rb +35 -1
  79. data/spec/savon/request_logger_spec.rb +2 -1
  80. data/spec/savon/request_spec.rb +99 -14
  81. data/spec/savon/response_spec.rb +7 -1
  82. data/spec/savon/soap_fault_spec.rb +12 -1
  83. data/spec/savon/softlayer_spec.rb +3 -2
  84. data/spec/spec_helper.rb +5 -4
  85. data/spec/support/adapters.rb +1 -0
  86. data/spec/support/endpoint.rb +1 -0
  87. data/spec/support/fixture.rb +1 -0
  88. data/spec/support/integration.rb +2 -1
  89. data/spec/support/stdout.rb +1 -0
  90. metadata +86 -33
  91. data/.travis.yml +0 -19
  92. data/donate.png +0 -0
  93. data/spec/integration/centra_spec.rb +0 -66
  94. data/spec/integration/email_example_spec.rb +0 -32
  95. data/spec/integration/random_quote_spec.rb +0 -23
  96. data/spec/integration/ratp_example_spec.rb +0 -28
  97. data/spec/integration/stockquote_example_spec.rb +0 -34
  98. data/spec/integration/temperature_example_spec.rb +0 -46
@@ -1,7 +1,8 @@
1
+ # frozen_string_literal: true
1
2
  require "spec_helper"
2
3
 
3
4
  module Savon
4
- describe QualifiedMessage, "#to_hash" do
5
+ RSpec.describe QualifiedMessage, "#to_hash" do
5
6
 
6
7
  context "if a key ends with !" do
7
8
  let(:used_namespaces) { {} }
@@ -62,6 +63,39 @@ module Savon
62
63
  expect(resulting_hash).to eq good_result
63
64
  expect(xml).to eq good_xml
64
65
  end
66
+
67
+ it "properly handles boolean false" do
68
+ used_namespaces = {
69
+ %w(tns Foo) => 'ns'
70
+ }
71
+
72
+ hash = {
73
+ :foo => {
74
+ :falsey => {
75
+ :@attr1 => false,
76
+ :content! => false
77
+ }
78
+ }
79
+ }
80
+
81
+ good_result = {
82
+ "ns:Foo" => {
83
+ :falsey => {
84
+ :@attr1 => false,
85
+ :content! => false
86
+ }
87
+ }
88
+ }
89
+
90
+ good_xml = %(<ns:Foo><Falsey attr1="false">false</Falsey></ns:Foo>)
91
+
92
+ message = described_class.new(types, used_namespaces, key_converter)
93
+ resulting_hash = message.to_hash(hash, ['tns'])
94
+ xml = Gyoku.xml(resulting_hash, key_converter: key_converter)
95
+
96
+ expect(resulting_hash).to eq good_result
97
+ expect(xml).to eq good_xml
98
+ end
65
99
  end
66
100
 
67
101
  end
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require "spec_helper"
2
3
 
3
- describe Savon::RequestLogger do
4
+ RSpec.describe Savon::RequestLogger do
4
5
 
5
6
  subject { described_class.new(globals) }
6
7
  let(:globals) { Savon::GlobalOptions.new(:log => true, :pretty_print_xml => true) }
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
1
2
  require "spec_helper"
2
3
  require "integration/support/server"
3
4
 
4
- describe Savon::WSDLRequest do
5
+ RSpec.describe Savon::WSDLRequest do
5
6
 
6
7
  let(:globals) { Savon::GlobalOptions.new }
7
8
  let(:http_request) { HTTPI::Request.new }
9
+ let(:ciphers) { OpenSSL::Cipher.ciphers }
8
10
 
9
11
  def new_wsdl_request
10
12
  Savon::WSDLRequest.new(globals, http_request)
@@ -16,6 +18,20 @@ describe Savon::WSDLRequest do
16
18
  expect(wsdl_request.build).to be_an(HTTPI::Request)
17
19
  end
18
20
 
21
+ describe "headers" do
22
+ it "are set when specified" do
23
+ globals.headers("Proxy-Authorization" => "Basic auth")
24
+ configured_http_request = new_wsdl_request.build
25
+
26
+ expect(configured_http_request.headers["Proxy-Authorization"]).to eq("Basic auth")
27
+ end
28
+
29
+ it "are not set otherwise" do
30
+ configured_http_request = new_wsdl_request.build
31
+ expect(configured_http_request.headers).to_not include("Proxy-Authorization")
32
+ end
33
+ end
34
+
19
35
  describe "proxy" do
20
36
  it "is set when specified" do
21
37
  globals.proxy("http://proxy.example.com")
@@ -58,10 +74,24 @@ describe Savon::WSDLRequest do
58
74
  end
59
75
  end
60
76
 
77
+ describe "write timeout" do
78
+ it "is set when specified" do
79
+ globals.write_timeout(44)
80
+ http_request.expects(:write_timeout=).with(44)
81
+
82
+ new_wsdl_request.build
83
+ end
84
+
85
+ it "is not set otherwise" do
86
+ http_request.expects(:read_timeout=).never
87
+ new_wsdl_request.build
88
+ end
89
+ end
90
+
61
91
  describe "ssl version" do
62
92
  it "is set when specified" do
63
- globals.ssl_version(:SSLv3)
64
- http_request.auth.ssl.expects(:ssl_version=).with(:SSLv3)
93
+ globals.ssl_version(:TLSv1)
94
+ http_request.auth.ssl.expects(:ssl_version=).with(:TLSv1)
65
95
 
66
96
  new_wsdl_request.build
67
97
  end
@@ -72,10 +102,38 @@ describe Savon::WSDLRequest do
72
102
  end
73
103
  end
74
104
 
105
+ describe "ssl min_version" do
106
+ it "is set when specified" do
107
+ globals.ssl_min_version(:TLS1_2)
108
+ http_request.auth.ssl.expects(:min_version=).with(:TLS1_2)
109
+
110
+ new_wsdl_request.build
111
+ end
112
+
113
+ it "is not set otherwise" do
114
+ http_request.auth.ssl.expects(:min_version=).never
115
+ new_wsdl_request.build
116
+ end
117
+ end
118
+
119
+ describe "ssl max_version" do
120
+ it "is set when specified" do
121
+ globals.ssl_max_version(:TLS1_2)
122
+ http_request.auth.ssl.expects(:max_version=).with(:TLS1_2)
123
+
124
+ new_wsdl_request.build
125
+ end
126
+
127
+ it "is not set otherwise" do
128
+ http_request.auth.ssl.expects(:max_version=).never
129
+ new_wsdl_request.build
130
+ end
131
+ end
132
+
75
133
  describe "ssl verify mode" do
76
134
  it "is set when specified" do
77
- globals.ssl_verify_mode(:none)
78
- http_request.auth.ssl.expects(:verify_mode=).with(:none)
135
+ globals.ssl_verify_mode(:peer)
136
+ http_request.auth.ssl.expects(:verify_mode=).with(:peer)
79
137
 
80
138
  new_wsdl_request.build
81
139
  end
@@ -86,6 +144,20 @@ describe Savon::WSDLRequest do
86
144
  end
87
145
  end
88
146
 
147
+ describe "ssl ciphers" do
148
+ it "is set when specified" do
149
+ globals.ssl_ciphers(ciphers)
150
+ http_request.auth.ssl.expects(:ciphers=).with(ciphers)
151
+
152
+ new_wsdl_request.build
153
+ end
154
+
155
+ it "is not set otherwise" do
156
+ http_request.auth.ssl.expects(:ciphers=).never
157
+ new_wsdl_request.build
158
+ end
159
+ end
160
+
89
161
  describe "ssl cert key file" do
90
162
  it "is set when specified" do
91
163
  cert_key = File.expand_path("../../fixtures/ssl/client_key.pem", __FILE__)
@@ -119,6 +191,7 @@ describe Savon::WSDLRequest do
119
191
  describe "ssl encrypted cert key file" do
120
192
  describe "set with an invalid decrypting password" do
121
193
  it "fails when attempting to use the SSL private key" do
194
+ skip("JRuby: find out why this does not raise an error!") if RUBY_PLATFORM == 'java'
122
195
  pass = "wrong-password"
123
196
  key = File.expand_path("../../fixtures/ssl/client_encrypted_key.pem", __FILE__)
124
197
  cert = File.expand_path("../../fixtures/ssl/client_encrypted_key_cert.pem", __FILE__)
@@ -129,15 +202,12 @@ describe Savon::WSDLRequest do
129
202
 
130
203
  new_wsdl_request.build
131
204
 
132
- expect { http_request.auth.ssl.cert_key }.to raise_error
205
+ expect { http_request.auth.ssl.cert_key }.to raise_error OpenSSL::PKey::PKeyError
133
206
  end
134
207
  end
135
208
 
136
209
  describe "set with a valid decrypting password" do
137
210
  it "handles SSL private keys properly" do
138
- if RUBY_ENGINE == 'jruby'
139
- pending("find out why this fails with a null pointer exception on jruby")
140
- end
141
211
  pass = "secure-password!42"
142
212
  key = File.expand_path("../../fixtures/ssl/client_encrypted_key.pem", __FILE__)
143
213
  cert = File.expand_path("../../fixtures/ssl/client_encrypted_key_cert.pem", __FILE__)
@@ -228,10 +298,11 @@ describe Savon::WSDLRequest do
228
298
 
229
299
  end
230
300
 
231
- describe Savon::SOAPRequest do
301
+ RSpec.describe Savon::SOAPRequest do
232
302
 
233
303
  let(:globals) { Savon::GlobalOptions.new }
234
304
  let(:http_request) { HTTPI::Request.new }
305
+ let(:ciphers) { OpenSSL::Cipher.ciphers }
235
306
 
236
307
  def new_soap_request
237
308
  Savon::SOAPRequest.new(globals, http_request)
@@ -364,8 +435,8 @@ describe Savon::SOAPRequest do
364
435
 
365
436
  describe "ssl version" do
366
437
  it "is set when specified" do
367
- globals.ssl_version(:SSLv3)
368
- http_request.auth.ssl.expects(:ssl_version=).with(:SSLv3)
438
+ globals.ssl_version(:TLSv1)
439
+ http_request.auth.ssl.expects(:ssl_version=).with(:TLSv1)
369
440
 
370
441
  new_soap_request.build
371
442
  end
@@ -378,8 +449,8 @@ describe Savon::SOAPRequest do
378
449
 
379
450
  describe "ssl verify mode" do
380
451
  it "is set when specified" do
381
- globals.ssl_verify_mode(:none)
382
- http_request.auth.ssl.expects(:verify_mode=).with(:none)
452
+ globals.ssl_verify_mode(:peer)
453
+ http_request.auth.ssl.expects(:verify_mode=).with(:peer)
383
454
 
384
455
  new_soap_request.build
385
456
  end
@@ -390,6 +461,20 @@ describe Savon::SOAPRequest do
390
461
  end
391
462
  end
392
463
 
464
+ describe "ssl ciphers" do
465
+ it "is set when specified" do
466
+ globals.ssl_ciphers(ciphers)
467
+ http_request.auth.ssl.expects(:ciphers=).with(ciphers)
468
+
469
+ new_soap_request.build
470
+ end
471
+
472
+ it "is not set otherwise" do
473
+ http_request.auth.ssl.expects(:ciphers=).never
474
+ new_soap_request.build
475
+ end
476
+ end
477
+
393
478
  describe "ssl cert key file" do
394
479
  it "is set when specified" do
395
480
  cert_key = File.expand_path("../../fixtures/ssl/client_key.pem", __FILE__)
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require "spec_helper"
2
3
 
3
- describe Savon::Response do
4
+ RSpec.describe Savon::Response do
4
5
 
5
6
  let(:globals) { Savon::GlobalOptions.new }
6
7
  let(:locals) { Savon::LocalOptions.new }
@@ -235,6 +236,11 @@ describe Savon::Response do
235
236
  expect(result).to be_a(Hash)
236
237
  expect(result.keys).to include(:authentication_value)
237
238
  end
239
+
240
+ it 'fails correctly when envelope contains only string' do
241
+ response = soap_response({ :body => Fixture.response(:no_body) })
242
+ expect { response.find('Body') }.to raise_error Savon::InvalidResponseError
243
+ end
238
244
  end
239
245
 
240
246
  describe "#http" do
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  require "spec_helper"
2
3
 
3
- describe Savon::SOAPFault do
4
+ RSpec.describe Savon::SOAPFault do
4
5
  let(:soap_fault) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault)), nori }
6
+ let(:empty_soap_fault) { Savon::SOAPFault.new new_response(:body => Fixture.response(:empty_soap_fault)), nori }
5
7
  let(:soap_fault2) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault12)), nori }
6
8
  let(:soap_fault_funky) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault_funky)), nori }
7
9
  let(:soap_fault_nc) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault)), nori_no_convert }
@@ -29,6 +31,11 @@ describe Savon::SOAPFault do
29
31
  expect(Savon::SOAPFault.present? http).to be_truthy
30
32
  end
31
33
 
34
+ it "returns true if the HTTP response contains a SOAP 1.1 fault with empty fault tags" do
35
+ http = new_response(:body => Fixture.response(:empty_soap_fault))
36
+ expect(Savon::SOAPFault.present? http).to be_truthy
37
+ end
38
+
32
39
  it "returns true if the HTTP response contains a SOAP 1.2 fault" do
33
40
  http = new_response(:body => Fixture.response(:soap_fault12))
34
41
  expect(Savon::SOAPFault.present? http).to be_truthy
@@ -50,6 +57,10 @@ describe Savon::SOAPFault do
50
57
  expect(soap_fault.send method).to eq("(soap:Server) Fault occurred while processing.")
51
58
  end
52
59
 
60
+ it "returns an empty fault message" do
61
+ expect(empty_soap_fault.send method).to eq(nil)
62
+ end
63
+
53
64
  it "returns a SOAP 1.2 fault message" do
54
65
  expect(soap_fault2.send method).to eq("(soap:Sender) Sender Timeout")
55
66
  end
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  require "spec_helper"
2
3
 
3
- describe Savon::Builder do
4
+ RSpec.describe Savon::Builder do
4
5
 
5
6
  subject(:builder) { Savon::Builder.new(:create_object, wsdl, globals, locals) }
6
7
 
@@ -21,7 +22,7 @@ describe Savon::Builder do
21
22
 
22
23
  locals = Savon::LocalOptions.new(message)
23
24
  builder = Savon::Builder.new(:create_object, wsdl, globals, locals)
24
- expect(builder.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://api.service.softlayer.com/soap/v3/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Body><tns:createObject><templateObject><longName>Zertico LLC Reseller</longName></templateObject></tns:createObject></env:Body></env:Envelope>')
25
+ expect(builder.to_s).to include('<env:Envelope')
25
26
  end
26
27
  end
27
28
  end
data/spec/spec_helper.rb CHANGED
@@ -1,11 +1,10 @@
1
+ # frozen_string_literal: true
1
2
  require "bundler"
3
+ require "byebug"
2
4
  Bundler.setup(:default, :development)
3
5
 
4
6
  unless RUBY_PLATFORM =~ /java/
5
7
  require "simplecov"
6
- require "coveralls"
7
-
8
- SimpleCov.formatter = Coveralls::SimpleCov::Formatter
9
8
  SimpleCov.start do
10
9
  add_filter "spec"
11
10
  end
@@ -19,12 +18,14 @@ require "rspec"
19
18
  require "httpclient"
20
19
 
21
20
  support_files = File.expand_path("spec/support/**/*.rb")
22
- Dir[support_files].each { |file| require file }
21
+ Dir[support_files].sort.each { |file| require file }
23
22
 
24
23
  RSpec.configure do |config|
25
24
  config.include SpecSupport
26
25
  config.mock_with :mocha
27
26
  config.order = "random"
27
+ config.example_status_persistence_file_path = ".rspec_status"
28
+ config.disable_monkey_patching!
28
29
  end
29
30
 
30
31
  HTTPI.log = false
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'httpi/adapter/httpclient'
2
3
 
3
4
  # Proxy adapter. Records all requests and passes them to HTTPClient
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Endpoint
2
3
  class << self
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Fixture
2
3
 
3
4
  TYPES = { :gzip => "gz", :response => "xml", :wsdl => "xml" }
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
1
2
  module SpecSupport
2
3
 
3
4
  def call_and_fail_gracefully(client, *args, &block)
4
5
  client.call(*args, &block)
5
6
  rescue Savon::SOAPFault => e
6
- pending e.message
7
+ puts e.message
7
8
  end
8
9
 
9
10
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module SpecSupport
2
3
 
3
4
  def mock_stdout
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: savon
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.2
4
+ version: 2.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Harrington
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-03 00:00:00.000000000 Z
11
+ date: 2022-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nori
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: httpi
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '2.3'
33
+ version: 2.4.5
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '2.3'
40
+ version: 2.4.5
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: wasabi
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,28 @@ dependencies:
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 1.4.0
103
+ version: 1.8.1
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 1.4.0
110
+ version: 1.8.1
111
+ - !ruby/object:Gem::Dependency
112
+ name: mail
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.5'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.5'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: rack
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -126,44 +140,58 @@ dependencies:
126
140
  name: puma
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - '='
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: 4.3.8
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 4.3.8
153
+ - !ruby/object:Gem::Dependency
154
+ name: byebug
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
130
158
  - !ruby/object:Gem::Version
131
- version: 2.0.0.b4
159
+ version: '0'
132
160
  type: :development
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
- - - '='
164
+ - - ">="
137
165
  - !ruby/object:Gem::Version
138
- version: 2.0.0.b4
166
+ version: '0'
139
167
  - !ruby/object:Gem::Dependency
140
168
  name: rake
141
169
  requirement: !ruby/object:Gem::Requirement
142
170
  requirements:
143
- - - "~>"
171
+ - - ">="
144
172
  - !ruby/object:Gem::Version
145
- version: '10.1'
173
+ version: 12.3.3
146
174
  type: :development
147
175
  prerelease: false
148
176
  version_requirements: !ruby/object:Gem::Requirement
149
177
  requirements:
150
- - - "~>"
178
+ - - ">="
151
179
  - !ruby/object:Gem::Version
152
- version: '10.1'
180
+ version: 12.3.3
153
181
  - !ruby/object:Gem::Dependency
154
182
  name: rspec
155
183
  requirement: !ruby/object:Gem::Requirement
156
184
  requirements:
157
185
  - - "~>"
158
186
  - !ruby/object:Gem::Version
159
- version: '2.14'
187
+ version: '3.9'
160
188
  type: :development
161
189
  prerelease: false
162
190
  version_requirements: !ruby/object:Gem::Requirement
163
191
  requirements:
164
192
  - - "~>"
165
193
  - !ruby/object:Gem::Version
166
- version: '2.14'
194
+ version: '3.9'
167
195
  - !ruby/object:Gem::Dependency
168
196
  name: mocha
169
197
  requirement: !ruby/object:Gem::Requirement
@@ -182,16 +210,16 @@ dependencies:
182
210
  name: json
183
211
  requirement: !ruby/object:Gem::Requirement
184
212
  requirements:
185
- - - "~>"
213
+ - - ">="
186
214
  - !ruby/object:Gem::Version
187
- version: '1.7'
215
+ version: 2.3.0
188
216
  type: :development
189
217
  prerelease: false
190
218
  version_requirements: !ruby/object:Gem::Requirement
191
219
  requirements:
192
- - - "~>"
220
+ - - ">="
193
221
  - !ruby/object:Gem::Version
194
- version: '1.7'
222
+ version: 2.3.0
195
223
  description: Heavy metal SOAP client
196
224
  email: me@rubiii.com
197
225
  executables: []
@@ -199,7 +227,6 @@ extensions: []
199
227
  extra_rdoc_files: []
200
228
  files:
201
229
  - ".gitignore"
202
- - ".travis.yml"
203
230
  - ".yardopts"
204
231
  - CHANGELOG.md
205
232
  - CONTRIBUTING.md
@@ -207,7 +234,36 @@ files:
207
234
  - LICENSE
208
235
  - README.md
209
236
  - Rakefile
210
- - donate.png
237
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc.png
238
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc_disabled.png
239
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_both.png
240
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc.png
241
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc_disabled.png
242
+ - coverage/assets/0.12.3/application.css
243
+ - coverage/assets/0.12.3/application.js
244
+ - coverage/assets/0.12.3/colorbox/border.png
245
+ - coverage/assets/0.12.3/colorbox/controls.png
246
+ - coverage/assets/0.12.3/colorbox/loading.gif
247
+ - coverage/assets/0.12.3/colorbox/loading_background.png
248
+ - coverage/assets/0.12.3/favicon_green.png
249
+ - coverage/assets/0.12.3/favicon_red.png
250
+ - coverage/assets/0.12.3/favicon_yellow.png
251
+ - coverage/assets/0.12.3/images/ui-bg_flat_0_aaaaaa_40x100.png
252
+ - coverage/assets/0.12.3/images/ui-bg_flat_75_ffffff_40x100.png
253
+ - coverage/assets/0.12.3/images/ui-bg_glass_55_fbf9ee_1x400.png
254
+ - coverage/assets/0.12.3/images/ui-bg_glass_65_ffffff_1x400.png
255
+ - coverage/assets/0.12.3/images/ui-bg_glass_75_dadada_1x400.png
256
+ - coverage/assets/0.12.3/images/ui-bg_glass_75_e6e6e6_1x400.png
257
+ - coverage/assets/0.12.3/images/ui-bg_glass_95_fef1ec_1x400.png
258
+ - coverage/assets/0.12.3/images/ui-bg_highlight-soft_75_cccccc_1x100.png
259
+ - coverage/assets/0.12.3/images/ui-icons_222222_256x240.png
260
+ - coverage/assets/0.12.3/images/ui-icons_2e83ff_256x240.png
261
+ - coverage/assets/0.12.3/images/ui-icons_454545_256x240.png
262
+ - coverage/assets/0.12.3/images/ui-icons_888888_256x240.png
263
+ - coverage/assets/0.12.3/images/ui-icons_cd0a0a_256x240.png
264
+ - coverage/assets/0.12.3/loading.gif
265
+ - coverage/assets/0.12.3/magnify.png
266
+ - coverage/index.html
211
267
  - lib/savon.rb
212
268
  - lib/savon/block_interface.rb
213
269
  - lib/savon/builder.rb
@@ -233,10 +289,12 @@ files:
233
289
  - spec/fixtures/gzip/message.gz
234
290
  - spec/fixtures/response/another_soap_fault.xml
235
291
  - spec/fixtures/response/authentication.xml
292
+ - spec/fixtures/response/empty_soap_fault.xml
236
293
  - spec/fixtures/response/f5.xml
237
294
  - spec/fixtures/response/header.xml
238
295
  - spec/fixtures/response/list.xml
239
296
  - spec/fixtures/response/multi_ref.xml
297
+ - spec/fixtures/response/no_body.xml
240
298
  - spec/fixtures/response/soap_fault.xml
241
299
  - spec/fixtures/response/soap_fault12.xml
242
300
  - spec/fixtures/response/soap_fault_funky.xml
@@ -249,6 +307,7 @@ files:
249
307
  - spec/fixtures/wsdl/betfair.xml
250
308
  - spec/fixtures/wsdl/brand.xml
251
309
  - spec/fixtures/wsdl/edialog.xml
310
+ - spec/fixtures/wsdl/elements_in_types.xml
252
311
  - spec/fixtures/wsdl/interhome.xml
253
312
  - spec/fixtures/wsdl/lower_camel.xml
254
313
  - spec/fixtures/wsdl/multiple_namespaces.xml
@@ -258,14 +317,8 @@ files:
258
317
  - spec/fixtures/wsdl/team_software.xml
259
318
  - spec/fixtures/wsdl/vies.xml
260
319
  - spec/fixtures/wsdl/wasmuth.xml
261
- - spec/integration/centra_spec.rb
262
- - spec/integration/email_example_spec.rb
263
- - spec/integration/random_quote_spec.rb
264
- - spec/integration/ratp_example_spec.rb
265
- - spec/integration/stockquote_example_spec.rb
266
320
  - spec/integration/support/application.rb
267
321
  - spec/integration/support/server.rb
268
- - spec/integration/temperature_example_spec.rb
269
322
  - spec/integration/zipcode_example_spec.rb
270
323
  - spec/savon/builder_spec.rb
271
324
  - spec/savon/client_spec.rb
@@ -276,6 +329,7 @@ files:
276
329
  - spec/savon/message_spec.rb
277
330
  - spec/savon/mock_spec.rb
278
331
  - spec/savon/model_spec.rb
332
+ - spec/savon/multipart_request_spec.rb
279
333
  - spec/savon/observers_spec.rb
280
334
  - spec/savon/operation_spec.rb
281
335
  - spec/savon/options_spec.rb
@@ -303,15 +357,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
303
357
  requirements:
304
358
  - - ">="
305
359
  - !ruby/object:Gem::Version
306
- version: 1.9.2
360
+ version: 2.5.0
307
361
  required_rubygems_version: !ruby/object:Gem::Requirement
308
362
  requirements:
309
363
  - - ">="
310
364
  - !ruby/object:Gem::Version
311
365
  version: '0'
312
366
  requirements: []
313
- rubyforge_project: savon
314
- rubygems_version: 2.6.12
367
+ rubygems_version: 3.2.9
315
368
  signing_key:
316
369
  specification_version: 4
317
370
  summary: Heavy metal SOAP client
data/.travis.yml DELETED
@@ -1,19 +0,0 @@
1
- # https://github.com/travis-ci/travis-ci/wiki/.travis.yml-options
2
- language: "ruby"
3
- sudo: false
4
- before_install:
5
- - gem install bundler
6
- script: "bundle exec rake --trace"
7
- rvm:
8
- - 2.0.0
9
- - 2.1.8
10
- - 2.2.4
11
- - 2.3.0
12
- - jruby
13
- - rbx-2
14
- matrix:
15
- allow_failures:
16
- - rvm: rbx-2
17
- fast_finish: true
18
- notifications:
19
- irc: "irc.freenode.org#savon"
data/donate.png DELETED
Binary file