savon 2.11.2 → 2.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +112 -73
  3. data/README.md +25 -16
  4. data/lib/savon/block_interface.rb +1 -0
  5. data/lib/savon/builder.rb +100 -30
  6. data/lib/savon/client.rb +1 -0
  7. data/lib/savon/header.rb +2 -6
  8. data/lib/savon/http_error.rb +4 -4
  9. data/lib/savon/log_message.rb +1 -0
  10. data/lib/savon/message.rb +1 -0
  11. data/lib/savon/mock/expectation.rb +1 -0
  12. data/lib/savon/mock/spec_helper.rb +1 -0
  13. data/lib/savon/mock.rb +1 -0
  14. data/lib/savon/model.rb +4 -3
  15. data/lib/savon/operation.rb +20 -18
  16. data/lib/savon/options.rb +71 -2
  17. data/lib/savon/qualified_message.rb +5 -4
  18. data/lib/savon/request.rb +18 -3
  19. data/lib/savon/request_logger.rb +8 -2
  20. data/lib/savon/response.rb +52 -5
  21. data/lib/savon/soap_fault.rb +2 -3
  22. data/lib/savon/string_utils.rb +17 -0
  23. data/lib/savon/version.rb +2 -1
  24. data/lib/savon.rb +2 -0
  25. metadata +62 -97
  26. data/.gitignore +0 -14
  27. data/.travis.yml +0 -19
  28. data/.yardopts +0 -6
  29. data/CONTRIBUTING.md +0 -46
  30. data/Gemfile +0 -13
  31. data/donate.png +0 -0
  32. data/lib/savon/core_ext/string.rb +0 -29
  33. data/savon.gemspec +0 -46
  34. data/spec/fixtures/gzip/message.gz +0 -0
  35. data/spec/fixtures/response/another_soap_fault.xml +0 -14
  36. data/spec/fixtures/response/authentication.xml +0 -14
  37. data/spec/fixtures/response/f5.xml +0 -39
  38. data/spec/fixtures/response/header.xml +0 -13
  39. data/spec/fixtures/response/list.xml +0 -18
  40. data/spec/fixtures/response/multi_ref.xml +0 -39
  41. data/spec/fixtures/response/soap_fault.xml +0 -8
  42. data/spec/fixtures/response/soap_fault12.xml +0 -18
  43. data/spec/fixtures/response/soap_fault_funky.xml +0 -8
  44. data/spec/fixtures/response/taxcloud.xml +0 -1
  45. data/spec/fixtures/ssl/client_cert.pem +0 -16
  46. data/spec/fixtures/ssl/client_encrypted_key.pem +0 -30
  47. data/spec/fixtures/ssl/client_encrypted_key_cert.pem +0 -24
  48. data/spec/fixtures/ssl/client_key.pem +0 -15
  49. data/spec/fixtures/wsdl/authentication.xml +0 -63
  50. data/spec/fixtures/wsdl/betfair.xml +0 -2981
  51. data/spec/fixtures/wsdl/brand.xml +0 -624
  52. data/spec/fixtures/wsdl/edialog.xml +0 -15416
  53. data/spec/fixtures/wsdl/interhome.xml +0 -2137
  54. data/spec/fixtures/wsdl/lower_camel.xml +0 -52
  55. data/spec/fixtures/wsdl/multiple_namespaces.xml +0 -92
  56. data/spec/fixtures/wsdl/multiple_types.xml +0 -60
  57. data/spec/fixtures/wsdl/no_message_tag.xml +0 -1267
  58. data/spec/fixtures/wsdl/taxcloud.xml +0 -934
  59. data/spec/fixtures/wsdl/team_software.xml +0 -1
  60. data/spec/fixtures/wsdl/vies.xml +0 -176
  61. data/spec/fixtures/wsdl/wasmuth.xml +0 -153
  62. data/spec/integration/centra_spec.rb +0 -66
  63. data/spec/integration/email_example_spec.rb +0 -32
  64. data/spec/integration/random_quote_spec.rb +0 -23
  65. data/spec/integration/ratp_example_spec.rb +0 -28
  66. data/spec/integration/stockquote_example_spec.rb +0 -34
  67. data/spec/integration/support/application.rb +0 -82
  68. data/spec/integration/support/server.rb +0 -84
  69. data/spec/integration/temperature_example_spec.rb +0 -46
  70. data/spec/integration/zipcode_example_spec.rb +0 -42
  71. data/spec/savon/builder_spec.rb +0 -137
  72. data/spec/savon/client_spec.rb +0 -271
  73. data/spec/savon/core_ext/string_spec.rb +0 -37
  74. data/spec/savon/features/message_tag_spec.rb +0 -61
  75. data/spec/savon/http_error_spec.rb +0 -49
  76. data/spec/savon/log_message_spec.rb +0 -50
  77. data/spec/savon/message_spec.rb +0 -70
  78. data/spec/savon/mock_spec.rb +0 -174
  79. data/spec/savon/model_spec.rb +0 -182
  80. data/spec/savon/observers_spec.rb +0 -92
  81. data/spec/savon/operation_spec.rb +0 -230
  82. data/spec/savon/options_spec.rb +0 -1075
  83. data/spec/savon/qualified_message_spec.rb +0 -68
  84. data/spec/savon/request_logger_spec.rb +0 -37
  85. data/spec/savon/request_spec.rb +0 -496
  86. data/spec/savon/response_spec.rb +0 -270
  87. data/spec/savon/soap_fault_spec.rb +0 -136
  88. data/spec/savon/softlayer_spec.rb +0 -27
  89. data/spec/spec_helper.rb +0 -30
  90. data/spec/support/adapters.rb +0 -48
  91. data/spec/support/endpoint.rb +0 -25
  92. data/spec/support/fixture.rb +0 -39
  93. data/spec/support/integration.rb +0 -9
  94. data/spec/support/stdout.rb +0 -25
