s-savon 0.8.6

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 (61) hide show
  1. data/.gitignore +9 -0
  2. data/.rspec +1 -0
  3. data/.yardopts +2 -0
  4. data/CHANGELOG.md +461 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE +20 -0
  7. data/README.md +37 -0
  8. data/Rakefile +40 -0
  9. data/lib/savon.rb +14 -0
  10. data/lib/savon/client.rb +157 -0
  11. data/lib/savon/core_ext/hash.rb +70 -0
  12. data/lib/savon/core_ext/object.rb +14 -0
  13. data/lib/savon/core_ext/string.rb +51 -0
  14. data/lib/savon/core_ext/time.rb +14 -0
  15. data/lib/savon/error.rb +6 -0
  16. data/lib/savon/global.rb +75 -0
  17. data/lib/savon/http/error.rb +42 -0
  18. data/lib/savon/soap.rb +24 -0
  19. data/lib/savon/soap/fault.rb +59 -0
  20. data/lib/savon/soap/request.rb +61 -0
  21. data/lib/savon/soap/response.rb +80 -0
  22. data/lib/savon/soap/xml.rb +187 -0
  23. data/lib/savon/version.rb +5 -0
  24. data/lib/savon/wsdl/document.rb +112 -0
  25. data/lib/savon/wsdl/parser.rb +102 -0
  26. data/lib/savon/wsdl/request.rb +35 -0
  27. data/lib/savon/wsse.rb +150 -0
  28. data/savon.gemspec +29 -0
  29. data/spec/fixtures/gzip/message.gz +0 -0
  30. data/spec/fixtures/response/another_soap_fault.xml +14 -0
  31. data/spec/fixtures/response/authentication.xml +14 -0
  32. data/spec/fixtures/response/header.xml +13 -0
  33. data/spec/fixtures/response/list.xml +18 -0
  34. data/spec/fixtures/response/multi_ref.xml +39 -0
  35. data/spec/fixtures/response/soap_fault.xml +8 -0
  36. data/spec/fixtures/response/soap_fault12.xml +18 -0
  37. data/spec/fixtures/wsdl/authentication.xml +63 -0
  38. data/spec/fixtures/wsdl/geotrust.xml +156 -0
  39. data/spec/fixtures/wsdl/namespaced_actions.xml +307 -0
  40. data/spec/fixtures/wsdl/no_namespace.xml +115 -0
  41. data/spec/fixtures/wsdl/two_bindings.xml +25 -0
  42. data/spec/savon/client_spec.rb +346 -0
  43. data/spec/savon/core_ext/hash_spec.rb +121 -0
  44. data/spec/savon/core_ext/object_spec.rb +19 -0
  45. data/spec/savon/core_ext/string_spec.rb +57 -0
  46. data/spec/savon/core_ext/time_spec.rb +13 -0
  47. data/spec/savon/http/error_spec.rb +52 -0
  48. data/spec/savon/savon_spec.rb +85 -0
  49. data/spec/savon/soap/fault_spec.rb +89 -0
  50. data/spec/savon/soap/request_spec.rb +45 -0
  51. data/spec/savon/soap/response_spec.rb +174 -0
  52. data/spec/savon/soap/xml_spec.rb +335 -0
  53. data/spec/savon/soap_spec.rb +21 -0
  54. data/spec/savon/wsdl/document_spec.rb +132 -0
  55. data/spec/savon/wsdl/parser_spec.rb +99 -0
  56. data/spec/savon/wsdl/request_spec.rb +15 -0
  57. data/spec/savon/wsse_spec.rb +213 -0
  58. data/spec/spec_helper.rb +14 -0
  59. data/spec/support/endpoint.rb +25 -0
  60. data/spec/support/fixture.rb +37 -0
  61. metadata +251 -0
