savon 2.12.1 → 2.15.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 +4 -4
- data/CHANGELOG.md +108 -74
- data/README.md +23 -21
- 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 +57 -1
- data/lib/savon/qualified_message.rb +3 -2
- data/lib/savon/request.rb +5 -0
- data/lib/savon/request_logger.rb +8 -2
- data/lib/savon/response.rb +51 -4
- data/lib/savon/soap_fault.rb +1 -0
- data/lib/savon/string_utils.rb +17 -0
- data/lib/savon/version.rb +2 -1
- data/lib/savon.rb +2 -0
- metadata +78 -102
- data/.gitignore +0 -14
- data/.travis.yml +0 -26
- 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/empty_soap_fault.xml +0 -13
- 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/no_body.xml +0 -1
- 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/elements_in_types.xml +0 -43
- 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 -67
- 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 -1115
- data/spec/savon/qualified_message_spec.rb +0 -101
- data/spec/savon/request_logger_spec.rb +0 -37
- data/spec/savon/request_spec.rb +0 -540
- data/spec/savon/response_spec.rb +0 -275
- data/spec/savon/soap_fault_spec.rb +0 -146
- 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(
|
82
|
+
envelope = nori.find(full_hash, 'Envelope')
|
72
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
@@ -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.15.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: 2024-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nori
|
@@ -28,30 +28,42 @@ 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: '4'
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '5'
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
38
|
-
- - "
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '4'
|
44
|
+
- - "<"
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
46
|
+
version: '5'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: wasabi
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
|
-
- - "
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '3.7'
|
54
|
+
- - "<"
|
46
55
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
56
|
+
version: '6'
|
48
57
|
type: :runtime
|
49
58
|
prerelease: false
|
50
59
|
version_requirements: !ruby/object:Gem::Requirement
|
51
60
|
requirements:
|
52
|
-
- - "
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '3.7'
|
64
|
+
- - "<"
|
53
65
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
66
|
+
version: '6'
|
55
67
|
- !ruby/object:Gem::Dependency
|
56
68
|
name: akami
|
57
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,62 +120,96 @@ dependencies:
|
|
108
120
|
- - ">="
|
109
121
|
- !ruby/object:Gem::Version
|
110
122
|
version: 1.8.1
|
123
|
+
- !ruby/object:Gem::Dependency
|
124
|
+
name: mail
|
125
|
+
requirement: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - "~>"
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '2.5'
|
130
|
+
type: :runtime
|
131
|
+
prerelease: false
|
132
|
+
version_requirements: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - "~>"
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '2.5'
|
111
137
|
- !ruby/object:Gem::Dependency
|
112
138
|
name: rack
|
139
|
+
requirement: !ruby/object:Gem::Requirement
|
140
|
+
requirements:
|
141
|
+
- - "<"
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: '4'
|
144
|
+
type: :development
|
145
|
+
prerelease: false
|
146
|
+
version_requirements: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - "<"
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '4'
|
151
|
+
- !ruby/object:Gem::Dependency
|
152
|
+
name: puma
|
113
153
|
requirement: !ruby/object:Gem::Requirement
|
114
154
|
requirements:
|
115
155
|
- - ">="
|
116
156
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
157
|
+
version: 4.3.8
|
158
|
+
- - "<"
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '7'
|
118
161
|
type: :development
|
119
162
|
prerelease: false
|
120
163
|
version_requirements: !ruby/object:Gem::Requirement
|
121
164
|
requirements:
|
122
165
|
- - ">="
|
123
166
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
167
|
+
version: 4.3.8
|
168
|
+
- - "<"
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
version: '7'
|
125
171
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
172
|
+
name: byebug
|
127
173
|
requirement: !ruby/object:Gem::Requirement
|
128
174
|
requirements:
|
129
|
-
- - "
|
175
|
+
- - ">="
|
130
176
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
177
|
+
version: '0'
|
132
178
|
type: :development
|
133
179
|
prerelease: false
|
134
180
|
version_requirements: !ruby/object:Gem::Requirement
|
135
181
|
requirements:
|
136
|
-
- - "
|
182
|
+
- - ">="
|
137
183
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
184
|
+
version: '0'
|
139
185
|
- !ruby/object:Gem::Dependency
|
140
186
|
name: rake
|
141
187
|
requirement: !ruby/object:Gem::Requirement
|
142
188
|
requirements:
|
143
|
-
- - "
|
189
|
+
- - ">="
|
144
190
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
191
|
+
version: 12.3.3
|
146
192
|
type: :development
|
147
193
|
prerelease: false
|
148
194
|
version_requirements: !ruby/object:Gem::Requirement
|
149
195
|
requirements:
|
150
|
-
- - "
|
196
|
+
- - ">="
|
151
197
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
198
|
+
version: 12.3.3
|
153
199
|
- !ruby/object:Gem::Dependency
|
154
200
|
name: rspec
|
155
201
|
requirement: !ruby/object:Gem::Requirement
|
156
202
|
requirements:
|
157
203
|
- - "~>"
|
158
204
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
205
|
+
version: '3.9'
|
160
206
|
type: :development
|
161
207
|
prerelease: false
|
162
208
|
version_requirements: !ruby/object:Gem::Requirement
|
163
209
|
requirements:
|
164
210
|
- - "~>"
|
165
211
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
212
|
+
version: '3.9'
|
167
213
|
- !ruby/object:Gem::Dependency
|
168
214
|
name: mocha
|
169
215
|
requirement: !ruby/object:Gem::Requirement
|
@@ -182,37 +228,30 @@ dependencies:
|
|
182
228
|
name: json
|
183
229
|
requirement: !ruby/object:Gem::Requirement
|
184
230
|
requirements:
|
185
|
-
- - "
|
231
|
+
- - ">="
|
186
232
|
- !ruby/object:Gem::Version
|
187
|
-
version:
|
233
|
+
version: 2.3.0
|
188
234
|
type: :development
|
189
235
|
prerelease: false
|
190
236
|
version_requirements: !ruby/object:Gem::Requirement
|
191
237
|
requirements:
|
192
|
-
- - "
|
238
|
+
- - ">="
|
193
239
|
- !ruby/object:Gem::Version
|
194
|
-
version:
|
240
|
+
version: 2.3.0
|
195
241
|
description: Heavy metal SOAP client
|
196
242
|
email: me@rubiii.com
|
197
243
|
executables: []
|
198
244
|
extensions: []
|
199
245
|
extra_rdoc_files: []
|
200
246
|
files:
|
201
|
-
- ".gitignore"
|
202
|
-
- ".travis.yml"
|
203
|
-
- ".yardopts"
|
204
247
|
- CHANGELOG.md
|
205
|
-
- CONTRIBUTING.md
|
206
|
-
- Gemfile
|
207
248
|
- LICENSE
|
208
249
|
- README.md
|
209
250
|
- Rakefile
|
210
|
-
- donate.png
|
211
251
|
- lib/savon.rb
|
212
252
|
- lib/savon/block_interface.rb
|
213
253
|
- lib/savon/builder.rb
|
214
254
|
- lib/savon/client.rb
|
215
|
-
- lib/savon/core_ext/string.rb
|
216
255
|
- lib/savon/header.rb
|
217
256
|
- lib/savon/http_error.rb
|
218
257
|
- lib/savon/log_message.rb
|
@@ -228,76 +267,13 @@ files:
|
|
228
267
|
- lib/savon/request_logger.rb
|
229
268
|
- lib/savon/response.rb
|
230
269
|
- lib/savon/soap_fault.rb
|
270
|
+
- lib/savon/string_utils.rb
|
231
271
|
- 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/empty_soap_fault.xml
|
237
|
-
- spec/fixtures/response/f5.xml
|
238
|
-
- spec/fixtures/response/header.xml
|
239
|
-
- spec/fixtures/response/list.xml
|
240
|
-
- spec/fixtures/response/multi_ref.xml
|
241
|
-
- spec/fixtures/response/no_body.xml
|
242
|
-
- spec/fixtures/response/soap_fault.xml
|
243
|
-
- spec/fixtures/response/soap_fault12.xml
|
244
|
-
- spec/fixtures/response/soap_fault_funky.xml
|
245
|
-
- spec/fixtures/response/taxcloud.xml
|
246
|
-
- spec/fixtures/ssl/client_cert.pem
|
247
|
-
- spec/fixtures/ssl/client_encrypted_key.pem
|
248
|
-
- spec/fixtures/ssl/client_encrypted_key_cert.pem
|
249
|
-
- spec/fixtures/ssl/client_key.pem
|
250
|
-
- spec/fixtures/wsdl/authentication.xml
|
251
|
-
- spec/fixtures/wsdl/betfair.xml
|
252
|
-
- spec/fixtures/wsdl/brand.xml
|
253
|
-
- spec/fixtures/wsdl/edialog.xml
|
254
|
-
- spec/fixtures/wsdl/elements_in_types.xml
|
255
|
-
- spec/fixtures/wsdl/interhome.xml
|
256
|
-
- spec/fixtures/wsdl/lower_camel.xml
|
257
|
-
- spec/fixtures/wsdl/multiple_namespaces.xml
|
258
|
-
- spec/fixtures/wsdl/multiple_types.xml
|
259
|
-
- spec/fixtures/wsdl/no_message_tag.xml
|
260
|
-
- spec/fixtures/wsdl/taxcloud.xml
|
261
|
-
- spec/fixtures/wsdl/team_software.xml
|
262
|
-
- spec/fixtures/wsdl/vies.xml
|
263
|
-
- spec/fixtures/wsdl/wasmuth.xml
|
264
|
-
- spec/integration/centra_spec.rb
|
265
|
-
- spec/integration/email_example_spec.rb
|
266
|
-
- spec/integration/random_quote_spec.rb
|
267
|
-
- spec/integration/ratp_example_spec.rb
|
268
|
-
- spec/integration/stockquote_example_spec.rb
|
269
|
-
- spec/integration/support/application.rb
|
270
|
-
- spec/integration/support/server.rb
|
271
|
-
- spec/integration/temperature_example_spec.rb
|
272
|
-
- spec/integration/zipcode_example_spec.rb
|
273
|
-
- spec/savon/builder_spec.rb
|
274
|
-
- spec/savon/client_spec.rb
|
275
|
-
- spec/savon/core_ext/string_spec.rb
|
276
|
-
- spec/savon/features/message_tag_spec.rb
|
277
|
-
- spec/savon/http_error_spec.rb
|
278
|
-
- spec/savon/log_message_spec.rb
|
279
|
-
- spec/savon/message_spec.rb
|
280
|
-
- spec/savon/mock_spec.rb
|
281
|
-
- spec/savon/model_spec.rb
|
282
|
-
- spec/savon/observers_spec.rb
|
283
|
-
- spec/savon/operation_spec.rb
|
284
|
-
- spec/savon/options_spec.rb
|
285
|
-
- spec/savon/qualified_message_spec.rb
|
286
|
-
- spec/savon/request_logger_spec.rb
|
287
|
-
- spec/savon/request_spec.rb
|
288
|
-
- spec/savon/response_spec.rb
|
289
|
-
- spec/savon/soap_fault_spec.rb
|
290
|
-
- spec/savon/softlayer_spec.rb
|
291
|
-
- spec/spec_helper.rb
|
292
|
-
- spec/support/adapters.rb
|
293
|
-
- spec/support/endpoint.rb
|
294
|
-
- spec/support/fixture.rb
|
295
|
-
- spec/support/integration.rb
|
296
|
-
- spec/support/stdout.rb
|
297
272
|
homepage: http://savonrb.com
|
298
273
|
licenses:
|
299
274
|
- MIT
|
300
|
-
metadata:
|
275
|
+
metadata:
|
276
|
+
rubygems_mfa_required: 'true'
|
301
277
|
post_install_message:
|
302
278
|
rdoc_options: []
|
303
279
|
require_paths:
|
@@ -306,14 +282,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
306
282
|
requirements:
|
307
283
|
- - ">="
|
308
284
|
- !ruby/object:Gem::Version
|
309
|
-
version:
|
285
|
+
version: 3.0.0
|
310
286
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
311
287
|
requirements:
|
312
288
|
- - ">="
|
313
289
|
- !ruby/object:Gem::Version
|
314
290
|
version: '0'
|
315
291
|
requirements: []
|
316
|
-
rubygems_version: 3.
|
292
|
+
rubygems_version: 3.5.6
|
317
293
|
signing_key:
|
318
294
|
specification_version: 4
|
319
295
|
summary: Heavy metal SOAP client
|
data/.gitignore
DELETED
data/.travis.yml
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# https://github.com/travis-ci/travis-ci/wiki/.travis.yml-options
|
2
|
-
language: "ruby"
|
3
|
-
|
4
|
-
script: "bundle exec rake --trace"
|
5
|
-
|
6
|
-
rvm:
|
7
|
-
- "2.5"
|
8
|
-
- "2.6"
|
9
|
-
- "2.7"
|
10
|
-
|
11
|
-
matrix:
|
12
|
-
include:
|
13
|
-
- name: "JRuby 9.2"
|
14
|
-
rvm: jruby-9.2.12.0
|
15
|
-
jdk: openjdk11
|
16
|
-
env: JAVA_OPTS="--add-opens java.base/java.security.cert=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED"
|
17
|
-
- name: Rubinius
|
18
|
-
rvm: rbx-4
|
19
|
-
dist: trusty
|
20
|
-
allow_failures:
|
21
|
-
- name: Rubinius
|
22
|
-
- name: "JRuby 9.2"
|
23
|
-
fast_finish: true
|
24
|
-
|
25
|
-
notifications:
|
26
|
-
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.8.1"
|
27
|
-
|
28
|
-
s.add_development_dependency "rack"
|
29
|
-
s.add_development_dependency "puma", "~> 3.0"
|
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>
|