httpi 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ .DS_Store
2
+ .yardoc
3
+ doc
4
+ coverage
5
+ tmp
6
+ *~
7
+ *.gem
8
+ .bundle
9
+ Gemfile.lock
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
@@ -85,7 +85,34 @@ module HTTPI
85
85
  end
86
86
 
87
87
  def respond_with(client)
88
- Response.new client.response_code, client.headers, client.body_str
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
@@ -90,7 +90,7 @@ module HTTPI
90
90
  end
91
91
 
92
92
  def respond_with(response)
93
- Response.new response.code, Hash[response.header.all], response.content
93
+ Response.new response.code, Hash[response.header.all.flatten], response.content
94
94
  end
95
95
 
96
96
  end
data/lib/httpi/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module HTTPI
2
2
 
3
- VERSION = "0.6.0"
3
+ VERSION = "0.6.1"
4
4
 
5
5
  end
@@ -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(:headers).returns(Hash.new)
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(:headers).returns(Hash.new)
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(:headers).returns(Hash.new)
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(:headers).returns(Hash.new)
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(:headers).returns(Hash.new)
74
+ curb.expects(:header_str).returns("")
75
75
  curb.expects(:body_str).returns("")
76
76
  end
77
77
 
@@ -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, request, :invalid }.should raise_error(ArgumentError)
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
@@ -3,7 +3,7 @@ require "mocha"
3
3
  require "webmock/rspec"
4
4
 
5
5
  RSpec.configure do |config|
6
- config.include WebMock
6
+ config.include WebMock::API
7
7
  config.mock_with :mocha
8
8
  end
9
9
 
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: 7
4
+ hash: 5
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 0
10
- version: 0.6.0
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-10-15 00:00:00 +02:00
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: 43
78
+ hash: 41
79
79
  segments:
80
80
  - 0
81
81
  - 9
82
- - 8
83
- version: 0.9.8
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: 17
94
+ hash: 7
95
95
  segments:
96
96
  - 1
97
- - 3
98
- - 5
99
- version: 1.3.5
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
- - .autotest
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)