savon 2.2.0 → 2.12.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/.travis.yml +20 -9
  4. data/CHANGELOG.md +157 -10
  5. data/CONTRIBUTING.md +1 -1
  6. data/Gemfile +10 -2
  7. data/README.md +38 -13
  8. data/donate.png +0 -0
  9. data/lib/savon/builder.rb +81 -15
  10. data/lib/savon/client.rb +6 -2
  11. data/lib/savon/core_ext/string.rb +0 -1
  12. data/lib/savon/header.rb +68 -17
  13. data/lib/savon/log_message.rb +7 -3
  14. data/lib/savon/message.rb +6 -7
  15. data/lib/savon/mock/expectation.rb +12 -2
  16. data/lib/savon/model.rb +4 -0
  17. data/lib/savon/operation.rb +45 -38
  18. data/lib/savon/options.rb +149 -22
  19. data/lib/savon/qualified_message.rb +31 -25
  20. data/lib/savon/request.rb +24 -4
  21. data/lib/savon/request_logger.rb +48 -0
  22. data/lib/savon/response.rb +35 -18
  23. data/lib/savon/soap_fault.rb +11 -11
  24. data/lib/savon/version.rb +1 -3
  25. data/savon.gemspec +12 -11
  26. data/spec/fixtures/response/empty_soap_fault.xml +13 -0
  27. data/spec/fixtures/response/f5.xml +39 -0
  28. data/spec/fixtures/response/no_body.xml +1 -0
  29. data/spec/fixtures/response/soap_fault_funky.xml +8 -0
  30. data/spec/fixtures/wsdl/brand.xml +624 -0
  31. data/spec/fixtures/wsdl/elements_in_types.xml +43 -0
  32. data/spec/fixtures/wsdl/no_message_tag.xml +1267 -0
  33. data/spec/fixtures/wsdl/vies.xml +176 -0
  34. data/spec/integration/centra_spec.rb +67 -0
  35. data/spec/integration/email_example_spec.rb +1 -1
  36. data/spec/integration/random_quote_spec.rb +23 -0
  37. data/spec/integration/stockquote_example_spec.rb +7 -1
  38. data/spec/integration/support/application.rb +1 -1
  39. data/spec/integration/zipcode_example_spec.rb +1 -1
  40. data/spec/savon/builder_spec.rb +50 -0
  41. data/spec/savon/client_spec.rb +78 -0
  42. data/spec/savon/core_ext/string_spec.rb +9 -9
  43. data/spec/savon/features/message_tag_spec.rb +5 -0
  44. data/spec/savon/http_error_spec.rb +2 -2
  45. data/spec/savon/log_message_spec.rb +18 -1
  46. data/spec/savon/message_spec.rb +70 -0
  47. data/spec/savon/mock_spec.rb +31 -0
  48. data/spec/savon/model_spec.rb +28 -0
  49. data/spec/savon/operation_spec.rb +69 -3
  50. data/spec/savon/options_spec.rb +515 -87
  51. data/spec/savon/qualified_message_spec.rb +101 -0
  52. data/spec/savon/request_logger_spec.rb +37 -0
  53. data/spec/savon/request_spec.rb +85 -10
  54. data/spec/savon/response_spec.rb +118 -27
  55. data/spec/savon/soap_fault_spec.rb +25 -5
  56. data/spec/savon/softlayer_spec.rb +27 -0
  57. data/spec/spec_helper.rb +5 -2
  58. data/spec/support/adapters.rb +48 -0
  59. data/spec/support/integration.rb +1 -1
  60. metadata +76 -93
@@ -2,10 +2,13 @@ require "spec_helper"
2
2
 
3
3
  describe Savon::SOAPFault do
4
4
  let(:soap_fault) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault)), nori }
5
+ let(:empty_soap_fault) { Savon::SOAPFault.new new_response(:body => Fixture.response(:empty_soap_fault)), nori }
5
6
  let(:soap_fault2) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault12)), nori }
7
+ let(:soap_fault_funky) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault_funky)), nori }
6
8
  let(:soap_fault_nc) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault)), nori_no_convert }
7
9
  let(:soap_fault_nc2) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault12)), nori_no_convert }
8
10
  let(:another_soap_fault) { Savon::SOAPFault.new new_response(:body => Fixture.response(:another_soap_fault)), nori }
