savon 2.11.2 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>