savon 2.12.0 → 2.15.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +115 -77
- 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 +4 -3
- 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 +2 -1
- data/lib/savon/string_utils.rb +17 -0
- data/lib/savon/version.rb +2 -1
- data/lib/savon.rb +2 -0
- metadata +78 -101
- data/.gitignore +0 -14
- data/.travis.yml +0 -18
- 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/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/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 -1104
- 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 -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(
|
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
@@ -1,10 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module Savon
|
2
3
|
class SOAPFault < Error
|
3
4
|
|
4
5
|
def self.present?(http, xml = nil)
|
5
6
|
xml ||= http.body
|
6
7
|
fault_node = xml.include?("Fault>")
|
7
|
-
soap1_fault = xml.
|
8
|
+
soap1_fault = xml.match(/faultcode\/?\>/) && xml.match(/faultstring\/?\>/)
|
8
9
|
soap2_fault = xml.include?("Code>") && xml.include?("Reason>")
|
9
10
|
|
10
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.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,74 +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/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/no_body.xml
|
241
|
-
- spec/fixtures/response/soap_fault.xml
|
242
|
-
- spec/fixtures/response/soap_fault12.xml
|
243
|
-
- spec/fixtures/response/soap_fault_funky.xml
|
244
|
-
- spec/fixtures/response/taxcloud.xml
|
245
|
-
- spec/fixtures/ssl/client_cert.pem
|
246
|
-
- spec/fixtures/ssl/client_encrypted_key.pem
|
247
|
-
- spec/fixtures/ssl/client_encrypted_key_cert.pem
|
248
|
-
- spec/fixtures/ssl/client_key.pem
|
249
|
-
- spec/fixtures/wsdl/authentication.xml
|
250
|
-
- spec/fixtures/wsdl/betfair.xml
|
251
|
-
- spec/fixtures/wsdl/brand.xml
|
252
|
-
- spec/fixtures/wsdl/edialog.xml
|
253
|
-
- spec/fixtures/wsdl/interhome.xml
|
254
|
-
- spec/fixtures/wsdl/lower_camel.xml
|
255
|
-
- spec/fixtures/wsdl/multiple_namespaces.xml
|
256
|
-
- spec/fixtures/wsdl/multiple_types.xml
|
257
|
-
- spec/fixtures/wsdl/no_message_tag.xml
|
258
|
-
- spec/fixtures/wsdl/taxcloud.xml
|
259
|
-
- spec/fixtures/wsdl/team_software.xml
|
260
|
-
- spec/fixtures/wsdl/vies.xml
|
261
|
-
- spec/fixtures/wsdl/wasmuth.xml
|
262
|
-
- spec/integration/centra_spec.rb
|
263
|
-
- spec/integration/email_example_spec.rb
|
264
|
-
- spec/integration/random_quote_spec.rb
|
265
|
-
- spec/integration/ratp_example_spec.rb
|
266
|
-
- spec/integration/stockquote_example_spec.rb
|
267
|
-
- spec/integration/support/application.rb
|
268
|
-
- spec/integration/support/server.rb
|
269
|
-
- spec/integration/temperature_example_spec.rb
|
270
|
-
- spec/integration/zipcode_example_spec.rb
|
271
|
-
- spec/savon/builder_spec.rb
|
272
|
-
- spec/savon/client_spec.rb
|
273
|
-
- spec/savon/core_ext/string_spec.rb
|
274
|
-
- spec/savon/features/message_tag_spec.rb
|
275
|
-
- spec/savon/http_error_spec.rb
|
276
|
-
- spec/savon/log_message_spec.rb
|
277
|
-
- spec/savon/message_spec.rb
|
278
|
-
- spec/savon/mock_spec.rb
|
279
|
-
- spec/savon/model_spec.rb
|
280
|
-
- spec/savon/observers_spec.rb
|
281
|
-
- spec/savon/operation_spec.rb
|
282
|
-
- spec/savon/options_spec.rb
|
283
|
-
- spec/savon/qualified_message_spec.rb
|
284
|
-
- spec/savon/request_logger_spec.rb
|
285
|
-
- spec/savon/request_spec.rb
|
286
|
-
- spec/savon/response_spec.rb
|
287
|
-
- spec/savon/soap_fault_spec.rb
|
288
|
-
- spec/savon/softlayer_spec.rb
|
289
|
-
- spec/spec_helper.rb
|
290
|
-
- spec/support/adapters.rb
|
291
|
-
- spec/support/endpoint.rb
|
292
|
-
- spec/support/fixture.rb
|
293
|
-
- spec/support/integration.rb
|
294
|
-
- spec/support/stdout.rb
|
295
272
|
homepage: http://savonrb.com
|
296
273
|
licenses:
|
297
274
|
- MIT
|
298
|
-
metadata:
|
275
|
+
metadata:
|
276
|
+
rubygems_mfa_required: 'true'
|
299
277
|
post_install_message:
|
300
278
|
rdoc_options: []
|
301
279
|
require_paths:
|
@@ -304,15 +282,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
304
282
|
requirements:
|
305
283
|
- - ">="
|
306
284
|
- !ruby/object:Gem::Version
|
307
|
-
version:
|
285
|
+
version: 3.0.0
|
308
286
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
309
287
|
requirements:
|
310
288
|
- - ">="
|
311
289
|
- !ruby/object:Gem::Version
|
312
290
|
version: '0'
|
313
291
|
requirements: []
|
314
|
-
|
315
|
-
rubygems_version: 2.6.13
|
292
|
+
rubygems_version: 3.5.6
|
316
293
|
signing_key:
|
317
294
|
specification_version: 4
|
318
295
|
summary: Heavy metal SOAP client
|
data/.gitignore
DELETED
data/.travis.yml
DELETED
@@ -1,18 +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.2.4
|
9
|
-
- 2.3.0
|
10
|
-
- 2.4.1
|
11
|
-
- jruby-9.1.15.0
|
12
|
-
- rbx-2
|
13
|
-
matrix:
|
14
|
-
allow_failures:
|
15
|
-
- rvm: rbx-2
|
16
|
-
fast_finish: true
|
17
|
-
notifications:
|
18
|
-
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>
|