11
+ let(:soap_fault_no_body) { Savon::SOAPFault.new new_response(:body => {}), nori }
9
12
  let(:no_fault) { Savon::SOAPFault.new new_response, nori }
10
13
 
11
14
  let(:nori) { Nori.new(:strip_namespaces => true, :convert_tags_to => lambda { |tag| tag.snakecase.to_sym }) }
@@ -24,21 +27,26 @@ describe Savon::SOAPFault do
24
27
  describe ".present?" do
25
28
  it "returns true if the HTTP response contains a SOAP 1.1 fault" do
26
29
  http = new_response(:body => Fixture.response(:soap_fault))
27
- expect(Savon::SOAPFault.present? http).to be_true
30
+ expect(Savon::SOAPFault.present? http).to be_truthy
31
+ end
32
+
33
+ it "returns true if the HTTP response contains a SOAP 1.1 fault with empty fault tags" do
34
+ http = new_response(:body => Fixture.response(:empty_soap_fault))
35
+ expect(Savon::SOAPFault.present? http).to be_truthy
28
36
  end
29
37
 
30
38
  it "returns true if the HTTP response contains a SOAP 1.2 fault" do
31
39
  http = new_response(:body => Fixture.response(:soap_fault12))
32
- expect(Savon::SOAPFault.present? http).to be_true
40
+ expect(Savon::SOAPFault.present? http).to be_truthy
33
41
  end
34
42
 
35
43
  it "returns true if the HTTP response contains a SOAP fault with different namespaces" do
36
44
  http = new_response(:body => Fixture.response(:another_soap_fault))
37
- expect(Savon::SOAPFault.present? http).to be_true
45
+ expect(Savon::SOAPFault.present? http).to be_truthy
38
46
  end
39
47
 
40
48
  it "returns false unless the HTTP response contains a SOAP fault" do
41
- expect(Savon::SOAPFault.present? new_response).to be_false
49
+ expect(Savon::SOAPFault.present? new_response).to be_falsey
42
50
  end
43
51
  end
44
52
 
@@ -48,6 +56,10 @@ describe Savon::SOAPFault do
48
56
  expect(soap_fault.send method).to eq("(soap:Server) Fault occurred while processing.")
49
57
  end
50
58
 
59
+ it "returns an empty fault message" do
60
+ expect(empty_soap_fault.send method).to eq(nil)
61
+ end
62
+
51
63
  it "returns a SOAP 1.2 fault message" do
52
64
  expect(soap_fault2.send method).to eq("(soap:Sender) Sender Timeout")
53
65
  end
@@ -63,12 +75,16 @@ describe Savon::SOAPFault do
63
75
  it "works even if the keys are different in a SOAP 1.2 fault message" do
64
76
  expect(soap_fault_nc2.send method).to eq("(soap:Sender) Sender Timeout")
65
77
  end
78
+
79
+ it "works even if the keys are different in a funky SOAP fault message" do
80
+ expect(soap_fault_funky.send method).to eq("(42) The Answer to Life The Universe And Everything")
81
+ end
66
82
  end
67
83
  end
68
84
 
69
85
  describe "#to_hash" do
70
86
  it "returns the SOAP response as a Hash unless a SOAP fault is present" do
71
- expect(no_fault.to_hash[:authenticate_response][:return][:success]).to be_true
87
+ expect(no_fault.to_hash[:authenticate_response][:return][:success]).to be_truthy
72
88
  end
73
89
 
74
90
  it "returns a SOAP 1.1 fault as a Hash" do
@@ -114,6 +130,10 @@ describe Savon::SOAPFault do
114
130
 
115
131
  expect(soap_fault_nc2.to_hash).to eq(expected)
116
132
  end
133
+
134
+ it "returns empty hash" do
135
+ expect(soap_fault_no_body.to_hash).to eq({})
136
+ end
117
137
  end
118
138
 
119
139
  def new_response(options = {})