@@ -0,0 +1,9 @@
1
+ .DS_Store
2
+ .yardoc
3
+ doc
4
+ coverage
5
+ tmp
6
+ *~
7
+ *.gem
8
+ .bundle
9
+ Gemfile.lock
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour
@@ -0,0 +1,2 @@
1
+ -
2
+ CHANGELOG.rdoc
@@ -0,0 +1,461 @@
1
+ ## 0.8.6 (2011-02-15)
2
+
3
+ * Fix for issues [issue #147](https://github.com/rubiii/savon/issues/147) and [#151](https://github.com/rubiii/savon/issues/151)
4
+ ([771194](https://github.com/rubiii/savon/commit/771194)).
5
+
6
+ ## 0.8.5 (2011-01-28)
7
+
8
+ * Fix for [issue #146](https://github.com/rubiii/savon/issues/146) ([98655c](https://github.com/rubiii/savon/commit/98655c)).
9
+
10
+ * Fix for [issue #147](https://github.com/rubiii/savon/issues/147) ([252670](https://github.com/rubiii/savon/commit/252670)).
11
+
12
+ ## 0.8.4 (2011-01-26)
13
+
14
+ * Fix for issues [issue #130](https://github.com/rubiii/savon/issues/130) and [#134](https://github.com/rubiii/savon/issues/134)
15
+ ([4f9847](https://github.com/rubiii/savon/commit/4f9847)).
16
+
17
+ * Fix for [issue #91](https://github.com/rubiii/savon/issues/91) ([5c8ec1](https://github.com/rubiii/savon/commit/5c8ec1)).
18
+
19
+ * Fix for [issue #135](https://github.com/rubiii/savon/issues/135) ([c9261d](https://github.com/rubiii/savon/commit/c9261d)).
20
+
21
+ ## 0.8.3 (2011-01-11)
22
+
23
+ * Moved implementation of `Savon::SOAP::Response#to_array` to a class method at `Savon::SOAP::XML.to_array`
24
+ ([05a7d3](https://github.com/rubiii/savon/commit/05a7d3)).
25
+
26
+ * Fix for [issue #131](https://github.com/rubiii/savon/issues/131) ([4e57b3](https://github.com/rubiii/savon/commit/4e57b3)).
27
+
28
+ ## 0.8.2 (2011-01-04)
29
+
30
+ * Fix for [issue #127](https://github.com/rubiii/savon/issues/127) ([0eb3da](https://github.com/rubiii/savon/commit/0eb3da4)).
31
+
32
+ * Changed `Savon::WSSE` to be based on a Hash instead of relying on builder ([4cebc3](https://github.com/rubiii/savon/commit/4cebc3)).
33
+
34
+ `Savon::WSSE` now supports wsse:Timestamp headers ([issue #122](https://github.com/rubiii/savon/issues/122)) by setting
35
+ `Savon::WSSE#timestamp` to `true`:
36
+
37
+ client.request :some_method do
38
+ wsse.timestamp = true
39
+ end
40
+
41
+ or by setting `Savon::WSSE#created_at` or `Savon::WSSE#expires_at`:
42
+
43
+ client.request :some_method do
44
+ wsse.created_at = Time.now
45
+ wsse.expires_at = Time.now + 60
46
+ end
47
+
48
+ You can also add custom tags to the WSSE header ([issue #69](https://github.com/rubiii/savon/issues/69)):
49
+
50
+ client.request :some_method do
51
+ wsse["wsse:Security"]["wsse:UsernameToken"] = { "Organization" => "ACME", "Domain" => "acme.com" }
52
+ end
53
+
54
+ ## 0.8.1 (2010-12-22)
55
+
56
+ * Update to depend on HTTPI v0.7.5 which comes with a fallback to use Net::HTTP when no other adapter could be required.
57
+
58
+ * Fix for [issue #72](https://github.com/rubiii/savon/issues/72) ([22074a](https://github.com/rubiii/savon/commit/22074a8)).
59
+
60
+ * Loosen dependency on builder. Should be quite stable.
61
+
62
+ ## 0.8.0 (2010-12-20)
63
+
64
+ * Added `Savon::SOAP::XML#env_namespace` ([51fa0e](https://github.com/rubiii/savon/commit/51fa0e)) to configure
65
+ the SOAP envelope namespace. It defaults to :env but can also be set to an empty String for SOAP envelope
66
+ tags without a namespace.
67
+
68
+ * Replaced quite a lot of core extensions by moving the Hash to XML translation into a new gem called
69
+ [Gyoku](http://rubygems.org/gems/gyoku) ([bac4b4](https://github.com/rubiii/savon/commit/bac4b4)).
70
+
71
+ ## 0.8.0.beta.4 (2010-11-20)
72
+
73
+ * Fix for [issue #107](https://github.com/rubiii/savon/issues/107) ([1d6eda](https://github.com/rubiii/savon/commit/1d6eda)).
74
+
75
+ * Fix for [issue #108](https://github.com/rubiii/savon/issues/108)
76
+ ([f64400...0aaca2](https://github.com/rubiii/savon/compare/f64400...0aaca2)) Thanks [fagiani](https://github.com/fagiani).
77
+
78
+ * Replaced `Savon.response_pattern` with a slightly different implementation of the `Savon::SOAP::Response#to_array` method
79
+ ([6df6a6](https://github.com/rubiii/savon/commit/6df6a6)). The method now accepts multiple arguments representing the response
80
+ Hash keys to traverse and returns the result as an Array or an empty Array in case the key is nil or does not exist.
81
+
82
+ response.to_array :get_user_response, :return
83
+ # => [{ :id => 1, :name => "foo"}, { :id => 2, :name => "bar"}]
84
+
85
+ ## 0.8.0.beta.3 (2010-11-06)
86
+
87
+ * Fix for [savon_spec](http://rubygems.org/gems/savon_spec) to not send nil to `Savon::SOAP::XML#body`
88
+ ([c34b42](https://github.com/rubiii/savon/commit/c34b42)).
89
+
90
+ ## 0.8.0.beta.2 (2010-11-05)
91
+
92
+ * Added `Savon.response_pattern` ([0a12fb](https://github.com/rubiii/savon/commit/0a12fb)) to automatically walk deeper into
93
+ the SOAP response Hash when a pattern (specified as an Array of Regexps and Symbols) matches the response. If for example
94
+ your response always looks like ".+Response/return" as in:
95
+
96
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
97
+ <soap:Body>
98
+ <ns2:authenticateResponse xmlns:ns2="http://v1_0.ws.user.example.com">
99
+ <return>
100
+ <some>thing</some>
101
+ </return>
102
+ </ns2:authenticateResponse>
103
+ </soap:Body>
104
+ </soap:Envelope>
105
+
106
+ you could set the response pattern to:
107
+
108
+ Savon.configure do |config|
109
+ config.response_pattern = [/.+_response/, :return]
110
+ end
111
+
112
+ then instead of calling:
113
+
114
+ response.to_hash[:authenticate_response][:return] # :some => "thing"
115
+
116
+ to get the actual content, Savon::SOAP::Response#to_hash will try to apply given the pattern:
117
+
118
+ response.to_hash # :some => "thing"
119
+
120
+ Please notice, that if you don't specify a response pattern or if the pattern doesn't match the
121
+ response, Savon will behave like it always did.
122
+
123
+ * Added `Savon::SOAP::Response#to_array` (which also uses the response pattern).
124
+
125
+ ## 0.8.0.beta.1 (2010-10-29)
126
+
127
+ * Changed `Savon::Client.new` to accept a block instead of multiple Hash arguments. You can access the
128
+ wsdl, http and wsse objects inside the block to configure your client for a particular service.
129
+
130
+ # Instantiating a client to work with a WSDL document
131
+ client = Savon::Client.new do
132
+ wsdl.document = "http://example.com?wsdl"
133
+ end
134
+
135
+ # Directly accessing the SOAP endpoint
136
+ client = Savon::Client.new do
137
+ wsdl.endpoint = "http://example.com"
138
+ wsdl.namespace = "http://v1.example.com"
139
+ end
140
+
141
+ * Fix for [issue #77](https://github.com/rubiii/savon/issues/77), which means you can now use
142
+ local WSDL documents:
143
+
144
+ client = Savon::Client.new do
145
+ wsdl.document = "../wsdl/service.xml"
146
+ end
147
+
148
+ * Changed the way SOAP requests are being dispatched. Instead of using method_missing, you now use
149
+ the new `request` method, which also accepts a block for you to access the wsdl, http, wsse and
150
+ soap object. Please notice, that a new soap object is created for every request. So you can only
151
+ access it inside this block.
152
+
153
+ # A simple request to an :authenticate method
154
+ client.request :authenticate do
155
+ soap.body = { :id => 1 }
156
+ end
157
+
158
+ * The new `Savon::Client#request` method fixes issues [#37](https://github.com/rubiii/savon/issues/37),
159
+ [#61](https://github.com/rubiii/savon/issues/61) and [#64](https://github.com/rubiii/savon/issues/64),
160
+ which report problems with namespacing the SOAP input tag and attaching attributes to it.
161
+ Some usage examples:
162
+
163
+ client.request :get_user # Input tag: <getUser>
164
+ client.request :wsdl, "GetUser" # Input tag: <wsdl:GetUser>
165
+ client.request :get_user :active => true # Input tag: <getUser active="true">
166
+
167
+ * Savon's new `request` method respects the given namespace. If you don't give it a namespace,
168
+ Savon will set the target namespace to "xmlns:wsdl". But if you do specify a namespace, it will
169
+ be set to the given Symbol.
170
+
171
+ * Refactored Savon to use the new [HTTPI](http://rubygems.org/gems/httpi) gem.
172
+ `HTTPI::Request` replaces the `Savon::Request`, so please make sure to have a look
173
+ at the HTTPI library and let me know about any problems. Using HTTPI actually
174
+ fixes the following two issues.
175
+
176
+ * Savon now adds both "xmlns:xsd" and "xmlns:xsi" namespaces for you. Thanks Averell.
177
+ It also properly serializes nil values as xsi:nil = "true".
178
+
179
+ * Fix for [issue #24](https://github.com/rubiii/savon/issues/24).
180
+ Instead of Net/HTTP, Savon now uses HTTPI to execute HTTP requests.
181
+ HTTPI defaults to use HTTPClient which supports HTTP digest authentication.
182
+
183
+ * Fix for [issue #76](https://github.com/rubiii/savon/issues/76).
184
+ You now have to explicitly specify whether to use a WSDL document, when instantiating a client.
185
+
186
+ * Fix for [issue #75](https://github.com/rubiii/savon/issues/75).
187
+ Both `Savon::SOAP::Fault` and `Savon::HTTP::Error` now contain the `HTTPI::Response`.
188
+ They also inherit from `Savon::Error`, making it easier to rescue both at the same time.
189
+
190
+ * Fix for [issue #87](https://github.com/rubiii/savon/issues/87).
191
+ Thanks to Leonardo Borges.
192
+
193
+ * Fix for [issue #81](https://github.com/rubiii/savon/issues/81).
194
+ Replaced `Savon::WSDL::Document#to_s` with a `to_xml` method.
195
+
196
+ * Fix for issues [#85](https://github.com/rubiii/savon/issues/85) and [#88](https://github.com/rubiii/savon/issues/88).
197
+
198
+ * Fix for [issue #80](https://github.com/rubiii/savon/issues/80).
199
+
200
+ * Fix for [issue #60](https://github.com/rubiii/savon/issues/60).
201
+
202
+ * Fix for [issue #96](https://github.com/rubiii/savon/issues/96).
203
+
204
+ * Removed global WSSE credentials. Authentication needs to be set up for each client instance.
205
+
206
+ * Started to remove quite a few core extensions.
207
+
208
+ ## 0.7.9 (2010-06-14)
209
+
210
+ * Fix for [issue #53](https://github.com/rubiii/savon/issues/53).
211
+
212
+ ## 0.7.8 (2010-05-09)
213
+
214
+ * Fixed gemspec to include missing files in the gem.
215
+
216
+ ## 0.7.7 (2010-05-09)
217
+
218
+ * SOAP requests now start with a proper XML declaration.
219
+
220
+ * Added support for gzipped requests and responses (http://github.com/lucascs). While gzipped SOAP
221
+ responses are decoded automatically, you have to manually instruct Savon to gzip SOAP requests:
222
+
223
+ client = Savon::Client.new "http://example.com/UserService?wsdl", :gzip => true
224
+
225
+ * Fix for [issue #51](https://github.com/rubiii/savon/issues/51). Added the :soap_endpoint option to
226
+ `Savon::Client.new` which lets you specify a SOAP endpoint per client instance:
227
+
228
+ client = Savon::Client.new "http://example.com/UserService?wsdl",
229
+ :soap_endpoint => "http://localhost/UserService"
230
+
231
+ * Fix for [issue #50](https://github.com/rubiii/savon/issues/50). Savon still escapes special characters
232
+ in SOAP request Hash values, but you can now append an exclamation mark to Hash keys specifying that
233
+ it's value should not be escaped.
234
+
235
+ ## 0.7.6 (2010-03-21)
236
+
237
+ * Moved documentation from the Github Wiki to the actual class files and established a much nicer
238
+ documentation combining examples and implementation (using Hanna) at: http://savon.rubiii.com
239
+
240
+ * Added `Savon::Client#call` as a workaround for dispatching calls to SOAP actions named after
241
+ existing methods. Fix for [issue #48](https://github.com/rubiii/savon/issues/48).
242
+
243
+ * Add support for specifying attributes for duplicate tags (via Hash values as Arrays).
244
+ Fix for [issue #45](https://github.com/rubiii/savon/issues/45).
245
+
246
+ * Fix for [issue #41](https://github.com/rubiii/savon/issues/41).
247
+
248
+ * Fix for issues [#39](https://github.com/rubiii/savon/issues/39) and [#49](https://github.com/rubiii/savon/issues/49).
249
+ Added `Savon::SOAP#xml` which let's you specify completely custom SOAP request XML.
250
+
251
+ ## 0.7.5 (2010-02-19)
252
+
253
+ * Fix for [issue #34](https://github.com/rubiii/savon/issues/34).
254
+
255
+ * Fix for [issue #36](https://github.com/rubiii/savon/issues/36).
256
+
257
+ * Added feature requested in [issue #35](https://github.com/rubiii/savon/issues/35).
258
+
259
+ * Changed the key for specifying the order of tags from :@inorder to :order!
260
+
261
+ ## 0.7.4 (2010-02-02)
262
+
263
+ * Fix for [issue #33](https://github.com/rubiii/savon/issues/33).
264
+
265
+ ## 0.7.3 (2010-01-31)
266
+
267
+ * Added support for Geotrust-style WSDL documents (Julian Kornberger <github.corny@digineo.de>).
268
+
269
+ * Make HTTP requests include path and query only. This was breaking requests via proxy as scheme and host
270
+ were repeated (Adrian Mugnolo <adrian@mugnolo.com>)
271
+
272
+ * Avoid warning on 1.8.7 and 1.9.1 (Adrian Mugnolo <adrian@mugnolo.com>).
273
+
274
+ * Fix for [issue #29](https://github.com/rubiii/savon/issues/29).
275
+ Default to UTC to xs:dateTime value for WSSE authentication.
276
+
277
+ * Fix for [issue #28](https://github.com/rubiii/savon/issues/28).
278
+
279
+ * Fix for [issue #27](https://github.com/rubiii/savon/issues/27). The Content-Type now defaults to UTF-8.
280
+
281
+ * Modification to allow assignment of an Array with an input name and an optional Hash of values to soap.input.
282
+ Patches [issue #30](https://github.com/rubiii/savon/issues/30) (stanleydrew <andrewmbenton@gmail.com>).
283
+
284
+ * Fix for [issue #25](https://github.com/rubiii/savon/issues/25).
285
+
286
+ ## 0.7.2 (2010-01-17)
287
+
288
+ * Exposed the `Net::HTTP` response (added by Kevin Ingolfsland). Use the `http` accessor (`response.http`)
289
+ on your `Savon::Response` to access the `Net::HTTP` response object.
290
+
291
+ * Fix for [issue #21](https://github.com/rubiii/savon/issues/21).
292
+
293
+ * Fix for [issue #22](https://github.com/rubiii/savon/issues/22).
294
+
295
+ * Fix for [issue #19](https://github.com/rubiii/savon/issues/19).
296
+
297
+ * Added support for global header and namespaces. See [issue #9](https://github.com/rubiii/savon/issues/9).
298
+
299
+ ## 0.7.1 (2010-01-10)
300
+
301
+ * The Hash of HTTP headers for SOAP calls is now public via `Savon::Request#headers`.
302
+ Patch for [issue #8](https://github.com/rubiii/savon/issues/8).
303
+
304
+ ## 0.7.0 (2010-01-09)
305
+
306
+ This version comes with several changes to the public API!
307
+ Pay attention to the following list and read the updated Wiki: http://wiki.github.com/rubiii/savon
308
+
309
+ * Changed how `Savon::WSDL` can be disabled. Instead of disabling the WSDL globally/per request via two
310
+ different methods, you now simply append an exclamation mark (!) to your SOAP call: `client.get_all_users!`
311
+ Make sure you know what you're doing because when the WSDL is disabled, Savon does not know about which
312
+ SOAP actions are valid and just dispatches everything.
313
+
314
+ * The `Net::HTTP` object used by `Savon::Request` to retrieve WSDL documents and execute SOAP calls is now public.
315
+ While this makes the library even more flexible, it also comes with two major changes:
316
+
317
+ * SSL client authentication needs to be defined directly on the `Net::HTTP` object:
318
+
319
+ client.request.http.client_cert = ...
320
+
321
+ I added a shortcut method for setting all options through a Hash similar to the previous implementation:
322
+
323
+ client.request.http.ssl_client_auth :client_cert => ...
324
+
325
+ * Open and read timeouts also need to be set on the `Net::HTTP` object:
326
+
327
+ client.request.http.open_timeout = 30
328
+ client.request.http.read_timeout = 30
329
+
330
+ * Please refer to the `Net::HTTP` documentation for more details:
331
+ http://www.ruby-doc.org/stdlib/libdoc/net/http/rdoc/index.html
332
+
333
+ * Thanks to JulianMorrison, Savon now supports HTTP basic authentication:
334
+
335
+ client.request.http.basic_auth "username", "password"
336
+
337
+ * Julian also added a way to explicitly specify the order of Hash keys and values, so you should now be able
338
+ to work with services requiring a specific order of input parameters while still using Hash input.
339
+
340
+ client.find_user { |soap| soap.body = { :name => "Lucy", :id => 666, :@inorder => [:id, :name] } }
341
+
342
+ * `Savon::Response#to_hash` now returns the content inside of "soap:Body" instead of trying to go one
343
+ level deeper and return it's content. The previous implementation only worked when the "soap:Body" element
344
+ contained a single child. See [issue #17](https://github.com/rubiii/savon/issues/17).
345
+
346
+ * Added `Savon::SOAP#namespace` as a shortcut for setting the "xmlns:wsdl" namespace.
347
+
348
+ soap.namespace = "http://example.com"
349
+
350
+ ## 0.6.8 (2010-01-01)
351
+
352
+ * Improved specifications for various kinds of WSDL documents.
353
+
354
+ * Added support for SOAP endpoints which are different than the WSDL endpoint of a service.
355
+
356
+ * Changed how SOAP actions and inputs are retrieved from the WSDL documents. This might break a few existing
357
+ implementations, but makes Savon work well with even more services. If this change breaks your implementation,
358
+ please take a look at the `action` and `input` methods of the `Savon::SOAP` object.
359
+ One specific problem I know of is working with the createsend WSDL and its namespaced actions.
360
+
361
+ To make it work, call the SOAP action without namespace and specify the input manually:
362
+
363
+ client.get_api_key { |soap| soap.input = "User.GetApiKey" }
364
+
365
+ ## 0.6.7 (2009-12-18)
366
+
367
+ * Implemented support for a proxy server. The proxy URI can be set through an optional Hash of options passed
368
+ to instantiating `Savon::Client` (Dave Woodward <dave@futuremint.com>)
369
+
370
+ * Implemented support for SSL client authentication. Settings can be set through an optional Hash of arguments
371
+ passed to instantiating `Savon::Client` (colonhyphenp)
372
+
373
+ * Patch for [issue #10](https://github.com/rubiii/savon/issues/10).
374
+
375
+ ## 0.6.6 (2009-12-14)
376
+
377
+ * Default to use the name of the SOAP action (the method called in a client) in lowerCamelCase for SOAP action
378
+ and input when Savon::WSDL is disabled. You still need to specify soap.action and maybe soap.input in case
379
+ your SOAP actions are named any different.
380
+
381
+ ## 0.6.5 (2009-12-13)
382
+
383
+ * Added an `open_timeout` method to `Savon::Request`.
384
+
385
+ ## 0.6.4 (2009-12-13)
386
+
387
+ * Refactored specs to be less unit-like.
388
+
389
+ * Added a getter for the `Savon::Request` to `Savon::Client` and a `read_timeout` setter for HTTP requests.
390
+
391
+ * `wsdl.soap_actions` now returns an Array of SOAP actions. For the previous "mapping" please use `wsdl.operations`.
392
+
393
+ * Replaced WSDL document with stream parsing.
394
+
395
+ Benchmarks (1000 SOAP calls):
396
+
397
+ user system total real
398
+ 0.6.4 72.180000 8.280000 80.460000 (750.799011)
399
+ 0.6.3 192.900000 19.630000 212.530000 (914.031865)
400
+
401
+ ## 0.6.3 (2009-12-11)
402
+
403
+ * Removing 2 ruby deprecation warnings for parenthesized arguments. (Dave Woodward <dave@futuremint.com>)
404
+
405
+ * Added global and per request options for disabling `Savon::WSDL`.
406
+
407
+ Benchmarks (1000 SOAP calls):
408
+
409
+ user system total real
410
+ WSDL 192.900000 19.630000 212.530000 (914.031865)
411
+ disabled WSDL 5.680000 1.340000 7.020000 (298.265318)
412
+
413
+ * Improved XPath expressions for parsing the WSDL document.
414
+
415
+ Benchmarks (1000 SOAP calls):
416
+
417
+ user system total real
418
+ 0.6.3 192.900000 19.630000 212.530000 (914.031865)
419
+ 0.6.2 574.720000 78.380000 653.100000 (1387.778539)
420
+
421
+ ## 0.6.2 (2009-12-06)
422
+
423
+ * Added support for changing the name of the SOAP input node.
424
+
425
+ * Added a CHANGELOG.
426
+
427
+ ## 0.6.1 (2009-12-06)
428
+
429
+ * Fixed a problem with WSSE credentials, where every request contained a WSSE authentication header.
430
+
431
+ ## 0.6.0 (2009-12-06)
432
+
433
+ * `method_missing` now yields the SOAP and WSSE objects to a given block.
434
+
435
+ * The response_process (which previously was a block passed to method_missing) was replaced by `Savon::Response`.
436
+
437
+ * Improved SOAP action handling (another problem that came up with issue #1).
438
+
439
+ ## 0.5.3 (2009-11-30)
440
+
441
+ * Patch for [issue #2](https://github.com/rubiii/savon/issues/2).
442
+
443
+ ## 0.5.2 (2009-11-30)
444
+
445
+ * Patch for [issue #1](https://github.com/rubiii/savon/issues/1).
446
+
447
+ ## 0.5.1 (2009-11-29)
448
+
449
+ * Optimized default response process.
450
+
451
+ * Added WSSE settings via defaults.
452
+
453
+ * Added SOAP fault and HTTP error handling.
454
+
455
+ * Improved documentation
456
+
457
+ * Added specs
458
+
459
+ ## 0.5.0 (2009-11-29)
460
+
461
+ * Complete rewrite and public release.