s-savon 0.8.6

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