@@ -0,0 +1,27 @@
1
+ require "spec_helper"
2
+
3
+ describe Savon::Builder do
4
+
5
+ subject(:builder) { Savon::Builder.new(:create_object, wsdl, globals, locals) }
6
+
7
+ let(:globals) { Savon::GlobalOptions.new }
8
+ # let(:locals) { Savon::LocalOptions.new }
9
+ let(:wsdl) { Wasabi::Document.new Fixture.wsdl(:brand) }
10
+ let(:no_wsdl) { Wasabi::Document.new }
11
+
12
+ describe "#to_s" do
13
+ it "defaults to include the default envelope namespace of :env" do
14
+ message = {
15
+ :message=>{
16
+ :template_object=>{
17
+ :longName=>"Zertico LLC Reseller"
18
+ }
19
+ }
20
+ }
21
+
22
+ locals = Savon::LocalOptions.new(message)
23
+ 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
+ end
26
+ end
27
+ end
@@ -1,10 +1,13 @@
1
1
  require "bundler"
2
2
  Bundler.setup(:default, :development)
3
3
 
4
- if ENV["COVERAGE"]
4
+ unless RUBY_PLATFORM =~ /java/
5
5
  require "simplecov"
6
+ require "coveralls"
7
+
8
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
6
9
  SimpleCov.start do
7
- add_filter "/spec/"
10
+ add_filter "spec"
8
11
  end
9
12
  end
10
13
 
@@ -0,0 +1,48 @@
1
+ require 'httpi/adapter/httpclient'
2
+
3
+ # Proxy adapter. Records all requests and passes them to HTTPClient
4
+ class AdapterForTest < HTTPI::Adapter::Base
5
+
6
+ register :adapter_for_test
7
+
8
+ def initialize(request)
9
+ @@requests ||= []
10
+ @@requests.push request
11
+ @request = request
12
+ @worker = HTTPI::Adapter::HTTPClient.new(request)
13
+ end
14
+
15
+ def client
16
+ @worker.client
17
+ end
18
+
19
+ def request(method)
20
+ @@methods ||= []
21
+ @@methods.push method
22
+ @worker.request(method)
23
+ end
24
+
25
+ end
26
+
27
+ # Fake adapter with request recording.
28
+ # Takes path from url and returns fixture WSDL with that name.
29
+ class FakeAdapterForTest < HTTPI::Adapter::Base
30
+
31
+ register :fake_adapter_for_test
32
+
33
+ def initialize(request)
34
+ @@requests ||= []
35
+ @@requests.push request
36
+ @request = request
37
+ end
38
+
39
+ attr_reader :client
40
+
41
+ def request(method)
42
+ @@methods ||= []
43
+ @@methods.push method
44
+ target = @request.url.path.to_sym
45
+ HTTPI::Response.new(200, {}, Fixture.wsdl(target))
46
+ end
47
+
48
+ end
@@ -3,7 +3,7 @@ module SpecSupport
3
3
  def call_and_fail_gracefully(client, *args, &block)
4
4
  client.call(*args, &block)
5
5
  rescue Savon::SOAPFault => e
6
- pending e.message
6
+ puts e.message
7
7
  end
8
8
 
9
9
  end
metadata CHANGED
@@ -1,222 +1,195 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: savon
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
5
- prerelease:
4
+ version: 2.12.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Daniel Harrington
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-21 00:00:00.000000000 Z
11
+ date: 2020-07-05 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: nori
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: 2.1.0
19
+ version: '2.4'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: 2.1.0
26
+ version: '2.4'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: httpi
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
- version: 2.0.2
33
+ version: '2.3'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
- version: 2.0.2
40
+ version: '2.3'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: wasabi
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ~>
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: 3.1.0
47
+ version: '3.4'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ~>
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
- version: 3.1.0
54
+ version: '3.4'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: akami
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ~>
59
+ - - "~>"
68
60
  - !ruby/object:Gem::Version
69
- version: 1.2.0
61
+ version: '1.2'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ~>
66
+ - - "~>"
76
67
  - !ruby/object:Gem::Version
77
- version: 1.2.0
68
+ version: '1.2'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: gyoku
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ~>
73
+ - - "~>"
84
74
  - !ruby/object:Gem::Version
85
- version: 1.0.0
75
+ version: '1.2'
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ~>
80
+ - - "~>"
92
81
  - !ruby/object:Gem::Version
93
- version: 1.0.0
82
+ version: '1.2'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: builder
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - ">="
100
88
  - !ruby/object:Gem::Version
101
89
  version: 2.1.2
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - ">="
108
95
  - !ruby/object:Gem::Version
