ht2p 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -1,13 +1,19 @@
1
1
  class HT2P::Client::Response
2
2
  attr_reader :code, :header
3
3
 
4
+ HAS_BODY = [:get, :post, :put, :delete, :trace]
5
+
4
6
  def initialize(client)
5
7
  @client, @code, @header = client, *client.response_header
6
8
 
7
- @body = if @header['transfer-encoding'].to_s.downcase == 'chunked'
8
- Chunked.new(@client)
9
+ @body = if HAS_BODY.include? @client.request.method
10
+ if @header['transfer-encoding'].to_s.downcase == 'chunked'
11
+ Chunked.new(@client)
12
+ else
13
+ Transfer.new(@client, @header['content-length'].to_i)
14
+ end
9
15
  else
10
- Transfer.new(@client, @header['content-length'].to_i)
16
+ Empty.new
11
17
  end
12
18
  end
13
19
 
@@ -58,4 +64,10 @@ class HT2P::Client::Response
58
64
  @size = @client.gets.chop!.hex
59
65
  end
60
66
  end
67
+
68
+ class Empty
69
+ def read(length=nil)
70
+ nil
71
+ end
72
+ end
61
73
  end
data/lib/ht2p/client.rb CHANGED
@@ -3,7 +3,7 @@ require 'socket'
3
3
  require 'openssl'
4
4
 
5
5
  class HT2P::Client
6
- attr_reader :uri
6
+ attr_reader :uri, :request
7
7
 
8
8
  def initialize(uri, params={}, &block)
9
9
  @uri = URI.parse(uri)
@@ -16,13 +16,15 @@ class HT2P::Client
16
16
  begin
17
17
  @socket = OpenSSL::SSL::SSLSocket.new(socket)
18
18
  @socket.connect
19
- block.call HT2P::Client::Request.new(self, params)
19
+ @request = HT2P::Client::Request.new(self, params)
20
+ block.call @request
20
21
  ensure
21
22
  @socket.close
22
23
  end
23
24
  else
24
25
  @socket = socket
25
- block.call HT2P::Client::Request.new(self, params)
26
+ @request = HT2P::Client::Request.new(self, params)
27
+ block.call @request
26
28
  end
27
29
  end
28
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ht2p
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jun Kikuchi
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-11-10 00:00:00 +09:00
12
+ date: 2009-11-11 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency