Changelog History
Page 4
-
v0.9.12 Changes
June 07, 2012๐ฒ Re-added the log method setters to the new config object for backwards compatibility. You should be able to configure the logger as you used to do.
Savon.configure do |config| config.log = false # disable logging config.log_level = :info # changing the log level config.logger = Rails.logger # using the Rails logger end
-
v0.9.11 Changes
June 06, 2012๐ Feature: #264 - Thanks to @hoverlover, Savon and Akami now support signed messages through WSSE.
๐ Fix: #275 - Add namespaces to keys in both the SOAP body hash as well as any keys specified in a :order! Array instead of having to define them manually.
๐ Fix: #257 - Add ability to accept and send multiple cookies.
๐ Improvement: #277 automatically namespace the SOAP input tag. Here's an example from the pull request:
client.request :authenticate
Note the automatic namespace identifier on the authenticate element, as well as the proper namespace inclusion in the document:
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://v1_0.ws.auth.order.example.com/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <tns:authenticate> <tns:user>username</tns:user> <tns:password>password</tns:password> </tns:authenticate> </env:Envelope>
-
v0.9.10 Changes
June 06, 2012๐ Feature: #289 - Allow the SOAP envelope header to be set as a String.
๐ Feature: In addition to the global configuration, there's now also one configuration per client. The global config is cloned when a new client is initialized and gets used instead of the global one. In addition, for
Savon::Model
classes, the config is cloned per class.Closes #84 by allowing one logger per client and #270 by allowing to specify error handling per client.
๐ Feature: Added an option to pretty print XML in log messages. Closes #256 and #280.
# global Savon.configure do |config| config.pretty_print_xml = true end # per client client.config.pretty_print_xml = true
๐จ Refactoring:
- Added
Savon.client
as a shortcut for creating a newSavon::Client
- Changed
Savon::Config
from a module to a class. - Moved logging to the new
Savon::Logger
object. - Removed the
blank?
extension fromObject
.
- Added
-
v0.9.9 Changes
February 17, 2012๐ Improvement: pull request 255 - Raise an error if fetching a remote WSDL fails. Possible fix for issue 236.
๐ Improvement: The value for elementFormDefault (:unqualified, :qualified) can now be specified when creating a
Savon::Client
. For example:Savon::Client.new do wsdl.element_form_default = :unqualified end
๐ Improvement: pull request 263 - The SOAP action can now be set via a
:soap_action
key passed to the#request
method.client.request(:get_user, :soap_action => :test_action)
๐ Fix: pull request 265 - Fixes gemspec problems when bundling under JRuby 1.6.5. Also fixes issue 267.
-
v0.9.8 Changes
February 15, 2012๐ Feature: Savon now ships with Savon::Model. Savon::Model is a lightweight DSL to be used inside your domain models. It's been refactored and is now even more useful than before.
๐ Feature: Merged pull request 230 to allow filtering values in logged SOAP request XML messages.
Savon.configure do |config| config.log_filter = ["password"] end
๐ Feature: Added an option to change the default encoding of the XML directive tag (defaults to UTF-8) to fix issue 234.
client.request(:find_user) do soap.encoding = "UTF-16" soap.body = { :id => 1 } end
๐ Improvement: Merged pull request 231 to gracefully handle invalid response bodies by throwing a
Savon::SOAP::InvalidResponseError
.๐ Fix: issue 237 - Set the Content-Type and Content-Length headers for every request.
๐ Fix: pull request 250 - The Content-Length header should be the size in bytes.
-
v0.9.7 Changes
August 25, 2011๐ Feature: Merged pull request 210 by mboeh to add
Savon::SOAP::Response#doc
andSavon::SOAP::Response#xpath
.๐ Feature: Merged pull request 211 by mattkirman to fix issue 202.
๐ Feature: You can now pass a block to
Savon::SOAP::XML#body
and use Builder to create the XML:client.request(:find) do soap.body do |xml| xml.user do xml.id 601173 end end end
๐ Fix: issue 218 - Savon now correctly handles namespaced Array items in a Hash passed to
Savon::SOAP::XML#body=
.๐ Fix: Merged pull request 212 to fix savon_spec issue 2.
๐ Improvement: issue 222 - Set the Content-Length header.
-
v0.9.6 Changes
July 07, 2011๐ Improvement/Fix: Updated Savon to use the latest version of Wasabi. This should fix issue 155 - Savon can automatically add namespaces to SOAP requests based on the WSDL. Users shouldn't need to do anything differently or even notice whether their WSDL hits this case; the intention is that this will "Just Work" and follow the WSDL. The SOAP details are that if elementFormDefault is specified as qualified, Savon will automatically prepend the correct XML namespaces to the elements in a SOAP request. Thanks to jkingdon for this.
๐ Fix: issue 143 - Updating Wasabi should solve this issue.
-
v0.9.5 Changes
July 03, 2011- ๐จ Refactoring: Extracted WSSE authentication out into the akami gem.
-
v0.9.4 Changes
July 03, 2011- ๐จ Refactoring: Extracted the WSDL parser out into the wasabi gem. This should isolate upcoming improvements to the parser.
-
v0.9.3 Changes
June 30, 2011๐ Fix: issue 138 - Savon now supports setting a global SOAP header via
Savon.soap_header=
.๐ Fixed the namespace for wsse message timestamps from
wsse:Timestamp
towsu:Timestamp
as required by the specification.๐ Change: Removed support for NTLM authentication until it's stable. If you need it, you can still add the following line to your Gemfile:
gem "httpi", "0.9.4"
๐จ Refactoring:
Hash#map_soap_response
and some of its helpers are moved to Nori v1.0.0. Along with replacing core extensions with a proper implementation, Nori now contains a number of methods for configuring its default behavior:- The option whether to strip namespaces was moved to Nori.strip_namespaces
- You can disable "advanced typecasting" for SOAP response values
- And you can configure how SOAP response keys should be converted
Savon::SOAP::XML.to_hash
,Savon::SOAP::XML.parse
andSavon::SOAP::XML.to_array
are gone. It wasn't worth keeping them around, because they didn't do much. You can simply parse a SOAP response and translate it to a Savon SOAP response Hash via:Nori.parse(xml)[:envelope][:body]
Savon::SOAP::Response#basic_hash
is nowSavon::SOAP::Response#hash
.