@@ -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 hash
52
- @hash ||= nori.parse(xml)
57
+ def full_hash
58
+ @full_hash ||= nori.parse(xml)
53
59
  end
54
60
 
55
61
  def xml
56
- @http.body
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(hash, 'Envelope')
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?
@@ -1,12 +1,11 @@
1
- require "savon"
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.include?("faultcode>") && xml.include?("faultstring>")
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
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Savon
2
- VERSION = '2.11.2'
3
+ VERSION = '2.14.0'
3
4
  end
data/lib/savon.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Savon
2
3
 
3
4
  Error = Class.new(RuntimeError)
@@ -25,3 +26,4 @@ end
25
26
  require "savon/version"
26
27
  require "savon/client"
27
28
  require "savon/model"
29
+ require "savon/string_utils"
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.11.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: 2017-08-03 00:00:00.000000000 Z
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: '2.3'
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: '2.3'
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.4.0
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.4.0
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: '0'
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: '0'
155
+ version: 4.3.8
156
+ - - "<"
157
+ - !ruby/object:Gem::Version
158
+ version: '7'
125
159
  - !ruby/object:Gem::Dependency
126
- name: puma
160
+ name: byebug
127
161
  requirement: !ruby/object:Gem::Requirement
128
162
  requirements:
129
- - - '='
163
+ - - ">="
130
164
  - !ruby/object:Gem::Version
131
- version: 2.0.0.b4
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: 2.0.0.b4
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: '10.1'
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: '10.1'
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: '2.14'
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: '2.14'
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: '1.7'
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: '1.7'
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: 1.9.2
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
- rubyforge_project: savon
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
@@ -1,14 +0,0 @@
1
- .rvmrc
2
- .DS_Store
3
- .yardoc
4
- doc
5
- rdox
6
- coverage
7
- tmp
8
- *.rbc
9
- *~
10
- *.gem
11
- .bundle
12
- .rspec
13
- Gemfile.lock
14
- bin/
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
@@ -1,6 +0,0 @@
1
- --markup markdown
2
- --markup-provider redcarpet
3
- -
4
- CHANGELOG.md
5
- LICENSE
6
- lib/**/*.rb
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
@@ -1,13 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
-
4
- gem "httpclient", "~> 2.7.1"
5
-
6
- gem "simplecov", :require => false
7
- gem "coveralls", :require => false
8
-
9
- platform :rbx do
10
- gem 'racc'
11
- gem 'rubysl'
12
- gem 'rubinius-coverage'
13
- end
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>