savon 0.8.0 → 0.8.1

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.
data/CHANGELOG.md CHANGED
@@ -1,11 +1,19 @@
1
- ## 0.8.0.beta.5 (UPCOMING)
1
+ ## 0.8.1
2
2
 
3
- * Added `Savon::SOAP::XML#env_namespace` ([bac4b4](https://github.com/rubiii/savon/commit/bac4b4)) to configure
3
+ * Update to depend on HTTPI v0.7.5 which comes with a fallback to use Net::HTTP when no other adapter could be required.
4
+
5
+ * Fix for [issue #72](https://github.com/rubiii/savon/issues/72) ([22074a8](https://github.com/rubiii/savon/commit/22074a8)).
6
+
7
+ * Loosen dependency on builder. Should be quite stable.
8
+
9
+ ## 0.8.0 (2010-12-20)
10
+
11
+ * Added `Savon::SOAP::XML#env_namespace` ([51fa0e](https://github.com/rubiii/savon/commit/51fa0e)) to configure
4
12
  the SOAP envelope namespace. It defaults to :env but can also be set to an empty String for SOAP envelope
5
13
  tags without a namespace.
6
14
 
7
15
  * Replaced quite a lot of core extensions by moving the Hash to XML translation into a new gem called
8
- [Gyoku](http://rubygems.org/gems/gyoku) ([51fa0e](https://github.com/rubiii/savon/commit/51fa0e)).
16
+ [Gyoku](http://rubygems.org/gems/gyoku) ([bac4b4](https://github.com/rubiii/savon/commit/bac4b4)).
9
17
 
10
18
  ## 0.8.0.beta.4 (2010-11-20)
11
19
 
data/lib/savon/client.rb CHANGED
@@ -75,7 +75,9 @@ module Savon
75
75
  process &block if block
76
76
  soap.wsse = wsse
77
77
 
78
- SOAP::Request.new(http, soap).response
78
+ response = SOAP::Request.new(http, soap).response
79
+ set_cookie response.http.headers
80
+ response
79
81
  end
80
82
 
81
83
  private
@@ -86,6 +88,11 @@ module Savon
86
88
  # Accessor for the original self of a given block.
87
89
  attr_accessor :original_self
88
90
 
91
+ # Passes a cookie from the last request +headers+ to the next one.
92
+ def set_cookie(headers)
93
+ http.headers["Cookie"] = headers["Set-Cookie"] if headers["Set-Cookie"]
94
+ end
95
+
89
96
  # Expects an Array of +args+ and returns an Array containing the namespace (might be +nil+),
90
97
  # the SOAP input and a Hash of attributes for the input tag (which might be empty).
91
98
  def extract_options(args)
data/lib/savon/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Savon
2
2
 
3
- Version = "0.8.0"
3
+ Version = "0.8.1"
4
4
 
5
5
  end
data/savon.gemspec CHANGED
@@ -14,10 +14,10 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.rubyforge_project = s.name
16
16
 
17
- s.add_dependency "builder", "~> 2.1.2"
17
+ s.add_dependency "builder", ">= 2.1.2"
18
18
  s.add_dependency "crack", "~> 0.1.8"
19
- s.add_dependency "httpi", ">= 0.7.4"
20
- s.add_dependency "gyoku", ">= 0.1.0"
19
+ s.add_dependency "httpi", ">= 0.7.5"
20
+ s.add_dependency "gyoku", ">= 0.1.1"
21
21
 
22
22
  s.add_development_dependency "rspec", "~> 2.0.0"
23
23
  s.add_development_dependency "autotest"
@@ -185,6 +185,29 @@ describe Savon::Client do
185
185
  client.request(:authenticate) { wsdl.should be_a(Savon::WSDL::Document) }
186
186
  end
187
187
  end
188
+
189
+ it "should not set the Cookie header for the next request" do
190
+ client.http.headers.expects(:[]=).with("Cookie", anything).never
191
+ client.http.headers.stubs(:[]=).with("SOAPAction", '"authenticate"')
192
+ client.http.headers.stubs(:[]=).with("Content-Type", "text/xml;charset=UTF-8")
193
+
194
+ client.request :authenticate
195
+ end
196
+ end
197
+
198
+ context "#request with a Set-Cookie response header" do
199
+ before do
200
+ HTTPI.stubs(:get).returns(new_response(:body => Fixture.wsdl(:authentication)))
201
+ HTTPI.stubs(:post).returns(new_response(:headers => { "Set-Cookie" => "some-cookie" }))
202
+ end
203
+
204
+ it "should set the Cookie header for the next request" do
205
+ client.http.headers.expects(:[]=).with("Cookie", "some-cookie")
206
+ client.http.headers.stubs(:[]=).with("SOAPAction", '"authenticate"')
207
+ client.http.headers.stubs(:[]=).with("Content-Type", "text/xml;charset=UTF-8")
208
+
209
+ client.request :authenticate
210
+ end
188
211
  end
189
212
 
190
213
  context "with a remote WSDL document" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: savon
3
3
  version: !ruby/object:Gem::Version
4
- hash: 63
4
+ hash: 61
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 8
9
- - 0
10
- version: 0.8.0
9
+ - 1
10
+ version: 0.8.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Daniel Harrington
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-20 00:00:00 +01:00
18
+ date: 2010-12-22 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -24,7 +24,7 @@ dependencies:
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ~>
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  hash: 15
30
30
  segments:
@@ -58,12 +58,12 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- hash: 11
61
+ hash: 9
62
62
  segments:
63
63
  - 0
64
64
  - 7
65
- - 4
66
- version: 0.7.4
65
+ - 5
66
+ version: 0.7.5
67
67
  type: :runtime
68
68
  version_requirements: *id003
69
69
  - !ruby/object:Gem::Dependency
@@ -74,12 +74,12 @@ dependencies:
74
74
  requirements:
75
75
  - - ">="
76
76
  - !ruby/object:Gem::Version
77
- hash: 27
77
+ hash: 25
78
78
  segments:
79
79
  - 0
80
80
  - 1
81
- - 0
82
- version: 0.1.0
81
+ - 1
82
+ version: 0.1.1
83
83
  type: :runtime
84
84
  version_requirements: *id004
85
85
  - !ruby/object:Gem::Dependency