Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 553 lines (342 sloc) 23.034 kb
8a125d2 @rubiii fix: updated the wrong section of the changelog
rubiii authored
1 ## UPCOMING
2
3 * Fix: [issue 138](https://github.com/rubiii/savon/issues/138) -
4 Savon now supports setting a global SOAP header via `Savon.soap_header=`.
5
0046e7f @rubiii fixed the namespace for wsse message timestamps
rubiii authored
6 * Fixed the namespace for wsse message timestamps from `wsse:Timestamp`
7 to `wsu:Timestamp` as required by the specification.
8
8a125d2 @rubiii fix: updated the wrong section of the changelog
rubiii authored
9 * Refactoring:
10
11 * `Savon::SOAP::XML.to_hash`, `Savon::SOAP::XML.parse` and `Savon::SOAP::XML.to_array` are gone.
12 It wasn't worth keeping them around, because they didn't do much. You can simply parse a SOAP
13 response and translate it to a Savon SOAP response Hash via:
14
b902e6a @rubiii formatting and naming
rubiii authored
15 Nori.parse(xml).map_soap_response[:envelope][:body]
16
17 * `Savon::SOAP::Response#basic_hash` is now `Savon::SOAP::Response#hash` and there's
18 also a method to access the entire `#normalized_hash`.
8a125d2 @rubiii fix: updated the wrong section of the changelog
rubiii authored
19
4813379 @rubiii updated the changelog
rubiii authored
20 ## 0.9.2 (2011-04-30)
21
0998a8c @rubiii updated the changelog
rubiii authored
22 * Fix: [issue 154](https://github.com/rubiii/savon/pull/154) -
4813379 @rubiii updated the changelog
rubiii authored
23 Timezone format used by Savon now matches the XML schema spec.
748a118 @rubiii fix for issue #142
rubiii authored
24
25 * Improvement: WSSE basic, digest and timestamp authentication are no longer mutually exclusive.
26 Thanks to [mleon](https://github.com/mleon) for solving [issue #142](https://github.com/rubiii/savon/issues/142).
27
4813379 @rubiii updated the changelog
rubiii authored
28 * Improvement: Switched from using Crack to translate the SOAP response to a Hash to using
29 [Nori](http://rubygems.org/gems/nori). It's based on Crack and comes with pluggable parsers.
30 It defaults to REXML, but you can switch to Nokogiri via:
31
32 Nori.parser = :nokogiri
33
34 * Improvement: WSDL parsing now uses Nokogiri instead of REXML.
35
99b2847 @rubiii preparing v0.9.1
rubiii authored
36 ## 0.9.1 (2011-04-06)
c6a21ee @rubiii shortcut for Savon::Client.new with a WSDL
rubiii authored
37
38 * Improvement: if you're only setting the local or remote address of your wsdl document, you can
39 now pass an (optional) String to `Savon::Client.new` to set `wsdl.document`.
40
9ecd4f7 @rubiii updated the changelog
rubiii authored
41 Savon::Client.new "http://example.com/UserService?wsdl"
42
43 * Improvement: instead of calling the `to_hash` method of your response again and again and again,
44 there is now a ' #[]` shortcut for you.
45
46 response[:authenticate_response][:return]
47
30977ca @rubiii updated the changelog
rubiii authored
48 ## 0.9.0 (2011-04-05)
49
50 * Feature: issues [#158](https://github.com/rubiii/savon/issues/158),
51 [#169](https://github.com/rubiii/savon/issues/169) and [#172](https://github.com/rubiii/savon/issues/172)
52 configurable "Hash key Symbol to lowerCamelCase" conversion by using the latest version of
53 [Gyoku](http://rubygems.org/gems/gyoku).
54
55 Gyoku.convert_symbols_to(:camelcase)
56 Gyoku.xml(:first_name => "Mac") # => "<FirstName></Firstname>"
57
58 You can even define your own conversion formular.
59
60 Gyoku.convert_symbols_to { |key| key.upcase }
61 Gyoku.xml(:first_name => "Mac") # => "<FIRST_NAME></FIRST_NAME>"
62
63 This should also work for the SOAP input tag and SOAPAction header. So if you had to use a String for
64 the SOAP action to call because your services uses CamelCase instead of lowerCamelCase, you can now
65 change the default and use Symbols instead.
66
67 Gyoku.convert_symbols_to(:camelcase)
68
69 # pre Gyoku 0.4.0
70 client.request(:get_user) # => "<getUser/>"
71 client.request("GetUser") # => "<GetUser/>"
72
73 # post Gyoku 0.4.0
74 client.request(:get_user) # => "<GetUser/>"
75
76 * Improvement: issues [#170](https://github.com/rubiii/savon/issues/170) and
77 [#173](https://github.com/rubiii/savon/issues/173) Savon no longer rescues exceptions raised by
78 `Crack::XML.parse`. If Crack complains about your WSDL document, you should take control and
79 solve the problem instead of getting no response.
80
81 * Improvement: issue [#172](https://github.com/rubiii/savon/issues/172) support for global env_namespace.
82
83 Savon.configure do |config|
84 config.env_namespace = :soapenv # changes the default :env namespace
85 end
86
87 * Fix: [issue #163](https://github.com/rubiii/savon/issues/163) "Savon 0.8.6 not playing nicely
88 with Httpi 0.9.0". Updating HTTPI to v0.9.1 should solve this problem.
89
1368998 @rubiii updated the changelog
rubiii authored
90 * And if you haven't already seen the new documentation: [savonrb.com](http://savonrb.com)
91
130e0e1 @rubiii updated the changelog
rubiii authored
92 ## 0.8.6 (2011-02-15)
93
94 * Fix for issues [issue #147](https://github.com/rubiii/savon/issues/147) and [#151](https://github.com/rubiii/savon/issues/151)
95 ([771194](https://github.com/rubiii/savon/commit/771194)).
96
c7324f3 @rubiii preparing v0.8.5
rubiii authored
97 ## 0.8.5 (2011-01-28)
98
99 * Fix for [issue #146](https://github.com/rubiii/savon/issues/146) ([98655c](https://github.com/rubiii/savon/commit/98655c)).
100
101 * Fix for [issue #147](https://github.com/rubiii/savon/issues/147) ([252670](https://github.com/rubiii/savon/commit/252670)).
102
3390f17 @rubiii preparing v0.8.4
rubiii authored
103 ## 0.8.4 (2011-01-26)
35ee46c @rubiii updated the changelog
rubiii authored
104
368db71 @rubiii added issue 138 to the changelog
rubiii authored
105 * Fix for issues [issue #130](https://github.com/rubiii/savon/issues/130) and [#134](https://github.com/rubiii/savon/issues/134)
106 ([4f9847](https://github.com/rubiii/savon/commit/4f9847)).
35ee46c @rubiii updated the changelog
rubiii authored
107
3390f17 @rubiii preparing v0.8.4
rubiii authored
108 * Fix for [issue #91](https://github.com/rubiii/savon/issues/91) ([5c8ec1](https://github.com/rubiii/savon/commit/5c8ec1)).
109
110 * Fix for [issue #135](https://github.com/rubiii/savon/issues/135) ([c9261d](https://github.com/rubiii/savon/commit/c9261d)).
111
112 ## 0.8.3 (2011-01-11)
f940483 @rubiii updated changelog
rubiii authored
113
114 * Moved implementation of `Savon::SOAP::Response#to_array` to a class method at `Savon::SOAP::XML.to_array`
115 ([05a7d3](https://github.com/rubiii/savon/commit/05a7d3)).
116
76ea08a @rubiii updated the changelog for v0.8.3
rubiii authored
117 * Fix for [issue #131](https://github.com/rubiii/savon/issues/131) ([4e57b3](https://github.com/rubiii/savon/commit/4e57b3)).
118
3390f17 @rubiii preparing v0.8.4
rubiii authored
119 ## 0.8.2 (2011-01-04)
818b164 @rubiii updated the changelog
rubiii authored
120
76ea08a @rubiii updated the changelog for v0.8.3
rubiii authored
121 * Fix for [issue #127](https://github.com/rubiii/savon/issues/127) ([0eb3da](https://github.com/rubiii/savon/commit/0eb3da4)).
818b164 @rubiii updated the changelog
rubiii authored
122
a304cf0 @rubiii updated changelog for v0.8.2
rubiii authored
123 * Changed `Savon::WSSE` to be based on a Hash instead of relying on builder ([4cebc3](https://github.com/rubiii/savon/commit/4cebc3)).
124
125 `Savon::WSSE` now supports wsse:Timestamp headers ([issue #122](https://github.com/rubiii/savon/issues/122)) by setting
126 `Savon::WSSE#timestamp` to `true`:
127
128 client.request :some_method do
129 wsse.timestamp = true
130 end
131
132 or by setting `Savon::WSSE#created_at` or `Savon::WSSE#expires_at`:
133
134 client.request :some_method do
135 wsse.created_at = Time.now
136 wsse.expires_at = Time.now + 60
137 end
138
139 You can also add custom tags to the WSSE header ([issue #69](https://github.com/rubiii/savon/issues/69)):
140
141 client.request :some_method do
142 wsse["wsse:Security"]["wsse:UsernameToken"] = { "Organization" => "ACME", "Domain" => "acme.com" }
143 end
144
818b164 @rubiii updated the changelog
rubiii authored
145 ## 0.8.1 (2010-12-22)
66f5423 @rubiii updated CHANGELOG
rubiii authored
146
147 * Update to depend on HTTPI v0.7.5 which comes with a fallback to use Net::HTTP when no other adapter could be required.
148
818b164 @rubiii updated the changelog
rubiii authored
149 * Fix for [issue #72](https://github.com/rubiii/savon/issues/72) ([22074a](https://github.com/rubiii/savon/commit/22074a8)).
66f5423 @rubiii updated CHANGELOG
rubiii authored
150
b95e483 @rubiii loosen dependency on builder
rubiii authored
151 * Loosen dependency on builder. Should be quite stable.
152
66f5423 @rubiii updated CHANGELOG
rubiii authored
153 ## 0.8.0 (2010-12-20)
51fa0e6 @rubiii made the SOAP envelope namespace configurable
rubiii authored
154
a96b7c6 @rubiii links. they're hard ;)
rubiii authored
155 * Added `Savon::SOAP::XML#env_namespace` ([51fa0e](https://github.com/rubiii/savon/commit/51fa0e)) to configure
54c723a @rubiii added commit links
rubiii authored
156 the SOAP envelope namespace. It defaults to :env but can also be set to an empty String for SOAP envelope
157 tags without a namespace.
51fa0e6 @rubiii made the SOAP envelope namespace configurable
rubiii authored
158
bac4b4d @rubiii moved hash to xml translation into a new gem
rubiii authored
159 * Replaced quite a lot of core extensions by moving the Hash to XML translation into a new gem called
a96b7c6 @rubiii links. they're hard ;)
rubiii authored
160 [Gyoku](http://rubygems.org/gems/gyoku) ([bac4b4](https://github.com/rubiii/savon/commit/bac4b4)).
bac4b4d @rubiii moved hash to xml translation into a new gem
rubiii authored
161
0183bf6 @rubiii updated changelog
rubiii authored
162 ## 0.8.0.beta.4 (2010-11-20)
163
19c4d7c @rubiii formatted commit links
rubiii authored
164 * Fix for [issue #107](https://github.com/rubiii/savon/issues/107) ([1d6eda](https://github.com/rubiii/savon/commit/1d6eda)).
0183bf6 @rubiii updated changelog
rubiii authored
165
54c723a @rubiii added commit links
rubiii authored
166 * Fix for [issue #108](https://github.com/rubiii/savon/issues/108)
19c4d7c @rubiii formatted commit links
rubiii authored
167 ([f64400...0aaca2](https://github.com/rubiii/savon/compare/f64400...0aaca2)) Thanks [fagiani](https://github.com/fagiani).
0183bf6 @rubiii updated changelog
rubiii authored
168
54c723a @rubiii added commit links
rubiii authored
169 * Replaced `Savon.response_pattern` with a slightly different implementation of the `Savon::SOAP::Response#to_array` method
19c4d7c @rubiii formatted commit links
rubiii authored
170 ([6df6a6](https://github.com/rubiii/savon/commit/6df6a6)). The method now accepts multiple arguments representing the response
54c723a @rubiii added commit links
rubiii authored
171 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.
0183bf6 @rubiii updated changelog
rubiii authored
172
173 response.to_array :get_user_response, :return
174 # => [{ :id => 1, :name => "foo"}, { :id => 2, :name => "bar"}]
175
176 ## 0.8.0.beta.3 (2010-11-06)
177
54c723a @rubiii added commit links
rubiii authored
178 * Fix for [savon_spec](http://rubygems.org/gems/savon_spec) to not send nil to `Savon::SOAP::XML#body`
19c4d7c @rubiii formatted commit links
rubiii authored
179 ([c34b42](https://github.com/rubiii/savon/commit/c34b42)).
0183bf6 @rubiii updated changelog
rubiii authored
180
abc42be @rubiii updated changelog for v0.8.0.beta.2
rubiii authored
181 ## 0.8.0.beta.2 (2010-11-05)
182
19c4d7c @rubiii formatted commit links
rubiii authored
183 * Added `Savon.response_pattern` ([0a12fb](https://github.com/rubiii/savon/commit/0a12fb)) to automatically walk deeper into
54c723a @rubiii added commit links
rubiii authored
184 the SOAP response Hash when a pattern (specified as an Array of Regexps and Symbols) matches the response. If for example
abc42be @rubiii updated changelog for v0.8.0.beta.2
rubiii authored
185 your response always looks like ".+Response/return" as in:
186
187 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
188 <soap:Body>
189 <ns2:authenticateResponse xmlns:ns2="http://v1_0.ws.user.example.com">
190 <return>
191 <some>thing</some>
192 </return>
193 </ns2:authenticateResponse>
194 </soap:Body>
195 </soap:Envelope>
196
197 you could set the response pattern to:
198
199 Savon.configure do |config|
200 config.response_pattern = [/.+_response/, :return]
201 end
202
203 then instead of calling:
204
205 response.to_hash[:authenticate_response][:return] # :some => "thing"
206
207 to get the actual content, Savon::SOAP::Response#to_hash will try to apply given the pattern:
208
209 response.to_hash # :some => "thing"
210
211 Please notice, that if you don't specify a response pattern or if the pattern doesn't match the
212 response, Savon will behave like it always did.
213
53934d9 @rubiii formatted changelog
rubiii authored
214 * Added `Savon::SOAP::Response#to_array` (which also uses the response pattern).
abc42be @rubiii updated changelog for v0.8.0.beta.2
rubiii authored
215
0b7d28b @rubiii it's official. 2010-10-29!
rubiii authored
216 ## 0.8.0.beta.1 (2010-10-29)
9b5d3d6 @rubiii appreciate yard
rubiii authored
217
53934d9 @rubiii formatted changelog
rubiii authored
218 * Changed `Savon::Client.new` to accept a block instead of multiple Hash arguments. You can access the
058504d @rubiii updated CHANGELOG
rubiii authored
219 wsdl, http and wsse objects inside the block to configure your client for a particular service.
9b5d3d6 @rubiii appreciate yard
rubiii authored
220
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
221 # Instantiating a client to work with a WSDL document
058504d @rubiii updated CHANGELOG
rubiii authored
222 client = Savon::Client.new do
223 wsdl.document = "http://example.com?wsdl"
224 end
9b5d3d6 @rubiii appreciate yard
rubiii authored
225
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
226 # Directly accessing the SOAP endpoint
058504d @rubiii updated CHANGELOG
rubiii authored
227 client = Savon::Client.new do
228 wsdl.endpoint = "http://example.com"
229 wsdl.namespace = "http://v1.example.com"
230 end
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
231
53934d9 @rubiii formatted changelog
rubiii authored
232 * Fix for [issue #77](https://github.com/rubiii/savon/issues/77), which means you can now use
233 local WSDL documents:
058504d @rubiii updated CHANGELOG
rubiii authored
234
235 client = Savon::Client.new do
236 wsdl.document = "../wsdl/service.xml"
237 end
238
239 * Changed the way SOAP requests are being dispatched. Instead of using method_missing, you now use
53934d9 @rubiii formatted changelog
rubiii authored
240 the new `request` method, which also accepts a block for you to access the wsdl, http, wsse and
058504d @rubiii updated CHANGELOG
rubiii authored
241 soap object. Please notice, that a new soap object is created for every request. So you can only
242 access it inside this block.
243
244 # A simple request to an :authenticate method
245 client.request :authenticate do
246 soap.body = { :id => 1 }
247 end
248
53934d9 @rubiii formatted changelog
rubiii authored
249 * The new `Savon::Client#request` method fixes issues [#37](https://github.com/rubiii/savon/issues/37),
250 [#61](https://github.com/rubiii/savon/issues/61) and [#64](https://github.com/rubiii/savon/issues/64),
251 which report problems with namespacing the SOAP input tag and attaching attributes to it.
252 Some usage examples:
058504d @rubiii updated CHANGELOG
rubiii authored
253
254 client.request :get_user # Input tag: <getUser>
255 client.request :wsdl, "GetUser" # Input tag: <wsdl:GetUser>
256 client.request :get_user :active => true # Input tag: <getUser active="true">
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
257
53934d9 @rubiii formatted changelog
rubiii authored
258 * Savon's new `request` method respects the given namespace. If you don't give it a namespace,
5e07503 @rubiii showing more respect for the target namespace and fixed objects yielded ...
rubiii authored
259 Savon will set the target namespace to "xmlns:wsdl". But if you do specify a namespace, it will
260 be set to the given Symbol.
261
53934d9 @rubiii formatted changelog
rubiii authored
262 * Refactored Savon to use the new [HTTPI](http://rubygems.org/gems/httpi) gem.
263 `HTTPI::Request` replaces the `Savon::Request`, so please make sure to have a look
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
264 at the HTTPI library and let me know about any problems. Using HTTPI actually
265 fixes the following two issues.
266
5e9358c @rubiii properly serialize nil values
rubiii authored
267 * Savon now adds both "xmlns:xsd" and "xmlns:xsi" namespaces for you. Thanks Averell.
268 It also properly serializes nil values as xsi:nil = "true".
269
53934d9 @rubiii formatted changelog
rubiii authored
270 * Fix for [issue #24](https://github.com/rubiii/savon/issues/24).
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
271 Instead of Net/HTTP, Savon now uses HTTPI to execute HTTP requests.
272 HTTPI defaults to use HTTPClient which supports HTTP digest authentication.
273
53934d9 @rubiii formatted changelog
rubiii authored
274 * Fix for [issue #76](https://github.com/rubiii/savon/issues/76).
058504d @rubiii updated CHANGELOG
rubiii authored
275 You now have to explicitly specify whether to use a WSDL document, when instantiating a client.
276
53934d9 @rubiii formatted changelog
rubiii authored
277 * Fix for [issue #75](https://github.com/rubiii/savon/issues/75).
278 Both `Savon::SOAP::Fault` and `Savon::HTTP::Error` now contain the `HTTPI::Response`.
279 They also inherit from `Savon::Error`, making it easier to rescue both at the same time.
36d77cc @rubiii fix for issue #75. refactored SOAP fault and HTTP error classes.
rubiii authored
280
53934d9 @rubiii formatted changelog
rubiii authored
281 * Fix for [issue #87](https://github.com/rubiii/savon/issues/87).
0c3aa5e @rubiii fix for namespaced entries in SOAP response XML. closes #87.
rubiii authored
282 Thanks to Leonardo Borges.
283
53934d9 @rubiii formatted changelog
rubiii authored
284 * Fix for [issue #81](https://github.com/rubiii/savon/issues/81).
285 Replaced `Savon::WSDL::Document#to_s` with a `to_xml` method.
058504d @rubiii updated CHANGELOG
rubiii authored
286
53934d9 @rubiii formatted changelog
rubiii authored
287 * Fix for issues [#85](https://github.com/rubiii/savon/issues/85) and [#88](https://github.com/rubiii/savon/issues/88).
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
288
53934d9 @rubiii formatted changelog
rubiii authored
289 * Fix for [issue #80](https://github.com/rubiii/savon/issues/80).
635f305 @rubiii fix for issue #80
rubiii authored
290
53934d9 @rubiii formatted changelog
rubiii authored
291 * Fix for [issue #60](https://github.com/rubiii/savon/issues/60).
1c67b74 @rubiii fix for issue #60
rubiii authored
292
53934d9 @rubiii formatted changelog
rubiii authored
293 * Fix for [issue #96](https://github.com/rubiii/savon/issues/96).
280fb48 @rubiii added issue 96
rubiii authored
294
1b6b010 @rubiii added WSSE changes
rubiii authored
295 * Removed global WSSE credentials. Authentication needs to be set up for each client instance.
296
297 * Started to remove quite a few core extensions.
51bf62c @rubiii updated changelog for v0.8.0.beta.1
rubiii authored
298
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
299 ## 0.7.9 (2010-06-14)
9b5d3d6 @rubiii appreciate yard
rubiii authored
300
53934d9 @rubiii formatted changelog
rubiii authored
301 * Fix for [issue #53](https://github.com/rubiii/savon/issues/53).
9b5d3d6 @rubiii appreciate yard
rubiii authored
302
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
303 ## 0.7.8 (2010-05-09)
9b5d3d6 @rubiii appreciate yard
rubiii authored
304
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
305 * Fixed gemspec to include missing files in the gem.
9b5d3d6 @rubiii appreciate yard
rubiii authored
306
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
307 ## 0.7.7 (2010-05-09)
9b5d3d6 @rubiii appreciate yard
rubiii authored
308
309 * SOAP requests now start with a proper XML declaration.
310
311 * Added support for gzipped requests and responses (http://github.com/lucascs). While gzipped SOAP
312 responses are decoded automatically, you have to manually instruct Savon to gzip SOAP requests:
313
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
314 client = Savon::Client.new "http://example.com/UserService?wsdl", :gzip => true
9b5d3d6 @rubiii appreciate yard
rubiii authored
315
53934d9 @rubiii formatted changelog
rubiii authored
316 * Fix for [issue #51](https://github.com/rubiii/savon/issues/51). Added the :soap_endpoint option to
317 `Savon::Client.new` which lets you specify a SOAP endpoint per client instance:
9b5d3d6 @rubiii appreciate yard
rubiii authored
318
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
319 client = Savon::Client.new "http://example.com/UserService?wsdl",
320 :soap_endpoint => "http://localhost/UserService"
9b5d3d6 @rubiii appreciate yard
rubiii authored
321
53934d9 @rubiii formatted changelog
rubiii authored
322 * Fix for [issue #50](https://github.com/rubiii/savon/issues/50). Savon still escapes special characters
323 in SOAP request Hash values, but you can now append an exclamation mark to Hash keys specifying that
324 it's value should not be escaped.
9b5d3d6 @rubiii appreciate yard
rubiii authored
325
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
326 ## 0.7.6 (2010-03-21)
9b5d3d6 @rubiii appreciate yard
rubiii authored
327
328 * Moved documentation from the Github Wiki to the actual class files and established a much nicer
329 documentation combining examples and implementation (using Hanna) at: http://savon.rubiii.com
330
53934d9 @rubiii formatted changelog
rubiii authored
331 * Added `Savon::Client#call` as a workaround for dispatching calls to SOAP actions named after
332 existing methods. Fix for [issue #48](https://github.com/rubiii/savon/issues/48).
9b5d3d6 @rubiii appreciate yard
rubiii authored
333
53934d9 @rubiii formatted changelog
rubiii authored
334 * Add support for specifying attributes for duplicate tags (via Hash values as Arrays).
335 Fix for [issue #45](https://github.com/rubiii/savon/issues/45).
9b5d3d6 @rubiii appreciate yard
rubiii authored
336
53934d9 @rubiii formatted changelog
rubiii authored
337 * Fix for [issue #41](https://github.com/rubiii/savon/issues/41).
9b5d3d6 @rubiii appreciate yard
rubiii authored
338
53934d9 @rubiii formatted changelog
rubiii authored
339 * Fix for issues [#39](https://github.com/rubiii/savon/issues/39) and [#49](https://github.com/rubiii/savon/issues/49).
340 Added `Savon::SOAP#xml` which let's you specify completely custom SOAP request XML.
9b5d3d6 @rubiii appreciate yard
rubiii authored
341
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
342 ## 0.7.5 (2010-02-19)
9b5d3d6 @rubiii appreciate yard
rubiii authored
343
53934d9 @rubiii formatted changelog
rubiii authored
344 * Fix for [issue #34](https://github.com/rubiii/savon/issues/34).
9b5d3d6 @rubiii appreciate yard
rubiii authored
345
53934d9 @rubiii formatted changelog
rubiii authored
346 * Fix for [issue #36](https://github.com/rubiii/savon/issues/36).
9b5d3d6 @rubiii appreciate yard
rubiii authored
347
53934d9 @rubiii formatted changelog
rubiii authored
348 * Added feature requested in [issue #35](https://github.com/rubiii/savon/issues/35).
9b5d3d6 @rubiii appreciate yard
rubiii authored
349
350 * Changed the key for specifying the order of tags from :@inorder to :order!
351
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
352 ## 0.7.4 (2010-02-02)
9b5d3d6 @rubiii appreciate yard
rubiii authored
353
53934d9 @rubiii formatted changelog
rubiii authored
354 * Fix for [issue #33](https://github.com/rubiii/savon/issues/33).
9b5d3d6 @rubiii appreciate yard
rubiii authored
355
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
356 ## 0.7.3 (2010-01-31)
9b5d3d6 @rubiii appreciate yard
rubiii authored
357
358 * Added support for Geotrust-style WSDL documents (Julian Kornberger <github.corny@digineo.de>).
359
360 * Make HTTP requests include path and query only. This was breaking requests via proxy as scheme and host
361 were repeated (Adrian Mugnolo <adrian@mugnolo.com>)
362
363 * Avoid warning on 1.8.7 and 1.9.1 (Adrian Mugnolo <adrian@mugnolo.com>).
364
53934d9 @rubiii formatted changelog
rubiii authored
365 * Fix for [issue #29](https://github.com/rubiii/savon/issues/29).
366 Default to UTC to xs:dateTime value for WSSE authentication.
9b5d3d6 @rubiii appreciate yard
rubiii authored
367
53934d9 @rubiii formatted changelog
rubiii authored
368 * Fix for [issue #28](https://github.com/rubiii/savon/issues/28).
9b5d3d6 @rubiii appreciate yard
rubiii authored
369
53934d9 @rubiii formatted changelog
rubiii authored
370 * Fix for [issue #27](https://github.com/rubiii/savon/issues/27). The Content-Type now defaults to UTF-8.
9b5d3d6 @rubiii appreciate yard
rubiii authored
371
372 * Modification to allow assignment of an Array with an input name and an optional Hash of values to soap.input.
53934d9 @rubiii formatted changelog
rubiii authored
373 Patches [issue #30](https://github.com/rubiii/savon/issues/30) (stanleydrew <andrewmbenton@gmail.com>).
9b5d3d6 @rubiii appreciate yard
rubiii authored
374
53934d9 @rubiii formatted changelog
rubiii authored
375 * Fix for [issue #25](https://github.com/rubiii/savon/issues/25).
9b5d3d6 @rubiii appreciate yard
rubiii authored
376
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
377 ## 0.7.2 (2010-01-17)
9b5d3d6 @rubiii appreciate yard
rubiii authored
378
53934d9 @rubiii formatted changelog
rubiii authored
379 * Exposed the `Net::HTTP` response (added by Kevin Ingolfsland). Use the `http` accessor (`response.http`)
380 on your `Savon::Response` to access the `Net::HTTP` response object.
9b5d3d6 @rubiii appreciate yard
rubiii authored
381
53934d9 @rubiii formatted changelog
rubiii authored
382 * Fix for [issue #21](https://github.com/rubiii/savon/issues/21).
9b5d3d6 @rubiii appreciate yard
rubiii authored
383
53934d9 @rubiii formatted changelog
rubiii authored
384 * Fix for [issue #22](https://github.com/rubiii/savon/issues/22).
9b5d3d6 @rubiii appreciate yard
rubiii authored
385
53934d9 @rubiii formatted changelog
rubiii authored
386 * Fix for [issue #19](https://github.com/rubiii/savon/issues/19).
9b5d3d6 @rubiii appreciate yard
rubiii authored
387
53934d9 @rubiii formatted changelog
rubiii authored
388 * Added support for global header and namespaces. See [issue #9](https://github.com/rubiii/savon/issues/9).
9b5d3d6 @rubiii appreciate yard
rubiii authored
389
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
390 ## 0.7.1 (2010-01-10)
9b5d3d6 @rubiii appreciate yard
rubiii authored
391
53934d9 @rubiii formatted changelog
rubiii authored
392 * The Hash of HTTP headers for SOAP calls is now public via `Savon::Request#headers`.
393 Patch for [issue #8](https://github.com/rubiii/savon/issues/8).
9b5d3d6 @rubiii appreciate yard
rubiii authored
394
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
395 ## 0.7.0 (2010-01-09)
9b5d3d6 @rubiii appreciate yard
rubiii authored
396
397 This version comes with several changes to the public API!
398 Pay attention to the following list and read the updated Wiki: http://wiki.github.com/rubiii/savon
399
53934d9 @rubiii formatted changelog
rubiii authored
400 * Changed how `Savon::WSDL` can be disabled. Instead of disabling the WSDL globally/per request via two
401 different methods, you now simply append an exclamation mark (!) to your SOAP call: `client.get_all_users!`
9b5d3d6 @rubiii appreciate yard
rubiii authored
402 Make sure you know what you're doing because when the WSDL is disabled, Savon does not know about which
403 SOAP actions are valid and just dispatches everything.
404
53934d9 @rubiii formatted changelog
rubiii authored
405 * The `Net::HTTP` object used by `Savon::Request` to retrieve WSDL documents and execute SOAP calls is now public.
9b5d3d6 @rubiii appreciate yard
rubiii authored
406 While this makes the library even more flexible, it also comes with two major changes:
407
53934d9 @rubiii formatted changelog
rubiii authored
408 * SSL client authentication needs to be defined directly on the `Net::HTTP` object:
9b5d3d6 @rubiii appreciate yard
rubiii authored
409
410 client.request.http.client_cert = ...
411
412 I added a shortcut method for setting all options through a Hash similar to the previous implementation:
413
414 client.request.http.ssl_client_auth :client_cert => ...
415
53934d9 @rubiii formatted changelog
rubiii authored
416 * Open and read timeouts also need to be set on the `Net::HTTP` object:
9b5d3d6 @rubiii appreciate yard
rubiii authored
417
418 client.request.http.open_timeout = 30
419 client.request.http.read_timeout = 30
420
53934d9 @rubiii formatted changelog
rubiii authored
421 * Please refer to the `Net::HTTP` documentation for more details:
9b5d3d6 @rubiii appreciate yard
rubiii authored
422 http://www.ruby-doc.org/stdlib/libdoc/net/http/rdoc/index.html
423
424 * Thanks to JulianMorrison, Savon now supports HTTP basic authentication:
425
426 client.request.http.basic_auth "username", "password"
427
428 * Julian also added a way to explicitly specify the order of Hash keys and values, so you should now be able
429 to work with services requiring a specific order of input parameters while still using Hash input.
430
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
431 client.find_user { |soap| soap.body = { :name => "Lucy", :id => 666, :@inorder => [:id, :name] } }
9b5d3d6 @rubiii appreciate yard
rubiii authored
432
53934d9 @rubiii formatted changelog
rubiii authored
433 * `Savon::Response#to_hash` now returns the content inside of "soap:Body" instead of trying to go one
9b5d3d6 @rubiii appreciate yard
rubiii authored
434 level deeper and return it's content. The previous implementation only worked when the "soap:Body" element
53934d9 @rubiii formatted changelog
rubiii authored
435 contained a single child. See [issue #17](https://github.com/rubiii/savon/issues/17).
9b5d3d6 @rubiii appreciate yard
rubiii authored
436
53934d9 @rubiii formatted changelog
rubiii authored
437 * Added `Savon::SOAP#namespace` as a shortcut for setting the "xmlns:wsdl" namespace.
9b5d3d6 @rubiii appreciate yard
rubiii authored
438
439 soap.namespace = "http://example.com"
440
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
441 ## 0.6.8 (2010-01-01)
9b5d3d6 @rubiii appreciate yard
rubiii authored
442
443 * Improved specifications for various kinds of WSDL documents.
444
445 * Added support for SOAP endpoints which are different than the WSDL endpoint of a service.
446
447 * Changed how SOAP actions and inputs are retrieved from the WSDL documents. This might break a few existing
448 implementations, but makes Savon work well with even more services. If this change breaks your implementation,
53934d9 @rubiii formatted changelog
rubiii authored
449 please take a look at the `action` and `input` methods of the `Savon::SOAP` object.
9b5d3d6 @rubiii appreciate yard
rubiii authored
450 One specific problem I know of is working with the createsend WSDL and its namespaced actions.
451
452 To make it work, call the SOAP action without namespace and specify the input manually:
453
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
454 client.get_api_key { |soap| soap.input = "User.GetApiKey" }
9b5d3d6 @rubiii appreciate yard
rubiii authored
455
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
456 ## 0.6.7 (2009-12-18)
9b5d3d6 @rubiii appreciate yard
rubiii authored
457
458 * Implemented support for a proxy server. The proxy URI can be set through an optional Hash of options passed
53934d9 @rubiii formatted changelog
rubiii authored
459 to instantiating `Savon::Client` (Dave Woodward <dave@futuremint.com>)
9b5d3d6 @rubiii appreciate yard
rubiii authored
460
461 * Implemented support for SSL client authentication. Settings can be set through an optional Hash of arguments
53934d9 @rubiii formatted changelog
rubiii authored
462 passed to instantiating `Savon::Client` (colonhyphenp)
9b5d3d6 @rubiii appreciate yard
rubiii authored
463
53934d9 @rubiii formatted changelog
rubiii authored
464 * Patch for [issue #10](https://github.com/rubiii/savon/issues/10).
9b5d3d6 @rubiii appreciate yard
rubiii authored
465
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
466 ## 0.6.6 (2009-12-14)
9b5d3d6 @rubiii appreciate yard
rubiii authored
467
468 * Default to use the name of the SOAP action (the method called in a client) in lowerCamelCase for SOAP action
469 and input when Savon::WSDL is disabled. You still need to specify soap.action and maybe soap.input in case
470 your SOAP actions are named any different.
471
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
472 ## 0.6.5 (2009-12-13)
9b5d3d6 @rubiii appreciate yard
rubiii authored
473
53934d9 @rubiii formatted changelog
rubiii authored
474 * Added an `open_timeout` method to `Savon::Request`.
9b5d3d6 @rubiii appreciate yard
rubiii authored
475
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
476 ## 0.6.4 (2009-12-13)
9b5d3d6 @rubiii appreciate yard
rubiii authored
477
478 * Refactored specs to be less unit-like.
479
53934d9 @rubiii formatted changelog
rubiii authored
480 * Added a getter for the `Savon::Request` to `Savon::Client` and a `read_timeout` setter for HTTP requests.
9b5d3d6 @rubiii appreciate yard
rubiii authored
481
53934d9 @rubiii formatted changelog
rubiii authored
482 * `wsdl.soap_actions` now returns an Array of SOAP actions. For the previous "mapping" please use `wsdl.operations`.
9b5d3d6 @rubiii appreciate yard
rubiii authored
483
484 * Replaced WSDL document with stream parsing.
485
486 Benchmarks (1000 SOAP calls):
487
488 user system total real
489 0.6.4 72.180000 8.280000 80.460000 (750.799011)
490 0.6.3 192.900000 19.630000 212.530000 (914.031865)
491
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
492 ## 0.6.3 (2009-12-11)
9b5d3d6 @rubiii appreciate yard
rubiii authored
493
494 * Removing 2 ruby deprecation warnings for parenthesized arguments. (Dave Woodward <dave@futuremint.com>)
495
53934d9 @rubiii formatted changelog
rubiii authored
496 * Added global and per request options for disabling `Savon::WSDL`.
9b5d3d6 @rubiii appreciate yard
rubiii authored
497
498 Benchmarks (1000 SOAP calls):
499
500 user system total real
501 WSDL 192.900000 19.630000 212.530000 (914.031865)
502 disabled WSDL 5.680000 1.340000 7.020000 (298.265318)
503
504 * Improved XPath expressions for parsing the WSDL document.
505
506 Benchmarks (1000 SOAP calls):
507
508 user system total real
509 0.6.3 192.900000 19.630000 212.530000 (914.031865)
510 0.6.2 574.720000 78.380000 653.100000 (1387.778539)
511
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
512 ## 0.6.2 (2009-12-06)
9b5d3d6 @rubiii appreciate yard
rubiii authored
513
514 * Added support for changing the name of the SOAP input node.
515
516 * Added a CHANGELOG.
517
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
518 ## 0.6.1 (2009-12-06)
9b5d3d6 @rubiii appreciate yard
rubiii authored
519
520 * Fixed a problem with WSSE credentials, where every request contained a WSSE authentication header.
521
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
522 ## 0.6.0 (2009-12-06)
9b5d3d6 @rubiii appreciate yard
rubiii authored
523
53934d9 @rubiii formatted changelog
rubiii authored
524 * `method_missing` now yields the SOAP and WSSE objects to a given block.
9b5d3d6 @rubiii appreciate yard
rubiii authored
525
53934d9 @rubiii formatted changelog
rubiii authored
526 * The response_process (which previously was a block passed to method_missing) was replaced by `Savon::Response`.
9b5d3d6 @rubiii appreciate yard
rubiii authored
527
528 * Improved SOAP action handling (another problem that came up with issue #1).
529
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
530 ## 0.5.3 (2009-11-30)
9b5d3d6 @rubiii appreciate yard
rubiii authored
531
53934d9 @rubiii formatted changelog
rubiii authored
532 * Patch for [issue #2](https://github.com/rubiii/savon/issues/2).
9b5d3d6 @rubiii appreciate yard
rubiii authored
533
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
534 ## 0.5.2 (2009-11-30)
9b5d3d6 @rubiii appreciate yard
rubiii authored
535
53934d9 @rubiii formatted changelog
rubiii authored
536 * Patch for [issue #1](https://github.com/rubiii/savon/issues/1).
9b5d3d6 @rubiii appreciate yard
rubiii authored
537
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
538 ## 0.5.1 (2009-11-29)
9b5d3d6 @rubiii appreciate yard
rubiii authored
539
540 * Optimized default response process.
541
542 * Added WSSE settings via defaults.
543
544 * Added SOAP fault and HTTP error handling.
545
546 * Improved documentation
547
548 * Added specs
549
e187549 @rubiii replaced HTTP request-specific code with using the HTTPI gem.
rubiii authored
550 ## 0.5.0 (2009-11-29)
9b5d3d6 @rubiii appreciate yard
rubiii authored
551
552 * Complete rewrite and public release.
Something went wrong with that request. Please try again.