savon 2.11.2 → 2.14.0
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/CHANGELOG.md +112 -73
- data/README.md +25 -16
- data/lib/savon/block_interface.rb +1 -0
- data/lib/savon/builder.rb +100 -30
- data/lib/savon/client.rb +1 -0
- data/lib/savon/header.rb +2 -6
- data/lib/savon/http_error.rb +4 -4
- data/lib/savon/log_message.rb +1 -0
- data/lib/savon/message.rb +1 -0
- data/lib/savon/mock/expectation.rb +1 -0
- data/lib/savon/mock/spec_helper.rb +1 -0
- data/lib/savon/mock.rb +1 -0
- data/lib/savon/model.rb +4 -3
- data/lib/savon/operation.rb +20 -18
- data/lib/savon/options.rb +71 -2
- data/lib/savon/qualified_message.rb +5 -4
- data/lib/savon/request.rb +18 -3
- data/lib/savon/request_logger.rb +8 -2
- data/lib/savon/response.rb +52 -5
- data/lib/savon/soap_fault.rb +2 -3
- data/lib/savon/string_utils.rb +17 -0
- data/lib/savon/version.rb +2 -1
- data/lib/savon.rb +2 -0
- metadata +62 -97
- data/.gitignore +0 -14
- data/.travis.yml +0 -19
- data/.yardopts +0 -6
- data/CONTRIBUTING.md +0 -46
- data/Gemfile +0 -13
- data/donate.png +0 -0
- data/lib/savon/core_ext/string.rb +0 -29
- data/savon.gemspec +0 -46
- data/spec/fixtures/gzip/message.gz +0 -0
- data/spec/fixtures/response/another_soap_fault.xml +0 -14
- data/spec/fixtures/response/authentication.xml +0 -14
- data/spec/fixtures/response/f5.xml +0 -39
- data/spec/fixtures/response/header.xml +0 -13
- data/spec/fixtures/response/list.xml +0 -18
- data/spec/fixtures/response/multi_ref.xml +0 -39
- data/spec/fixtures/response/soap_fault.xml +0 -8
- data/spec/fixtures/response/soap_fault12.xml +0 -18
- data/spec/fixtures/response/soap_fault_funky.xml +0 -8
- data/spec/fixtures/response/taxcloud.xml +0 -1
- data/spec/fixtures/ssl/client_cert.pem +0 -16
- data/spec/fixtures/ssl/client_encrypted_key.pem +0 -30
- data/spec/fixtures/ssl/client_encrypted_key_cert.pem +0 -24
- data/spec/fixtures/ssl/client_key.pem +0 -15
- data/spec/fixtures/wsdl/authentication.xml +0 -63
- data/spec/fixtures/wsdl/betfair.xml +0 -2981
- data/spec/fixtures/wsdl/brand.xml +0 -624
- data/spec/fixtures/wsdl/edialog.xml +0 -15416
- data/spec/fixtures/wsdl/interhome.xml +0 -2137
- data/spec/fixtures/wsdl/lower_camel.xml +0 -52
- data/spec/fixtures/wsdl/multiple_namespaces.xml +0 -92
- data/spec/fixtures/wsdl/multiple_types.xml +0 -60
- data/spec/fixtures/wsdl/no_message_tag.xml +0 -1267
- data/spec/fixtures/wsdl/taxcloud.xml +0 -934
- data/spec/fixtures/wsdl/team_software.xml +0 -1
- data/spec/fixtures/wsdl/vies.xml +0 -176
- data/spec/fixtures/wsdl/wasmuth.xml +0 -153
- data/spec/integration/centra_spec.rb +0 -66
- data/spec/integration/email_example_spec.rb +0 -32
- data/spec/integration/random_quote_spec.rb +0 -23
- data/spec/integration/ratp_example_spec.rb +0 -28
- data/spec/integration/stockquote_example_spec.rb +0 -34
- data/spec/integration/support/application.rb +0 -82
- data/spec/integration/support/server.rb +0 -84
- data/spec/integration/temperature_example_spec.rb +0 -46
- data/spec/integration/zipcode_example_spec.rb +0 -42
- data/spec/savon/builder_spec.rb +0 -137
- data/spec/savon/client_spec.rb +0 -271
- data/spec/savon/core_ext/string_spec.rb +0 -37
- data/spec/savon/features/message_tag_spec.rb +0 -61
- data/spec/savon/http_error_spec.rb +0 -49
- data/spec/savon/log_message_spec.rb +0 -50
- data/spec/savon/message_spec.rb +0 -70
- data/spec/savon/mock_spec.rb +0 -174
- data/spec/savon/model_spec.rb +0 -182
- data/spec/savon/observers_spec.rb +0 -92
- data/spec/savon/operation_spec.rb +0 -230
- data/spec/savon/options_spec.rb +0 -1075
- data/spec/savon/qualified_message_spec.rb +0 -68
- data/spec/savon/request_logger_spec.rb +0 -37
- data/spec/savon/request_spec.rb +0 -496
- data/spec/savon/response_spec.rb +0 -270
- data/spec/savon/soap_fault_spec.rb +0 -136
- data/spec/savon/softlayer_spec.rb +0 -27
- data/spec/spec_helper.rb +0 -30
- data/spec/support/adapters.rb +0 -48
- data/spec/support/endpoint.rb +0 -25
- data/spec/support/fixture.rb +0 -39
- data/spec/support/integration.rb +0 -9
- data/spec/support/stdout.rb +0 -25
data/lib/savon/response.rb
CHANGED
@@ -1,14 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require "nori"
|
2
3
|
require "savon/soap_fault"
|
3
4
|
require "savon/http_error"
|
4
5
|
|
5
6
|
module Savon
|
6
7
|
class Response
|
8
|
+
CRLF = /\r\n/
|
9
|
+
WSP = /[#{%Q|\x9\x20|}]/
|
7
10
|
|
8
11
|
def initialize(http, globals, locals)
|
9
12
|
@http = http
|
10
13
|
@globals = globals
|
11
14
|
@locals = locals
|
15
|
+
@attachments = []
|
16
|
+
@xml = ''
|
17
|
+
@has_parsed_body = false
|
12
18
|
|
13
19
|
build_soap_and_http_errors!
|
14
20
|
raise_soap_and_http_errors! if @globals[:raise_errors]
|
@@ -48,12 +54,17 @@ module Savon
|
|
48
54
|
result.kind_of?(Array) ? result.compact : [result].compact
|
49
55
|
end
|
50
56
|
|
51
|
-
def
|
52
|
-
@
|
57
|
+
def full_hash
|
58
|
+
@full_hash ||= nori.parse(xml)
|
53
59
|
end
|
54
60
|
|
55
61
|
def xml
|
56
|
-
|
62
|
+
if multipart?
|
63
|
+
parse_body unless @has_parsed_body
|
64
|
+
@xml
|
65
|
+
else
|
66
|
+
@http.body
|
67
|
+
end
|
57
68
|
end
|
58
69
|
|
59
70
|
alias_method :to_xml, :xml
|
@@ -68,14 +79,50 @@ module Savon
|
|
68
79
|
end
|
69
80
|
|
70
81
|
def find(*path)
|
71
|
-
envelope = nori.find(
|
72
|
-
raise_invalid_response_error! unless envelope
|
82
|
+
envelope = nori.find(full_hash, 'Envelope')
|
83
|
+
raise_invalid_response_error! unless envelope.is_a?(Hash)
|
73
84
|
|
74
85
|
nori.find(envelope, *path)
|
75
86
|
end
|
76
87
|
|
88
|
+
def attachments
|
89
|
+
if multipart?
|
90
|
+
parse_body unless @has_parsed_body
|
91
|
+
@attachments
|
92
|
+
else
|
93
|
+
[]
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def multipart?
|
98
|
+
!(http.headers['content-type'] =~ /^multipart/im).nil?
|
99
|
+
end
|
100
|
+
|
77
101
|
private
|
78
102
|
|
103
|
+
def boundary
|
104
|
+
return unless multipart?
|
105
|
+
Mail::Field.new('content-type', http.headers['content-type']).parameters['boundary']
|
106
|
+
end
|
107
|
+
|
108
|
+
def parse_body
|
109
|
+
http.body.force_encoding Encoding::ASCII_8BIT
|
110
|
+
parts = http.body.split(/(?:\A|\r\n)--#{Regexp.escape(boundary)}(?=(?:--)?\s*$)/)
|
111
|
+
parts[1..-1].to_a.each_with_index do |part, index|
|
112
|
+
header_part, body_part = part.lstrip.split(/#{CRLF}#{CRLF}|#{CRLF}#{WSP}*#{CRLF}(?!#{WSP})/m, 2)
|
113
|
+
section = Mail::Part.new(
|
114
|
+
body: body_part
|
115
|
+
)
|
116
|
+
section.header = header_part
|
117
|
+
if index == 0
|
118
|
+
@xml = section.body.to_s
|
119
|
+
else
|
120
|
+
@attachments << section
|
121
|
+
end
|
122
|
+
end
|
123
|
+
@has_parsed_body = true
|
124
|
+
end
|
125
|
+
|
79
126
|
def build_soap_and_http_errors!
|
80
127
|
@soap_fault = SOAPFault.new(@http, nori, xml) if soap_fault?
|
81
128
|
@http_error = HTTPError.new(@http) if http_error?
|
data/lib/savon/soap_fault.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
3
2
|
module Savon
|
4
3
|
class SOAPFault < Error
|
5
4
|
|
6
5
|
def self.present?(http, xml = nil)
|
7
6
|
xml ||= http.body
|
8
7
|
fault_node = xml.include?("Fault>")
|
9
|
-
soap1_fault = xml.
|
8
|
+
soap1_fault = xml.match(/faultcode\/?\>/) && xml.match(/faultstring\/?\>/)
|
10
9
|
soap2_fault = xml.include?("Code>") && xml.include?("Reason>")
|
11
10
|
|
12
11
|
fault_node && (soap1_fault || soap2_fault)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Savon
|
4
|
+
module StringUtils
|
5
|
+
def self.snakecase(inputstring)
|
6
|
+
str = inputstring.dup
|
7
|
+
str.gsub! /::/, '/'
|
8
|
+
str.gsub! /([A-Z]+)([A-Z][a-z])/, '\1_\2'
|
9
|
+
str.gsub! /([a-z\d])([A-Z])/, '\1_\2'
|
10
|
+
str.tr! ".", "_"
|
11
|
+
str.tr! "-", "_"
|
12
|
+
str.downcase!
|
13
|
+
str
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
data/lib/savon/version.rb
CHANGED
data/lib/savon.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.14.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:
|
11
|
+
date: 2022-12-16 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:
|
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:
|
40
|
+
version: 2.4.5
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: wasabi
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,70 +100,104 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 1.
|
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.
|
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
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "<"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '4'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "<"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '4'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: puma
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
114
142
|
requirements:
|
115
143
|
- - ">="
|
116
144
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
145
|
+
version: 4.3.8
|
146
|
+
- - "<"
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: '7'
|
118
149
|
type: :development
|
119
150
|
prerelease: false
|
120
151
|
version_requirements: !ruby/object:Gem::Requirement
|
121
152
|
requirements:
|
122
153
|
- - ">="
|
123
154
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
155
|
+
version: 4.3.8
|
156
|
+
- - "<"
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '7'
|
125
159
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
160
|
+
name: byebug
|
127
161
|
requirement: !ruby/object:Gem::Requirement
|
128
162
|
requirements:
|
129
|
-
- -
|
163
|
+
- - ">="
|
130
164
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
165
|
+
version: '0'
|
132
166
|
type: :development
|
133
167
|
prerelease: false
|
134
168
|
version_requirements: !ruby/object:Gem::Requirement
|
135
169
|
requirements:
|
136
|
-
- -
|
170
|
+
- - ">="
|
137
171
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
172
|
+
version: '0'
|
139
173
|
- !ruby/object:Gem::Dependency
|
140
174
|
name: rake
|
141
175
|
requirement: !ruby/object:Gem::Requirement
|
142
176
|
requirements:
|
143
|
-
- - "
|
177
|
+
- - ">="
|
144
178
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
179
|
+
version: 12.3.3
|
146
180
|
type: :development
|
147
181
|
prerelease: false
|
148
182
|
version_requirements: !ruby/object:Gem::Requirement
|
149
183
|
requirements:
|
150
|
-
- - "
|
184
|
+
- - ">="
|
151
185
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
186
|
+
version: 12.3.3
|
153
187
|
- !ruby/object:Gem::Dependency
|
154
188
|
name: rspec
|
155
189
|
requirement: !ruby/object:Gem::Requirement
|
156
190
|
requirements:
|
157
191
|
- - "~>"
|
158
192
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
193
|
+
version: '3.9'
|
160
194
|
type: :development
|
161
195
|
prerelease: false
|
162
196
|
version_requirements: !ruby/object:Gem::Requirement
|
163
197
|
requirements:
|
164
198
|
- - "~>"
|
165
199
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
200
|
+
version: '3.9'
|
167
201
|
- !ruby/object:Gem::Dependency
|
168
202
|
name: mocha
|
169
203
|
requirement: !ruby/object:Gem::Requirement
|
@@ -182,37 +216,30 @@ dependencies:
|
|
182
216
|
name: json
|
183
217
|
requirement: !ruby/object:Gem::Requirement
|
184
218
|
requirements:
|
185
|
-
- - "
|
219
|
+
- - ">="
|
186
220
|
- !ruby/object:Gem::Version
|
187
|
-
version:
|
221
|
+
version: 2.3.0
|
188
222
|
type: :development
|
189
223
|
prerelease: false
|
190
224
|
version_requirements: !ruby/object:Gem::Requirement
|
191
225
|
requirements:
|
192
|
-
- - "
|
226
|
+
- - ">="
|
193
227
|
- !ruby/object:Gem::Version
|
194
|
-
version:
|
228
|
+
version: 2.3.0
|
195
229
|
description: Heavy metal SOAP client
|
196
230
|
email: me@rubiii.com
|
197
231
|
executables: []
|
198
232
|
extensions: []
|
199
233
|
extra_rdoc_files: []
|
200
234
|
files:
|
201
|
-
- ".gitignore"
|
202
|
-
- ".travis.yml"
|
203
|
-
- ".yardopts"
|
204
235
|
- CHANGELOG.md
|
205
|
-
- CONTRIBUTING.md
|
206
|
-
- Gemfile
|
207
236
|
- LICENSE
|
208
237
|
- README.md
|
209
238
|
- Rakefile
|
210
|
-
- donate.png
|
211
239
|
- lib/savon.rb
|
212
240
|
- lib/savon/block_interface.rb
|
213
241
|
- lib/savon/builder.rb
|
214
242
|
- lib/savon/client.rb
|
215
|
-
- lib/savon/core_ext/string.rb
|
216
243
|
- lib/savon/header.rb
|
217
244
|
- lib/savon/http_error.rb
|
218
245
|
- lib/savon/log_message.rb
|
@@ -228,69 +255,8 @@ files:
|
|
228
255
|
- lib/savon/request_logger.rb
|
229
256
|
- lib/savon/response.rb
|
230
257
|
- lib/savon/soap_fault.rb
|
258
|
+
- lib/savon/string_utils.rb
|
231
259
|
- lib/savon/version.rb
|
232
|
-
- savon.gemspec
|
233
|
-
- spec/fixtures/gzip/message.gz
|
234
|
-
- spec/fixtures/response/another_soap_fault.xml
|
235
|
-
- spec/fixtures/response/authentication.xml
|
236
|
-
- spec/fixtures/response/f5.xml
|
237
|
-
- spec/fixtures/response/header.xml
|
238
|
-
- spec/fixtures/response/list.xml
|
239
|
-
- spec/fixtures/response/multi_ref.xml
|
240
|
-
- spec/fixtures/response/soap_fault.xml
|
241
|
-
- spec/fixtures/response/soap_fault12.xml
|
242
|
-
- spec/fixtures/response/soap_fault_funky.xml
|
243
|
-
- spec/fixtures/response/taxcloud.xml
|
244
|
-
- spec/fixtures/ssl/client_cert.pem
|
245
|
-
- spec/fixtures/ssl/client_encrypted_key.pem
|
246
|
-
- spec/fixtures/ssl/client_encrypted_key_cert.pem
|
247
|
-
- spec/fixtures/ssl/client_key.pem
|
248
|
-
- spec/fixtures/wsdl/authentication.xml
|
249
|
-
- spec/fixtures/wsdl/betfair.xml
|
250
|
-
- spec/fixtures/wsdl/brand.xml
|
251
|
-
- spec/fixtures/wsdl/edialog.xml
|
252
|
-
- spec/fixtures/wsdl/interhome.xml
|
253
|
-
- spec/fixtures/wsdl/lower_camel.xml
|
254
|
-
- spec/fixtures/wsdl/multiple_namespaces.xml
|
255
|
-
- spec/fixtures/wsdl/multiple_types.xml
|
256
|
-
- spec/fixtures/wsdl/no_message_tag.xml
|
257
|
-
- spec/fixtures/wsdl/taxcloud.xml
|
258
|
-
- spec/fixtures/wsdl/team_software.xml
|
259
|
-
- spec/fixtures/wsdl/vies.xml
|
260
|
-
- 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
|
-
- spec/integration/support/application.rb
|
267
|
-
- spec/integration/support/server.rb
|
268
|
-
- spec/integration/temperature_example_spec.rb
|
269
|
-
- spec/integration/zipcode_example_spec.rb
|
270
|
-
- spec/savon/builder_spec.rb
|
271
|
-
- spec/savon/client_spec.rb
|
272
|
-
- spec/savon/core_ext/string_spec.rb
|
273
|
-
- spec/savon/features/message_tag_spec.rb
|
274
|
-
- spec/savon/http_error_spec.rb
|
275
|
-
- spec/savon/log_message_spec.rb
|
276
|
-
- spec/savon/message_spec.rb
|
277
|
-
- spec/savon/mock_spec.rb
|
278
|
-
- spec/savon/model_spec.rb
|
279
|
-
- spec/savon/observers_spec.rb
|
280
|
-
- spec/savon/operation_spec.rb
|
281
|
-
- spec/savon/options_spec.rb
|
282
|
-
- spec/savon/qualified_message_spec.rb
|
283
|
-
- spec/savon/request_logger_spec.rb
|
284
|
-
- spec/savon/request_spec.rb
|
285
|
-
- spec/savon/response_spec.rb
|
286
|
-
- spec/savon/soap_fault_spec.rb
|
287
|
-
- spec/savon/softlayer_spec.rb
|
288
|
-
- spec/spec_helper.rb
|
289
|
-
- spec/support/adapters.rb
|
290
|
-
- spec/support/endpoint.rb
|
291
|
-
- spec/support/fixture.rb
|
292
|
-
- spec/support/integration.rb
|
293
|
-
- spec/support/stdout.rb
|
294
260
|
homepage: http://savonrb.com
|
295
261
|
licenses:
|
296
262
|
- MIT
|
@@ -303,15 +269,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
303
269
|
requirements:
|
304
270
|
- - ">="
|
305
271
|
- !ruby/object:Gem::Version
|
306
|
-
version:
|
272
|
+
version: 2.7.0
|
307
273
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
308
274
|
requirements:
|
309
275
|
- - ">="
|
310
276
|
- !ruby/object:Gem::Version
|
311
277
|
version: '0'
|
312
278
|
requirements: []
|
313
|
-
|
314
|
-
rubygems_version: 2.6.12
|
279
|
+
rubygems_version: 3.3.26
|
315
280
|
signing_key:
|
316
281
|
specification_version: 4
|
317
282
|
summary: Heavy metal SOAP client
|
data/.gitignore
DELETED
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/.yardopts
DELETED
data/CONTRIBUTING.md
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
# Contribution Guide
|
2
|
-
|
3
|
-
This page describes how to contribute changes to Savon.
|
4
|
-
|
5
|
-
Please do not create a pull request without reading this guide first.
|
6
|
-
Make sure to read the documentation for your version at [savonrb.com](http://savonrb.com/)
|
7
|
-
and post questions to the [mailing list](https://groups.google.com/forum/#!forum/savonrb).
|
8
|
-
|
9
|
-
**Bug fixes**
|
10
|
-
|
11
|
-
If you really think you found a bug, please make sure to add as many information as possible
|
12
|
-
to the ticket. You're a developer, we are developers and you know we need tests to reproduce
|
13
|
-
problems and make sure they don't come back.
|
14
|
-
|
15
|
-
So if you can reproduce your problem in a spec, that would be awesome! If you can't, please
|
16
|
-
let us know how we could make this easier for you. Also, provide code and the WSDL of the
|
17
|
-
service you're working with so others can try to come up with a spec for your problem.
|
18
|
-
|
19
|
-
After we have a failing spec, it obviously needs to be fixed. Make sure your new spec is the
|
20
|
-
only failing one under the `spec` directory. Travis only runs the "unit tests" at `spec/savon`,
|
21
|
-
but Savon actually has with some additional "integration/example specs" at `spec/integration`,
|
22
|
-
which you need to run locally to make sure the integration with real world services still works.
|
23
|
-
|
24
|
-
Notice that these specs are not run by Travis, because the service's are not guaranteed to work
|
25
|
-
all the time and the specs will timeout after a few seconds when the service is currently down.
|
26
|
-
|
27
|
-
Please follow this basic workflow for pull requests:
|
28
|
-
|
29
|
-
* [Fork the project](https://help.github.com/articles/fork-a-repo)
|
30
|
-
* Create a feature branch and make your bug fix
|
31
|
-
* Add tests for it!
|
32
|
-
* Update the [Changelog](https://github.com/savonrb/savon/blob/master/CHANGELOG.md)
|
33
|
-
* [Send a pull request](https://help.github.com/articles/using-pull-requests)
|
34
|
-
* [Check that your pull request passes the build](https://travis-ci.org/savonrb/savon/pull_requests)
|
35
|
-
|
36
|
-
|
37
|
-
**Improvements and feature requests**
|
38
|
-
|
39
|
-
If you have an idea for an improvement or a new feature, please feel free to
|
40
|
-
[create a new issue](https://github.com/savonrb/savon/issues/new) and describe your idea
|
41
|
-
so that other people can give their insights and opinions. This is also important to avoid
|
42
|
-
duplicate work.
|
43
|
-
|
44
|
-
Pull requests and issues on GitHub are meant to be used to discuss problems and ideas,
|
45
|
-
so please make sure to participate and follow up on questions. In case noone comments
|
46
|
-
on your ticket, please keep updating the ticket with additional information.
|
data/Gemfile
DELETED
data/donate.png
DELETED
Binary file
|
@@ -1,29 +0,0 @@
|
|
1
|
-
|
2
|
-
module Savon
|
3
|
-
module CoreExt
|
4
|
-
module String
|
5
|
-
|
6
|
-
def self.included(base)
|
7
|
-
unless "savon".respond_to?(:snakecase)
|
8
|
-
base.send(:include, Extension)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
module Extension
|
13
|
-
def snakecase
|
14
|
-
str = dup
|
15
|
-
str.gsub! /::/, '/'
|
16
|
-
str.gsub! /([A-Z]+)([A-Z][a-z])/, '\1_\2'
|
17
|
-
str.gsub! /([a-z\d])([A-Z])/, '\1_\2'
|
18
|
-
str.tr! ".", "_"
|
19
|
-
str.tr! "-", "_"
|
20
|
-
str.downcase!
|
21
|
-
str
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
String.send :include, Savon::CoreExt::String
|
data/savon.gemspec
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
lib = File.expand_path("../lib", __FILE__)
|
3
|
-
$:.unshift lib unless $:.include? lib
|
4
|
-
|
5
|
-
require "savon/version"
|
6
|
-
|
7
|
-
Gem::Specification.new do |s|
|
8
|
-
s.name = "savon"
|
9
|
-
s.version = Savon::VERSION
|
10
|
-
s.authors = "Daniel Harrington"
|
11
|
-
s.email = "me@rubiii.com"
|
12
|
-
s.homepage = "http://savonrb.com"
|
13
|
-
s.summary = "Heavy metal SOAP client"
|
14
|
-
s.description = s.summary
|
15
|
-
s.required_ruby_version = '>= 1.9.2'
|
16
|
-
|
17
|
-
s.rubyforge_project = s.name
|
18
|
-
s.license = 'MIT'
|
19
|
-
|
20
|
-
s.add_dependency "nori", "~> 2.4"
|
21
|
-
s.add_dependency "httpi", "~> 2.3"
|
22
|
-
s.add_dependency "wasabi", "~> 3.4"
|
23
|
-
s.add_dependency "akami", "~> 1.2"
|
24
|
-
s.add_dependency "gyoku", "~> 1.2"
|
25
|
-
s.add_dependency "builder", ">= 2.1.2"
|
26
|
-
s.add_dependency "nokogiri", ">= 1.4.0"
|
27
|
-
|
28
|
-
s.add_development_dependency "rack"
|
29
|
-
s.add_development_dependency "puma", "2.0.0.b4"
|
30
|
-
|
31
|
-
s.add_development_dependency "rake", "~> 10.1"
|
32
|
-
s.add_development_dependency "rspec", "~> 2.14"
|
33
|
-
s.add_development_dependency "mocha", "~> 0.14"
|
34
|
-
s.add_development_dependency "json", "~> 1.7"
|
35
|
-
|
36
|
-
ignores = File.readlines(".gitignore").grep(/\S+/).map(&:chomp)
|
37
|
-
dotfiles = %w[.gitignore .travis.yml .yardopts]
|
38
|
-
|
39
|
-
all_files_without_ignores = Dir["**/*"].reject { |f|
|
40
|
-
File.directory?(f) || ignores.any? { |i| File.fnmatch(i, f) }
|
41
|
-
}
|
42
|
-
|
43
|
-
s.files = (all_files_without_ignores + dotfiles).sort
|
44
|
-
|
45
|
-
s.require_path = "lib"
|
46
|
-
end
|
Binary file
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
2
|
-
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
|
3
|
-
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
|
4
|
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
5
|
-
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
6
|
-
<SOAP-ENV:Body>
|
7
|
-
<SOAP-ENV:Fault>
|
8
|
-
<faultcode>ERR_NO_SESSION</faultcode>
|
9
|
-
<faultfactor>doGetItemsInfo - Wrong session</faultfactor>
|
10
|
-
<faultstring>Wrong session message</faultstring>
|
11
|
-
<detail><soapVal><ERRNO xsi:type="xsd:string">80:1289245853:55</ERRNO></soapVal></detail>
|
12
|
-
</SOAP-ENV:Fault>
|
13
|
-
</SOAP-ENV:Body>
|
14
|
-
</SOAP-ENV:Envelope>
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
2
|
-
<soap:Body>
|
3
|
-
<ns2:authenticateResponse xmlns:ns2="http://v1_0.ws.user.example.com">
|
4
|
-
<return>
|
5
|
-
<authenticationValue>
|
6
|
-
<token>a68d1d6379b62ff339a0e0c69ed4d9cf</token>
|
7
|
-
<tokenHash>AAAJxA;cIedoT;mY10ExZwG6JuKgp2OYKxow==</tokenHash>
|
8
|
-
<client>radclient</client>
|
9
|
-
</authenticationValue>
|
10
|
-
<success>true</success>
|
11
|
-
</return>
|
12
|
-
</ns2:authenticateResponse>
|
13
|
-
</soap:Body>
|
14
|
-
</soap:Envelope>
|