httpi 0.6.0 → 0.6.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/.gitignore +9 -0
- data/README.md +4 -4
- data/httpi.gemspec +26 -0
- data/lib/httpi/adapter/curb.rb +28 -1
- data/lib/httpi/adapter/httpclient.rb +1 -1
- data/lib/httpi/version.rb +1 -1
- data/spec/httpi/adapter/curb_spec.rb +5 -5
- data/spec/httpi/httpi_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- metadata +19 -18
- data/Gemfile.lock +0 -40
data/.gitignore
ADDED
data/README.md
CHANGED
@@ -121,6 +121,10 @@ HTTPI::Auth
|
|
121
121
|
request = HTTPI::Request.new
|
122
122
|
request.auth.basic "username", "password"
|
123
123
|
|
124
|
+
### TODO
|
125
|
+
|
126
|
+
* Add support for NTLM authentication
|
127
|
+
|
124
128
|
HTTPI::Auth::SSL
|
125
129
|
----------------
|
126
130
|
|
@@ -138,10 +142,6 @@ HTTPI::Auth::SSL
|
|
138
142
|
request.auth.ssl.cert_file = "client_cert.pem"
|
139
143
|
request.auth.ssl.verify_mode = :none
|
140
144
|
|
141
|
-
### TODO
|
142
|
-
|
143
|
-
* Add support for NTLM authentication
|
144
|
-
|
145
145
|
HTTPI::Adapter
|
146
146
|
--------------
|
147
147
|
|
data/httpi.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
lib = File.expand_path("../lib/", __FILE__)
|
2
|
+
$:.unshift lib unless $:.include?(lib)
|
3
|
+
|
4
|
+
require "httpi/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "httpi"
|
8
|
+
s.version = HTTPI::VERSION
|
9
|
+
s.authors = ["Daniel Harrington", "Martin Tepper"]
|
10
|
+
s.email = "me@rubiii.com"
|
11
|
+
s.homepage = "http://github.com/rubiii/#{s.name}"
|
12
|
+
s.summary = "Interface for Ruby HTTP libraries"
|
13
|
+
s.description = "HTTPI provides a common interface for Ruby HTTP libraries."
|
14
|
+
|
15
|
+
s.rubyforge_project = s.name
|
16
|
+
|
17
|
+
s.add_development_dependency "httpclient", "~> 2.1.5"
|
18
|
+
s.add_development_dependency "curb", "~> 0.7.8"
|
19
|
+
|
20
|
+
s.add_development_dependency "rspec", "2.0.0"
|
21
|
+
s.add_development_dependency "mocha", "~> 0.9.9"
|
22
|
+
s.add_development_dependency "webmock", "~> 1.4.0"
|
23
|
+
|
24
|
+
s.files = `git ls-files`.split("\n")
|
25
|
+
s.require_path = "lib"
|
26
|
+
end
|
data/lib/httpi/adapter/curb.rb
CHANGED
@@ -85,7 +85,34 @@ module HTTPI
|
|
85
85
|
end
|
86
86
|
|
87
87
|
def respond_with(client)
|
88
|
-
|
88
|
+
status, headers = parse_header_string(client.header_str)
|
89
|
+
Response.new client.response_code, headers, client.body_str
|
90
|
+
end
|
91
|
+
|
92
|
+
# Borrowed from Webmock's Curb adapter:
|
93
|
+
# http://github.com/bblimke/webmock/blob/master/lib/webmock/http_lib_adapters/curb.rb
|
94
|
+
def parse_header_string(header_string)
|
95
|
+
status, headers = nil, {}
|
96
|
+
return [status, headers] unless header_string
|
97
|
+
|
98
|
+
header_string.split(/\r\n/).each do |header|
|
99
|
+
if header =~ %r|^HTTP/1.[01] \d\d\d (.*)|
|
100
|
+
status = $1
|
101
|
+
else
|
102
|
+
parts = header.split(':', 2)
|
103
|
+
unless parts.empty?
|
104
|
+
parts[1].strip! unless parts[1].nil?
|
105
|
+
if headers.has_key?(parts[0])
|
106
|
+
headers[parts[0]] = [headers[parts[0]]] unless headers[parts[0]].kind_of? Array
|
107
|
+
headers[parts[0]] << parts[1]
|
108
|
+
else
|
109
|
+
headers[parts[0]] = parts[1]
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
[status, headers]
|
89
116
|
end
|
90
117
|
|
91
118
|
end
|
data/lib/httpi/version.rb
CHANGED
@@ -19,7 +19,7 @@ describe HTTPI::Adapter::Curb do
|
|
19
19
|
before do
|
20
20
|
curb.expects(:http_get)
|
21
21
|
curb.expects(:response_code).returns(200)
|
22
|
-
curb.expects(:
|
22
|
+
curb.expects(:header_str).returns("")
|
23
23
|
curb.expects(:body_str).returns(Fixture.xml)
|
24
24
|
end
|
25
25
|
|
@@ -32,7 +32,7 @@ describe HTTPI::Adapter::Curb do
|
|
32
32
|
before do
|
33
33
|
curb.expects(:http_post)
|
34
34
|
curb.expects(:response_code).returns(200)
|
35
|
-
curb.expects(:
|
35
|
+
curb.expects(:header_str).returns("")
|
36
36
|
curb.expects(:body_str).returns(Fixture.xml)
|
37
37
|
end
|
38
38
|
|
@@ -45,7 +45,7 @@ describe HTTPI::Adapter::Curb do
|
|
45
45
|
before do
|
46
46
|
curb.expects(:http_head)
|
47
47
|
curb.expects(:response_code).returns(200)
|
48
|
-
curb.expects(:
|
48
|
+
curb.expects(:header_str).returns("")
|
49
49
|
curb.expects(:body_str).returns(Fixture.xml)
|
50
50
|
end
|
51
51
|
|
@@ -58,7 +58,7 @@ describe HTTPI::Adapter::Curb do
|
|
58
58
|
before do
|
59
59
|
curb.expects(:http_put)
|
60
60
|
curb.expects(:response_code).returns(200)
|
61
|
-
curb.expects(:
|
61
|
+
curb.expects(:header_str).returns("")
|
62
62
|
curb.expects(:body_str).returns(Fixture.xml)
|
63
63
|
end
|
64
64
|
|
@@ -71,7 +71,7 @@ describe HTTPI::Adapter::Curb do
|
|
71
71
|
before do
|
72
72
|
curb.expects(:http_delete)
|
73
73
|
curb.expects(:response_code).returns(200)
|
74
|
-
curb.expects(:
|
74
|
+
curb.expects(:header_str).returns("")
|
75
75
|
curb.expects(:body_str).returns("")
|
76
76
|
end
|
77
77
|
|
data/spec/httpi/httpi_spec.rb
CHANGED
@@ -207,7 +207,7 @@ describe HTTPI do
|
|
207
207
|
|
208
208
|
describe ".#{method}" do
|
209
209
|
it "should raise an ArgumentError in case of an invalid adapter" do
|
210
|
-
lambda { client.request method,
|
210
|
+
lambda { client.request method, HTTPI::Request.new, :invalid }.should raise_error(ArgumentError)
|
211
211
|
end
|
212
212
|
|
213
213
|
it "should raise an ArgumentError in case of an invalid request" do
|
data/spec/spec_helper.rb
CHANGED
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
|
- 6
|
9
|
-
-
|
10
|
-
version: 0.6.
|
9
|
+
- 1
|
10
|
+
version: 0.6.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Daniel Harrington
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-
|
19
|
+
date: 2010-11-01 00:00:00 +01:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -57,7 +57,7 @@ dependencies:
|
|
57
57
|
requirement: &id003 !ruby/object:Gem::Requirement
|
58
58
|
none: false
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - "="
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
hash: 15
|
63
63
|
segments:
|
@@ -75,12 +75,12 @@ dependencies:
|
|
75
75
|
requirements:
|
76
76
|
- - ~>
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
hash:
|
78
|
+
hash: 41
|
79
79
|
segments:
|
80
80
|
- 0
|
81
81
|
- 9
|
82
|
-
-
|
83
|
-
version: 0.9.
|
82
|
+
- 9
|
83
|
+
version: 0.9.9
|
84
84
|
type: :development
|
85
85
|
version_requirements: *id004
|
86
86
|
- !ruby/object:Gem::Dependency
|
@@ -91,12 +91,12 @@ dependencies:
|
|
91
91
|
requirements:
|
92
92
|
- - ~>
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
hash:
|
94
|
+
hash: 7
|
95
95
|
segments:
|
96
96
|
- 1
|
97
|
-
-
|
98
|
-
-
|
99
|
-
version: 1.
|
97
|
+
- 4
|
98
|
+
- 0
|
99
|
+
version: 1.4.0
|
100
100
|
type: :development
|
101
101
|
version_requirements: *id005
|
102
102
|
description: HTTPI provides a common interface for Ruby HTTP libraries.
|
@@ -108,24 +108,25 @@ extensions: []
|
|
108
108
|
extra_rdoc_files: []
|
109
109
|
|
110
110
|
files:
|
111
|
+
- .autotest
|
112
|
+
- .gitignore
|
113
|
+
- .rspec
|
111
114
|
- Gemfile
|
112
|
-
- Gemfile.lock
|
113
115
|
- LICENSE
|
114
|
-
- Rakefile
|
115
116
|
- README.md
|
116
|
-
-
|
117
|
-
- .rspec
|
117
|
+
- Rakefile
|
118
118
|
- autotest/discover.rb
|
119
|
+
- httpi.gemspec
|
120
|
+
- lib/httpi.rb
|
121
|
+
- lib/httpi/adapter.rb
|
119
122
|
- lib/httpi/adapter/curb.rb
|
120
123
|
- lib/httpi/adapter/httpclient.rb
|
121
124
|
- lib/httpi/adapter/net_http.rb
|
122
|
-
- lib/httpi/adapter.rb
|
123
125
|
- lib/httpi/auth/config.rb
|
124
126
|
- lib/httpi/auth/ssl.rb
|
125
127
|
- lib/httpi/request.rb
|
126
128
|
- lib/httpi/response.rb
|
127
129
|
- lib/httpi/version.rb
|
128
|
-
- lib/httpi.rb
|
129
130
|
- spec/fixtures/client_cert.pem
|
130
131
|
- spec/fixtures/client_key.pem
|
131
132
|
- spec/fixtures/xml.gz
|
data/Gemfile.lock
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
httpi (0.5.0)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: http://rubygems.org/
|
8
|
-
specs:
|
9
|
-
addressable (2.2.1)
|
10
|
-
crack (0.1.8)
|
11
|
-
curb (0.7.8)
|
12
|
-
diff-lcs (1.1.2)
|
13
|
-
httpclient (2.1.5.2)
|
14
|
-
mocha (0.9.8)
|
15
|
-
rake
|
16
|
-
rake (0.8.7)
|
17
|
-
rspec (2.0.0)
|
18
|
-
rspec-core (= 2.0.0)
|
19
|
-
rspec-expectations (= 2.0.0)
|
20
|
-
rspec-mocks (= 2.0.0)
|
21
|
-
rspec-core (2.0.0)
|
22
|
-
rspec-expectations (2.0.0)
|
23
|
-
diff-lcs (>= 1.1.2)
|
24
|
-
rspec-mocks (2.0.0)
|
25
|
-
rspec-core (= 2.0.0)
|
26
|
-
rspec-expectations (= 2.0.0)
|
27
|
-
webmock (1.3.5)
|
28
|
-
addressable (>= 2.1.1)
|
29
|
-
crack (>= 0.1.7)
|
30
|
-
|
31
|
-
PLATFORMS
|
32
|
-
ruby
|
33
|
-
|
34
|
-
DEPENDENCIES
|
35
|
-
curb (~> 0.7.8)
|
36
|
-
httpclient (~> 2.1.5)
|
37
|
-
httpi!
|
38
|
-
mocha (~> 0.9.8)
|
39
|
-
rspec (~> 2.0.0)
|
40
|
-
webmock (~> 1.3.5)
|