savon 2.10.1 → 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.
- checksums.yaml +5 -5
- data/.travis.yml +20 -4
- data/CHANGELOG.md +35 -2
- data/Gemfile +1 -7
- data/README.md +18 -5
- data/lib/savon/builder.rb +32 -6
- data/lib/savon/client.rb +1 -2
- data/lib/savon/header.rb +2 -2
- data/lib/savon/log_message.rb +1 -1
- data/lib/savon/mock/expectation.rb +11 -2
- data/lib/savon/operation.rb +9 -2
- data/lib/savon/options.rb +47 -18
- data/lib/savon/qualified_message.rb +28 -27
- data/lib/savon/request.rb +17 -6
- data/lib/savon/response.rb +7 -6
- data/lib/savon/soap_fault.rb +2 -4
- data/lib/savon/version.rb +1 -1
- data/savon.gemspec +3 -10
- data/spec/fixtures/response/empty_soap_fault.xml +13 -0
- data/spec/fixtures/response/no_body.xml +1 -0
- data/spec/fixtures/wsdl/brand.xml +624 -0
- data/spec/fixtures/wsdl/elements_in_types.xml +43 -0
- data/spec/integration/centra_spec.rb +7 -6
- data/spec/integration/random_quote_spec.rb +1 -1
- data/spec/integration/stockquote_example_spec.rb +6 -0
- data/spec/integration/support/application.rb +1 -1
- data/spec/savon/builder_spec.rb +13 -4
- data/spec/savon/log_message_spec.rb +7 -1
- data/spec/savon/mock_spec.rb +11 -0
- data/spec/savon/options_spec.rb +65 -5
- data/spec/savon/qualified_message_spec.rb +86 -5
- data/spec/savon/request_spec.rb +52 -8
- data/spec/savon/response_spec.rb +5 -0
- data/spec/savon/soap_fault_spec.rb +15 -0
- data/spec/savon/softlayer_spec.rb +27 -0
- data/spec/support/integration.rb +1 -1
- metadata +15 -27
- data/NotificationBroker.wsdl +0 -126
- data/test.rb +0 -64
data/spec/savon/response_spec.rb
CHANGED
@@ -235,6 +235,11 @@ describe Savon::Response do
|
|
235
235
|
expect(result).to be_a(Hash)
|
236
236
|
expect(result.keys).to include(:authentication_value)
|
237
237
|
end
|
238
|
+
|
239
|
+
it 'fails correctly when envelope contains only string' do
|
240
|
+
response = soap_response({ :body => Fixture.response(:no_body) })
|
241
|
+
expect { response.find('Body') }.to raise_error Savon::InvalidResponseError
|
242
|
+
end
|
238
243
|
end
|
239
244
|
|
240
245
|
describe "#http" do
|
@@ -2,11 +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 }
|
6
7
|
let(:soap_fault_funky) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault_funky)), nori }
|
7
8
|
let(:soap_fault_nc) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault)), nori_no_convert }
|
8
9
|
let(:soap_fault_nc2) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault12)), nori_no_convert }
|
9
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 }
|
10
12
|
let(:no_fault) { Savon::SOAPFault.new new_response, nori }
|
11
13
|
|
12
14
|
let(:nori) { Nori.new(:strip_namespaces => true, :convert_tags_to => lambda { |tag| tag.snakecase.to_sym }) }
|
@@ -28,6 +30,11 @@ describe Savon::SOAPFault do
|
|
28
30
|
expect(Savon::SOAPFault.present? http).to be_truthy
|
29
31
|
end
|
30
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
|
36
|
+
end
|
37
|
+
|
31
38
|
it "returns true if the HTTP response contains a SOAP 1.2 fault" do
|
32
39
|
http = new_response(:body => Fixture.response(:soap_fault12))
|
33
40
|
expect(Savon::SOAPFault.present? http).to be_truthy
|
@@ -49,6 +56,10 @@ describe Savon::SOAPFault do
|
|
49
56
|
expect(soap_fault.send method).to eq("(soap:Server) Fault occurred while processing.")
|
50
57
|
end
|
51
58
|
|
59
|
+
it "returns an empty fault message" do
|
60
|
+
expect(empty_soap_fault.send method).to eq(nil)
|
61
|
+
end
|
62
|
+
|
52
63
|
it "returns a SOAP 1.2 fault message" do
|
53
64
|
expect(soap_fault2.send method).to eq("(soap:Sender) Sender Timeout")
|
54
65
|
end
|
@@ -119,6 +130,10 @@ describe Savon::SOAPFault do
|
|
119
130
|
|
120
131
|
expect(soap_fault_nc2.to_hash).to eq(expected)
|
121
132
|
end
|
133
|
+
|
134
|
+
it "returns empty hash" do
|
135
|
+
expect(soap_fault_no_body.to_hash).to eq({})
|
136
|
+
end
|
122
137
|
end
|
123
138
|
|
124
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
|
data/spec/support/integration.rb
CHANGED
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.
|
4
|
+
version: 2.12.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Harrington
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nori
|
@@ -80,20 +80,6 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '1.2'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: uuid
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 2.3.7
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 2.3.7
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: builder
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,14 +100,14 @@ dependencies:
|
|
114
100
|
requirements:
|
115
101
|
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.
|
103
|
+
version: 1.8.1
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
107
|
requirements:
|
122
108
|
- - ">="
|
123
109
|
- !ruby/object:Gem::Version
|
124
|
-
version: 1.
|
110
|
+
version: 1.8.1
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
112
|
name: rack
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,16 +126,16 @@ dependencies:
|
|
140
126
|
name: puma
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
142
128
|
requirements:
|
143
|
-
- -
|
129
|
+
- - "~>"
|
144
130
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
131
|
+
version: '3.0'
|
146
132
|
type: :development
|
147
133
|
prerelease: false
|
148
134
|
version_requirements: !ruby/object:Gem::Requirement
|
149
135
|
requirements:
|
150
|
-
- -
|
136
|
+
- - "~>"
|
151
137
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
138
|
+
version: '3.0'
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
140
|
name: rake
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -219,7 +205,6 @@ files:
|
|
219
205
|
- CONTRIBUTING.md
|
220
206
|
- Gemfile
|
221
207
|
- LICENSE
|
222
|
-
- NotificationBroker.wsdl
|
223
208
|
- README.md
|
224
209
|
- Rakefile
|
225
210
|
- donate.png
|
@@ -248,10 +233,12 @@ files:
|
|
248
233
|
- spec/fixtures/gzip/message.gz
|
249
234
|
- spec/fixtures/response/another_soap_fault.xml
|
250
235
|
- spec/fixtures/response/authentication.xml
|
236
|
+
- spec/fixtures/response/empty_soap_fault.xml
|
251
237
|
- spec/fixtures/response/f5.xml
|
252
238
|
- spec/fixtures/response/header.xml
|
253
239
|
- spec/fixtures/response/list.xml
|
254
240
|
- spec/fixtures/response/multi_ref.xml
|
241
|
+
- spec/fixtures/response/no_body.xml
|
255
242
|
- spec/fixtures/response/soap_fault.xml
|
256
243
|
- spec/fixtures/response/soap_fault12.xml
|
257
244
|
- spec/fixtures/response/soap_fault_funky.xml
|
@@ -262,7 +249,9 @@ files:
|
|
262
249
|
- spec/fixtures/ssl/client_key.pem
|
263
250
|
- spec/fixtures/wsdl/authentication.xml
|
264
251
|
- spec/fixtures/wsdl/betfair.xml
|
252
|
+
- spec/fixtures/wsdl/brand.xml
|
265
253
|
- spec/fixtures/wsdl/edialog.xml
|
254
|
+
- spec/fixtures/wsdl/elements_in_types.xml
|
266
255
|
- spec/fixtures/wsdl/interhome.xml
|
267
256
|
- spec/fixtures/wsdl/lower_camel.xml
|
268
257
|
- spec/fixtures/wsdl/multiple_namespaces.xml
|
@@ -298,13 +287,13 @@ files:
|
|
298
287
|
- spec/savon/request_spec.rb
|
299
288
|
- spec/savon/response_spec.rb
|
300
289
|
- spec/savon/soap_fault_spec.rb
|
290
|
+
- spec/savon/softlayer_spec.rb
|
301
291
|
- spec/spec_helper.rb
|
302
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
|
-
- test.rb
|
308
297
|
homepage: http://savonrb.com
|
309
298
|
licenses:
|
310
299
|
- MIT
|
@@ -317,15 +306,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
317
306
|
requirements:
|
318
307
|
- - ">="
|
319
308
|
- !ruby/object:Gem::Version
|
320
|
-
version:
|
309
|
+
version: 1.9.2
|
321
310
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
322
311
|
requirements:
|
323
312
|
- - ">="
|
324
313
|
- !ruby/object:Gem::Version
|
325
314
|
version: '0'
|
326
315
|
requirements: []
|
327
|
-
|
328
|
-
rubygems_version: 2.2.2
|
316
|
+
rubygems_version: 3.0.1
|
329
317
|
signing_key:
|
330
318
|
specification_version: 4
|
331
319
|
summary: Heavy metal SOAP client
|
data/NotificationBroker.wsdl
DELETED
@@ -1,126 +0,0 @@
|
|
1
|
-
<?xml version='1.0' encoding='UTF-8'?>
|
2
|
-
<wsdl:definitions name="NotificationBrokerService"
|
3
|
-
targetNamespace="http://docs.oasis-open.org/wsn/brw-2"
|
4
|
-
xmlns:tns="http://docs.oasis-open.org/wsn/brw-2"
|
5
|
-
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
6
|
-
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
|
7
|
-
xmlns:ns1="http://docs.oasis-open.org/wsn/brw-2">
|
8
|
-
|
9
|
-
<wsdl:import namespace="http://docs.oasis-open.org/wsn/brw-2" location="http://docs.oasis-open.org/wsn/brw-2.wsdl"/>
|
10
|
-
|
11
|
-
<wsdl:binding name="NotificationBrokerSoapBinding" type="ns1:NotificationBroker">
|
12
|
-
<soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
13
|
-
<wsdl:operation name="Notify">
|
14
|
-
<soap12:operation soapAction="" soapActionRequired="false" style="document"/>
|
15
|
-
<wsdl:input name="Notify">
|
16
|
-
<soap12:body use="literal"/>
|
17
|
-
</wsdl:input>
|
18
|
-
</wsdl:operation>
|
19
|
-
<wsdl:operation name="GetCurrentMessage">
|
20
|
-
<soap12:operation soapAction="" soapActionRequired="false" style="document"/>
|
21
|
-
<wsdl:input name="GetCurrentMessageRequest">
|
22
|
-
<soap12:body use="literal"/>
|
23
|
-
</wsdl:input>
|
24
|
-
<wsdl:output name="GetCurrentMessageResponse">
|
25
|
-
<soap12:body use="literal"/>
|
26
|
-
</wsdl:output>
|
27
|
-
<wsdl:fault name="TopicNotSupportedFault">
|
28
|
-
<soap12:fault name="TopicNotSupportedFault" use="literal"/>
|
29
|
-
</wsdl:fault>
|
30
|
-
<wsdl:fault name="TopicExpressionDialectUnknownFault">
|
31
|
-
<soap12:fault name="TopicExpressionDialectUnknownFault" use="literal"/>
|
32
|
-
</wsdl:fault>
|
33
|
-
<wsdl:fault name="MultipleTopicsSpecifiedFault">
|
34
|
-
<soap12:fault name="MultipleTopicsSpecifiedFault" use="literal"/>
|
35
|
-
</wsdl:fault>
|
36
|
-
<wsdl:fault name="InvalidTopicExpressionFault">
|
37
|
-
<soap12:fault name="InvalidTopicExpressionFault" use="literal"/>
|
38
|
-
</wsdl:fault>
|
39
|
-
<wsdl:fault name="ResourceUnknownFault">
|
40
|
-
<soap12:fault name="ResourceUnknownFault" use="literal"/>
|
41
|
-
</wsdl:fault>
|
42
|
-
<wsdl:fault name="NoCurrentMessageOnTopicFault">
|
43
|
-
<soap12:fault name="NoCurrentMessageOnTopicFault" use="literal"/>
|
44
|
-
</wsdl:fault>
|
45
|
-
</wsdl:operation>
|
46
|
-
<wsdl:operation name="RegisterPublisher">
|
47
|
-
<soap12:operation soapAction="" soapActionRequired="false" style="document"/>
|
48
|
-
<wsdl:input name="RegisterPublisherRequest">
|
49
|
-
<soap12:body use="literal"/>
|
50
|
-
</wsdl:input>
|
51
|
-
<wsdl:output name="RegisterPublisherResponse">
|
52
|
-
<soap12:body use="literal"/>
|
53
|
-
</wsdl:output>
|
54
|
-
<wsdl:fault name="TopicNotSupportedFault">
|
55
|
-
<soap12:fault name="TopicNotSupportedFault" use="literal"/>
|
56
|
-
</wsdl:fault>
|
57
|
-
<wsdl:fault name="PublisherRegistrationFailedFault">
|
58
|
-
<soap12:fault name="PublisherRegistrationFailedFault" use="literal"/>
|
59
|
-
</wsdl:fault>
|
60
|
-
<wsdl:fault name="UnacceptableInitialTerminationTimeFault">
|
61
|
-
<soap12:fault name="UnacceptableInitialTerminationTimeFault" use="literal"/>
|
62
|
-
</wsdl:fault>
|
63
|
-
<wsdl:fault name="InvalidTopicExpressionFault">
|
64
|
-
<soap12:fault name="InvalidTopicExpressionFault" use="literal"/>
|
65
|
-
</wsdl:fault>
|
66
|
-
<wsdl:fault name="ResourceUnknownFault">
|
67
|
-
<soap12:fault name="ResourceUnknownFault" use="literal"/>
|
68
|
-
</wsdl:fault>
|
69
|
-
<wsdl:fault name="PublisherRegistrationRejectedFault">
|
70
|
-
<soap12:fault name="PublisherRegistrationRejectedFault" use="literal"/>
|
71
|
-
</wsdl:fault>
|
72
|
-
</wsdl:operation>
|
73
|
-
<wsdl:operation name="Subscribe">
|
74
|
-
<soap12:operation soapAction="" soapActionRequired="false" style="document"/>
|
75
|
-
<wsdl:input name="SubscribeRequest">
|
76
|
-
<soap12:body use="literal"/>
|
77
|
-
</wsdl:input>
|
78
|
-
<wsdl:output name="SubscribeResponse">
|
79
|
-
<soap12:body use="literal"/>
|
80
|
-
</wsdl:output>
|
81
|
-
<wsdl:fault name="TopicNotSupportedFault">
|
82
|
-
<soap12:fault name="TopicNotSupportedFault" use="literal"/>
|
83
|
-
</wsdl:fault>
|
84
|
-
<wsdl:fault name="InvalidFilterFault">
|
85
|
-
<soap12:fault name="InvalidFilterFault" use="literal"/>
|
86
|
-
</wsdl:fault>
|
87
|
-
<wsdl:fault name="TopicExpressionDialectUnknownFault">
|
88
|
-
<soap12:fault name="TopicExpressionDialectUnknownFault" use="literal"/>
|
89
|
-
</wsdl:fault>
|
90
|
-
<wsdl:fault name="UnacceptableInitialTerminationTimeFault">
|
91
|
-
<soap12:fault name="UnacceptableInitialTerminationTimeFault" use="literal"/>
|
92
|
-
</wsdl:fault>
|
93
|
-
<wsdl:fault name="SubscribeCreationFailedFault">
|
94
|
-
<soap12:fault name="SubscribeCreationFailedFault" use="literal"/>
|
95
|
-
</wsdl:fault>
|
96
|
-
<wsdl:fault name="InvalidMessageContentExpressionFault">
|
97
|
-
<soap12:fault name="InvalidMessageContentExpressionFault" use="literal"/>
|
98
|
-
</wsdl:fault>
|
99
|
-
<wsdl:fault name="InvalidTopicExpressionFault">
|
100
|
-
<soap12:fault name="InvalidTopicExpressionFault" use="literal"/>
|
101
|
-
</wsdl:fault>
|
102
|
-
<wsdl:fault name="UnrecognizedPolicyRequestFault">
|
103
|
-
<soap12:fault name="UnrecognizedPolicyRequestFault" use="literal"/>
|
104
|
-
</wsdl:fault>
|
105
|
-
<wsdl:fault name="ResourceUnknownFault">
|
106
|
-
<soap12:fault name="ResourceUnknownFault" use="literal"/>
|
107
|
-
</wsdl:fault>
|
108
|
-
<wsdl:fault name="UnsupportedPolicyRequestFault">
|
109
|
-
<soap12:fault name="UnsupportedPolicyRequestFault" use="literal"/>
|
110
|
-
</wsdl:fault>
|
111
|
-
<wsdl:fault name="NotifyMessageNotSupportedFault">
|
112
|
-
<soap12:fault name="NotifyMessageNotSupportedFault" use="literal"/>
|
113
|
-
</wsdl:fault>
|
114
|
-
<wsdl:fault name="InvalidProducerPropertiesExpressionFault">
|
115
|
-
<soap12:fault name="InvalidProducerPropertiesExpressionFault" use="literal"/>
|
116
|
-
</wsdl:fault>
|
117
|
-
</wsdl:operation>
|
118
|
-
</wsdl:binding>
|
119
|
-
|
120
|
-
<wsdl:service name="NotificationBrokerService">
|
121
|
-
<wsdl:port binding="tns:NotificationBrokerSoapBinding" name="NotificationBrokerPort">
|
122
|
-
<soap12:address location="http://192.70.89.113:9000/wsn/NotificationBroker"/>
|
123
|
-
</wsdl:port>
|
124
|
-
</wsdl:service>
|
125
|
-
|
126
|
-
</wsdl:definitions>
|
data/test.rb
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
require 'savon'
|
2
|
-
|
3
|
-
class MyConfig
|
4
|
-
def wsdl; "NotificationBroker.wsdl"; end
|
5
|
-
def base; "base"; end
|
6
|
-
end
|
7
|
-
|
8
|
-
|
9
|
-
# Main module
|
10
|
-
module Surv
|
11
|
-
class Client
|
12
|
-
attr_accessor :topics
|
13
|
-
attr_reader :client, :config
|
14
|
-
|
15
|
-
def initialize(config)
|
16
|
-
@topics = Hash.new
|
17
|
-
|
18
|
-
#$stderr.puts("Entry point is #{config.proto}://#{config.site}:#{config.port}/#{config.entry}.")
|
19
|
-
|
20
|
-
client = Savon.client(wsdl: config.wsdl,
|
21
|
-
strip_namespaces: false,
|
22
|
-
log_level: :info,
|
23
|
-
convert_request_keys_to: :camelcase,
|
24
|
-
#pretty_print_xml: true,
|
25
|
-
)
|
26
|
-
|
27
|
-
#$stderr.puts("Entry point: #{client.wsdl.endpoint}")
|
28
|
-
$stderr.puts("Init done.")
|
29
|
-
$stderr.puts("Available methods: #{client.operations}")
|
30
|
-
@client = client
|
31
|
-
@config = config
|
32
|
-
end
|
33
|
-
|
34
|
-
def subscribe(topic, callback="callback")
|
35
|
-
my_topic = "#{@config.base}/#{callback}"
|
36
|
-
message = {
|
37
|
-
ConsumerReference: {
|
38
|
-
Address: my_topic,
|
39
|
-
},
|
40
|
-
Filter: {
|
41
|
-
TopicExpression: topic,
|
42
|
-
},
|
43
|
-
}
|
44
|
-
|
45
|
-
$stderr.puts(message)
|
46
|
-
$stderr.puts(" Subscribing #{my_topic} for #{topic}")
|
47
|
-
|
48
|
-
# @topics[callback] = Topic.new(callback)
|
49
|
-
# @topics[callback].bytes = 0
|
50
|
-
# @topics[callback].pkts = 0
|
51
|
-
|
52
|
-
begin
|
53
|
-
resp = client.call(:subscribe, message: message)
|
54
|
-
rescue Savon::Error => error
|
55
|
-
$stderr.puts("Error: #{error.http.code} #{error}")
|
56
|
-
else
|
57
|
-
puts "ZOMG request was successful??? #{resp}"
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
|
64
|
-
Surv::Client.new(MyConfig.new).subscribe('AsterixJSONGzipped')
|