109
96
  version: 2.1.2
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: nokogiri
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - ">="
116
102
  - !ruby/object:Gem::Version
117
- version: 1.4.0
103
+ version: 1.8.1
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - ">="
124
109
  - !ruby/object:Gem::Version
125
- version: 1.4.0
110
+ version: 1.8.1
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: rack
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - ! '>='
115
+ - - ">="
132
116
  - !ruby/object:Gem::Version
133
117
  version: '0'
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - ! '>='
122
+ - - ">="
140
123
  - !ruby/object:Gem::Version
141
124
  version: '0'
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: puma
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
- - - '='
129
+ - - "~>"
148
130
  - !ruby/object:Gem::Version
149
- version: 2.0.0.b4
131
+ version: '3.0'
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
- - - '='
136
+ - - "~>"
156
137
  - !ruby/object:Gem::Version
157
- version: 2.0.0.b4
138
+ version: '3.0'
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: rake
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
- - - ~>
143
+ - - "~>"
164
144
  - !ruby/object:Gem::Version
165
- version: '0.9'
145
+ version: '10.1'
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
- - - ~>
150
+ - - "~>"
172
151
  - !ruby/object:Gem::Version
173
- version: '0.9'
152
+ version: '10.1'
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: rspec
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
- - - ~>
157
+ - - "~>"
180
158
  - !ruby/object:Gem::Version
181
- version: '2.10'
159
+ version: '2.14'
182
160
  type: :development
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
- - - ~>
164
+ - - "~>"
188
165
  - !ruby/object:Gem::Version
189
- version: '2.10'
166
+ version: '2.14'
190
167
  - !ruby/object:Gem::Dependency
191
168
  name: mocha
192
169
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
170
  requirements:
195
- - - ~>
171
+ - - "~>"
196
172
  - !ruby/object:Gem::Version
197
- version: '0.11'
173
+ version: '0.14'
198
174
  type: :development
199
175
  prerelease: false
200
176
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
177
  requirements:
203
- - - ~>
178
+ - - "~>"
204
179
  - !ruby/object:Gem::Version
205
- version: '0.11'
180
+ version: '0.14'
206
181
  - !ruby/object:Gem::Dependency
207
182
  name: json
208
183
  requirement: !ruby/object:Gem::Requirement
209
- none: false
210
184
  requirements:
211
- - - ~>
185
+ - - "~>"
212
186
  - !ruby/object:Gem::Version
213
187
  version: '1.7'
214
188
  type: :development
215
189
  prerelease: false
216
190
  version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
191
  requirements:
219
- - - ~>
192
+ - - "~>"
220
193
  - !ruby/object:Gem::Version
221
194
  version: '1.7'
222
195
  description: Heavy metal SOAP client
@@ -225,15 +198,16 @@ executables: []
225
198
  extensions: []
226
199
  extra_rdoc_files: []
227
200
  files:
228
- - .gitignore
229
- - .travis.yml
230
- - .yardopts
201
+ - ".gitignore"
202
+ - ".travis.yml"
203
+ - ".yardopts"
231
204
  - CHANGELOG.md
232
205
  - CONTRIBUTING.md
233
206
  - Gemfile
234
207
  - LICENSE
235
208
  - README.md
236
209
  - Rakefile
210
+ - donate.png
237
211
  - lib/savon.rb
238
212
  - lib/savon/block_interface.rb
239
213
  - lib/savon/builder.rb
@@ -251,6 +225,7 @@ files:
251
225
  - lib/savon/options.rb
252
226
  - lib/savon/qualified_message.rb
253
227
  - lib/savon/request.rb
228
+ - lib/savon/request_logger.rb
254
229
  - lib/savon/response.rb
255
230
  - lib/savon/soap_fault.rb
256
231
  - lib/savon/version.rb
@@ -258,11 +233,15 @@ files:
258
233
  - spec/fixtures/gzip/message.gz
259
234
  - spec/fixtures/response/another_soap_fault.xml
260
235
  - spec/fixtures/response/authentication.xml
236
+ - spec/fixtures/response/empty_soap_fault.xml
237
+ - spec/fixtures/response/f5.xml
261
238
  - spec/fixtures/response/header.xml
262
239
  - spec/fixtures/response/list.xml
