savon 2.11.2 → 2.14.0
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|