httpi 0.7.2 → 0.7.3
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/httpi.gemspec +2 -0
- data/lib/httpi/adapter/httpclient.rb +1 -1
- data/lib/httpi/adapter/net_http.rb +3 -2
- data/lib/httpi/request.rb +5 -2
- data/lib/httpi/response.rb +2 -1
- data/lib/httpi/version.rb +1 -1
- data/spec/integration/request_spec.rb +6 -0
- metadata +28 -14
data/httpi.gemspec
CHANGED
@@ -106,9 +106,10 @@ module HTTPI
|
|
106
106
|
end
|
107
107
|
|
108
108
|
def respond_with(response)
|
109
|
-
|
109
|
+
headers = response.to_hash
|
110
|
+
headers.each {|k,v| headers[k] = v[0]}
|
111
|
+
Response.new response.code, headers, response.body
|
110
112
|
end
|
111
|
-
|
112
113
|
end
|
113
114
|
end
|
114
115
|
end
|
data/lib/httpi/request.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "uri"
|
2
2
|
require "httpi/auth/config"
|
3
|
+
require "rack/utils"
|
3
4
|
|
4
5
|
module HTTPI
|
5
6
|
|
@@ -47,11 +48,13 @@ module HTTPI
|
|
47
48
|
|
48
49
|
# Returns a Hash of HTTP headers. Defaults to return an empty Hash.
|
49
50
|
def headers
|
50
|
-
@headers ||=
|
51
|
+
@headers ||= Rack::Utils::HeaderHash.new
|
51
52
|
end
|
52
53
|
|
53
54
|
# Sets the Hash of HTTP headers.
|
54
|
-
|
55
|
+
def headers=(headers)
|
56
|
+
@headers = Rack::Utils::HeaderHash.new(headers)
|
57
|
+
end
|
55
58
|
|
56
59
|
# Adds a header information to accept gzipped content.
|
57
60
|
def gzip
|
data/lib/httpi/response.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "zlib"
|
2
2
|
require "stringio"
|
3
3
|
require "httpi/dime"
|
4
|
+
require "rack/utils"
|
4
5
|
|
5
6
|
module HTTPI
|
6
7
|
|
@@ -15,7 +16,7 @@ module HTTPI
|
|
15
16
|
# Initializer expects an HTTP response +code+, +headers+ and +body+.
|
16
17
|
def initialize(code, headers, body)
|
17
18
|
self.code = code.to_i
|
18
|
-
self.headers = headers
|
19
|
+
self.headers = Rack::Utils::HeaderHash.new(headers)
|
19
20
|
self.raw_body = body
|
20
21
|
end
|
21
22
|
|
data/lib/httpi/version.rb
CHANGED
@@ -16,32 +16,38 @@ describe HTTPI do
|
|
16
16
|
@username = @password = "user1"
|
17
17
|
@error_message = "Authorization Required"
|
18
18
|
@example_web_page = "Example Web Page"
|
19
|
+
@content_type = "text/html"
|
19
20
|
end
|
20
21
|
|
21
22
|
shared_examples_for "an HTTP client" do
|
22
23
|
it "and execute an HTTP GET request" do
|
23
24
|
response = HTTPI.get "http://example.com", adapter
|
24
25
|
response.body.should include(@example_web_page)
|
26
|
+
response.headers["Content-Type"].should include(@content_type)
|
25
27
|
end
|
26
28
|
|
27
29
|
it "and execute an HTTP POST request" do
|
28
30
|
response = HTTPI.post "http://example.com", "<some>xml</some>", adapter
|
29
31
|
response.body.should include(@example_web_page)
|
32
|
+
response.headers["Content-Type"].should include(@content_type)
|
30
33
|
end
|
31
34
|
|
32
35
|
it "and execute an HTTP HEAD request" do
|
33
36
|
response = HTTPI.head "http://example.com", adapter
|
34
37
|
response.code.should == 200
|
38
|
+
response.headers["Content-Type"].should include(@content_type)
|
35
39
|
end
|
36
40
|
|
37
41
|
it "and execute an HTTP PUT request" do
|
38
42
|
response = HTTPI.put "http://example.com", "<some>xml</some>", adapter
|
39
43
|
response.body.should include("PUT is not allowed")
|
44
|
+
response.headers["Content-Type"].should include(@content_type)
|
40
45
|
end
|
41
46
|
|
42
47
|
it "and execute an HTTP DELETE request" do
|
43
48
|
response = HTTPI.delete "http://example.com", adapter
|
44
49
|
response.body.should include("DELETE is not allowed")
|
50
|
+
response.headers["Content-Type"].should include(@content_type)
|
45
51
|
end
|
46
52
|
end
|
47
53
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: httpi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 7
|
9
|
-
-
|
10
|
-
version: 0.7.
|
9
|
+
- 3
|
10
|
+
version: 0.7.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Daniel Harrington
|
@@ -16,13 +16,27 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-12-
|
19
|
+
date: 2010-12-10 00:00:00 +01:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
|
-
name:
|
23
|
+
name: rack
|
24
24
|
prerelease: false
|
25
25
|
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 3
|
31
|
+
segments:
|
32
|
+
- 0
|
33
|
+
version: "0"
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: httpclient
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
26
40
|
none: false
|
27
41
|
requirements:
|
28
42
|
- - ~>
|
@@ -34,11 +48,11 @@ dependencies:
|
|
34
48
|
- 5
|
35
49
|
version: 2.1.5
|
36
50
|
type: :development
|
37
|
-
version_requirements: *
|
51
|
+
version_requirements: *id002
|
38
52
|
- !ruby/object:Gem::Dependency
|
39
53
|
name: curb
|
40
54
|
prerelease: false
|
41
|
-
requirement: &
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
42
56
|
none: false
|
43
57
|
requirements:
|
44
58
|
- - ~>
|
@@ -50,11 +64,11 @@ dependencies:
|
|
50
64
|
- 8
|
51
65
|
version: 0.7.8
|
52
66
|
type: :development
|
53
|
-
version_requirements: *
|
67
|
+
version_requirements: *id003
|
54
68
|
- !ruby/object:Gem::Dependency
|
55
69
|
name: rspec
|
56
70
|
prerelease: false
|
57
|
-
requirement: &
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
58
72
|
none: false
|
59
73
|
requirements:
|
60
74
|
- - "="
|
@@ -66,11 +80,11 @@ dependencies:
|
|
66
80
|
- 0
|
67
81
|
version: 2.0.0
|
68
82
|
type: :development
|
69
|
-
version_requirements: *
|
83
|
+
version_requirements: *id004
|
70
84
|
- !ruby/object:Gem::Dependency
|
71
85
|
name: mocha
|
72
86
|
prerelease: false
|
73
|
-
requirement: &
|
87
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
74
88
|
none: false
|
75
89
|
requirements:
|
76
90
|
- - ~>
|
@@ -82,11 +96,11 @@ dependencies:
|
|
82
96
|
- 9
|
83
97
|
version: 0.9.9
|
84
98
|
type: :development
|
85
|
-
version_requirements: *
|
99
|
+
version_requirements: *id005
|
86
100
|
- !ruby/object:Gem::Dependency
|
87
101
|
name: webmock
|
88
102
|
prerelease: false
|
89
|
-
requirement: &
|
103
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
90
104
|
none: false
|
91
105
|
requirements:
|
92
106
|
- - ~>
|
@@ -98,7 +112,7 @@ dependencies:
|
|
98
112
|
- 0
|
99
113
|
version: 1.4.0
|
100
114
|
type: :development
|
101
|
-
version_requirements: *
|
115
|
+
version_requirements: *id006
|
102
116
|
description: HTTPI provides a common interface for Ruby HTTP libraries.
|
103
117
|
email: me@rubiii.com
|
104
118
|
executables: []
|