263
240
  - spec/fixtures/response/multi_ref.xml
241
+ - spec/fixtures/response/no_body.xml
264
242
  - spec/fixtures/response/soap_fault.xml
265
243
  - spec/fixtures/response/soap_fault12.xml
244
+ - spec/fixtures/response/soap_fault_funky.xml
266
245
  - spec/fixtures/response/taxcloud.xml
267
246
  - spec/fixtures/ssl/client_cert.pem
268
247
  - spec/fixtures/ssl/client_encrypted_key.pem
@@ -270,15 +249,21 @@ files:
270
249
  - spec/fixtures/ssl/client_key.pem
271
250
  - spec/fixtures/wsdl/authentication.xml
272
251
  - spec/fixtures/wsdl/betfair.xml
252
+ - spec/fixtures/wsdl/brand.xml
273
253
  - spec/fixtures/wsdl/edialog.xml
254
+ - spec/fixtures/wsdl/elements_in_types.xml
274
255
  - spec/fixtures/wsdl/interhome.xml
275
256
  - spec/fixtures/wsdl/lower_camel.xml
276
257
  - spec/fixtures/wsdl/multiple_namespaces.xml
277
258
  - spec/fixtures/wsdl/multiple_types.xml
259
+ - spec/fixtures/wsdl/no_message_tag.xml
278
260
  - spec/fixtures/wsdl/taxcloud.xml
279
261
  - spec/fixtures/wsdl/team_software.xml
262
+ - spec/fixtures/wsdl/vies.xml
280
263
  - spec/fixtures/wsdl/wasmuth.xml
264
+ - spec/integration/centra_spec.rb
281
265
  - spec/integration/email_example_spec.rb
266
+ - spec/integration/random_quote_spec.rb
282
267
  - spec/integration/ratp_example_spec.rb
283
268
  - spec/integration/stockquote_example_spec.rb
284
269
  - spec/integration/support/application.rb
@@ -291,47 +276,45 @@ files:
291
276
  - spec/savon/features/message_tag_spec.rb
292
277
  - spec/savon/http_error_spec.rb
293
278
  - spec/savon/log_message_spec.rb
279
+ - spec/savon/message_spec.rb
294
280
  - spec/savon/mock_spec.rb
295
281
  - spec/savon/model_spec.rb
296
282
  - spec/savon/observers_spec.rb
297
283
  - spec/savon/operation_spec.rb
298
284
  - spec/savon/options_spec.rb
285
+ - spec/savon/qualified_message_spec.rb
286
+ - spec/savon/request_logger_spec.rb
299
287
  - spec/savon/request_spec.rb
300
288
  - spec/savon/response_spec.rb
301
289
  - spec/savon/soap_fault_spec.rb
290
+ - spec/savon/softlayer_spec.rb
302
291
  - spec/spec_helper.rb
292
+ - spec/support/adapters.rb
303
293
  - spec/support/endpoint.rb
304
294
  - spec/support/fixture.rb
305
295
  - spec/support/integration.rb
306
296
  - spec/support/stdout.rb
307
297
  homepage: http://savonrb.com
308
- licenses: []
298
+ licenses:
299
+ - MIT
300
+ metadata: {}
309
301
  post_install_message:
310
302
  rdoc_options: []
311
303
  require_paths:
312
304
  - lib
313
305
  required_ruby_version: !ruby/object:Gem::Requirement
314
- none: false
315
306
  requirements:
316
- - - ! '>='
307
+ - - ">="
317
308
  - !ruby/object:Gem::Version
318
- version: '0'
319
- segments:
320
- - 0
321
- hash: -2382962917329619082
309
+ version: 1.9.2
322
310
  required_rubygems_version: !ruby/object:Gem::Requirement
323
- none: false
324
311
  requirements:
325
- - - ! '>='
312
+ - - ">="
326
313
  - !ruby/object:Gem::Version
327
314
  version: '0'
328
- segments:
329
- - 0
330
- hash: -2382962917329619082
331
315
  requirements: []
332
- rubyforge_project: savon
333
- rubygems_version: 1.8.24
316
+ rubygems_version: 3.0.1
334
317
  signing_key:
335
- specification_version: 3
318
+ specification_version: 4
336
319
  summary: Heavy metal SOAP client
337
320
  test_files: []