savon 0.7.0 → 0.7.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 +4 -0
- data/lib/savon/request.rb +14 -4
- data/spec/savon/request_spec.rb +11 -0
- metadata +2 -2
data/CHANGELOG
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
== 0.7.1 (2010-01-10)
|
2
|
+
* The Hash of HTTP headers for SOAP calls is now public via Savon::Request#headers.
|
3
|
+
Patch for: http://github.com/rubiii/savon/issues/#issue/8
|
4
|
+
|
1
5
|
== 0.7.0 (2010-01-09)
|
2
6
|
This version comes with several changes to the public API!
|
3
7
|
Pay attention to the following list and read the updated Wiki: http://wiki.github.com/rubiii/savon
|
data/lib/savon/request.rb
CHANGED
@@ -60,6 +60,16 @@ module Savon
|
|
60
60
|
# Returns the proxy URI.
|
61
61
|
attr_reader :proxy
|
62
62
|
|
63
|
+
# Returns the HTTP headers for a SOAP request.
|
64
|
+
def headers
|
65
|
+
@headers ||= {}
|
66
|
+
end
|
67
|
+
|
68
|
+
# Sets the HTTP headers for a SOAP request.
|
69
|
+
def headers=(headers)
|
70
|
+
@headers = headers if headers.kind_of? Hash
|
71
|
+
end
|
72
|
+
|
63
73
|
# Sets the +username+ and +password+ for HTTP basic authentication.
|
64
74
|
def basic_auth(username, password)
|
65
75
|
@basic_auth = [username, password]
|
@@ -98,7 +108,7 @@ module Savon
|
|
98
108
|
# Logs the SOAP request.
|
99
109
|
def log_request
|
100
110
|
log "SOAP request: #{@soap.endpoint}"
|
101
|
-
log
|
111
|
+
log headers.merge(soap_headers).map { |key, value| "#{key}: #{value}" }.join(", ")
|
102
112
|
log @soap.to_xml
|
103
113
|
end
|
104
114
|
|
@@ -113,7 +123,7 @@ module Savon
|
|
113
123
|
def request(type)
|
114
124
|
request = case type
|
115
125
|
when :wsdl then Net::HTTP::Get.new wsdl_endpoint
|
116
|
-
when :soap then Net::HTTP::Post.new @soap.endpoint.path,
|
126
|
+
when :soap then Net::HTTP::Post.new @soap.endpoint.path, headers.merge(soap_headers)
|
117
127
|
end
|
118
128
|
request.basic_auth *@basic_auth if @basic_auth
|
119
129
|
yield request if block_given?
|
@@ -126,8 +136,8 @@ module Savon
|
|
126
136
|
"#{@endpoint.path}?#{@endpoint.query}"
|
127
137
|
end
|
128
138
|
|
129
|
-
# Returns a Hash containing the
|
130
|
-
def
|
139
|
+
# Returns a Hash containing the SOAP headers for an HTTP request.
|
140
|
+
def soap_headers
|
131
141
|
{ "Content-Type" => ContentType[@soap.version], "SOAPAction" => @soap.action }
|
132
142
|
end
|
133
143
|
|
data/spec/savon/request_spec.rb
CHANGED
@@ -51,6 +51,17 @@ describe Savon::Request do
|
|
51
51
|
@request.proxy.should == URI("")
|
52
52
|
end
|
53
53
|
|
54
|
+
it "should have a getter for the HTTP headers which defaults to an empty Hash" do
|
55
|
+
@request.headers.should == {}
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should have a setter for the HTTP headers" do
|
59
|
+
headers = { "some" => "thing" }
|
60
|
+
|
61
|
+
@request.headers = headers
|
62
|
+
@request.headers.should == headers
|
63
|
+
end
|
64
|
+
|
54
65
|
it "should return the Net::HTTP object" do
|
55
66
|
@request.http.should be_kind_of(Net::HTTP)
|
56
67
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: savon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Harrington
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-10 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|