savon 2.2.0 → 2.12.1

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.
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: []