http2 0.0.16 → 0.0.17

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.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/http2.gemspec +3 -3
  3. data/lib/http2.rb +14 -17
  4. metadata +17 -37
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.16
1
+ 0.0.17
data/http2.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "http2"
8
- s.version = "0.0.16"
8
+ s.version = "0.0.17"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kasper Johansen"]
12
- s.date = "2013-06-21"
12
+ s.date = "2013-06-26"
13
13
  s.description = "A lightweight framework for doing http-connections in Ruby. Supports cookies, keep-alive, compressing and much more."
14
14
  s.email = "k@spernj.org"
15
15
  s.extra_rdoc_files = [
@@ -36,7 +36,7 @@ Gem::Specification.new do |s|
36
36
  s.homepage = "http://github.com/kaspernj/http2"
37
37
  s.licenses = ["MIT"]
38
38
  s.require_paths = ["lib"]
39
- s.rubygems_version = "1.8.23"
39
+ s.rubygems_version = "1.8.11"
40
40
  s.summary = "A lightweight framework for doing http-connections in Ruby. Supports cookies, keep-alive, compressing and much more."
41
41
 
42
42
  if s.respond_to? :specification_version then
data/lib/http2.rb CHANGED
@@ -26,7 +26,7 @@ class Http2
26
26
 
27
27
  attr_reader :cookies, :args
28
28
 
29
- VALID_ARGUMENTS_INITIALIZE = [:host, :port, :ssl, :nl, :user_agent, :raise_errors, :follow_redirects, :debug, :encoding_gzip, :autostate, :basic_auth, :extra_headers]
29
+ VALID_ARGUMENTS_INITIALIZE = [:host, :port, :ssl, :nl, :user_agent, :raise_errors, :follow_redirects, :debug, :encoding_gzip, :autostate, :basic_auth, :extra_headers, :proxy]
30
30
  def initialize(args = {})
31
31
  args = {:host => args} if args.is_a?(String)
32
32
  raise "Arguments wasnt a hash." if !args.is_a?(Hash)
@@ -147,27 +147,26 @@ class Http2
147
147
  @charset = nil
148
148
 
149
149
  #Open connection.
150
- if @args[:proxy]
150
+ if @args[:proxy] && @args[:ssl]
151
151
  print "Http2: Initializing proxy stuff.\n" if @debug
152
152
  @sock_plain = TCPSocket.new(@args[:proxy][:host], @args[:proxy][:port])
153
- @sock = @sock_plain
154
153
 
155
- @sock.write("CONNECT #{@args[:host]}:#{@args[:port]} HTTP/1.0#{@nl}")
156
- @sock.write("User-Agent: #{@uagent}#{@nl}")
154
+ @sock_plain.write("CONNECT #{@args[:host]}:#{@args[:port]} HTTP/1.0#{@nl}")
155
+ @sock_plain.write("User-Agent: #{@uagent}#{@nl}")
157
156
 
158
157
  if @args[:proxy][:user] and @args[:proxy][:passwd]
159
158
  credential = ["#{@args[:proxy][:user]}:#{@args[:proxy][:passwd]}"].pack("m")
160
159
  credential.delete!("\r\n")
161
- @sock.write("Proxy-Authorization: Basic #{credential}#{@nl}")
160
+ @sock_plain.write("Proxy-Authorization: Basic #{credential}#{@nl}")
162
161
  end
163
162
 
164
- @sock.write(@nl)
163
+ @sock_plain.write(@nl)
165
164
 
166
- res = @sock.gets
165
+ res = @sock_plain.gets
167
166
  raise res if res.to_s.downcase != "http/1.0 200 connection established#{@nl}"
168
-
169
- res_empty = @sock.gets
170
- raise "Empty res wasnt empty." if res_empty != @nl
167
+ elsif @args[:proxy]
168
+ print "Http2: Opening socket connection to '#{@args[:host]}:#{@args[:port]}' through proxy '#{@args[:proxy][:host]}:#{@args[:proxy][:port]}'.\n" if @debug
169
+ @sock_plain = TCPSocket.new(@args[:proxy][:host], @args[:proxy][:port].to_i)
171
170
  else
172
171
  print "Http2: Opening socket connection to '#{@args[:host]}:#{@args[:port]}'.\n" if @debug
173
172
  @sock_plain = TCPSocket.new(@args[:host], @args[:port].to_i)
@@ -280,11 +279,9 @@ class Http2
280
279
  }
281
280
 
282
281
  #Possible to give custom host-argument.
283
- if args[:host]
284
- headers["Host"] = args[:host]
285
- else
286
- headers["Host"] = @args[:host]
287
- end
282
+ _args = args[:host] ? args : @args
283
+ headers["Host"] = _args[:host]
284
+ headers["Host"] += ":#{_args[:port]}" unless _args[:port] && [80,443].include?(_args[:port].to_i)
288
285
 
289
286
  if !@args.key?(:encoding_gzip) or @args[:encoding_gzip]
290
287
  headers["Accept-Encoding"] = "gzip"
@@ -386,7 +383,7 @@ class Http2
386
383
  puts "Doing post." if @debug
387
384
 
388
385
  header_str = "#{method} /#{args[:url]} HTTP/1.1#{@nl}"
389
- header_str << self.header_str({"Content-Length" => praw.length, "Content-Type" => content_type}.merge(self.default_headers(args)), args)
386
+ header_str << self.header_str({"Content-Length" => praw.bytesize, "Content-Type" => content_type}.merge(self.default_headers(args)), args)
390
387
  header_str << @nl
391
388
  header_str << praw
392
389
  header_str << @nl
metadata CHANGED
@@ -1,80 +1,60 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http2
3
3
  version: !ruby/object:Gem::Version
4
+ version: 0.0.17
4
5
  prerelease:
5
- version: 0.0.16
6
6
  platform: ruby
7
7
  authors:
8
8
  - Kasper Johansen
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-21 00:00:00.000000000 Z
12
+ date: 2013-06-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- version_requirements: !ruby/object:Gem::Requirement
15
+ name: rspec
16
+ requirement: &9884720 !ruby/object:Gem::Requirement
16
17
  none: false
17
18
  requirements:
18
19
  - - ~>
19
20
  - !ruby/object:Gem::Version
20
21
  version: 2.8.0
21
- name: rspec
22
22
  type: :development
23
23
  prerelease: false
24
- requirement: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- version: 2.8.0
24
+ version_requirements: *9884720
30
25
  - !ruby/object:Gem::Dependency
31
- version_requirements: !ruby/object:Gem::Requirement
26
+ name: rdoc
27
+ requirement: &9883900 !ruby/object:Gem::Requirement
32
28
  none: false
33
29
  requirements:
34
30
  - - ~>
35
31
  - !ruby/object:Gem::Version
36
32
  version: '3.12'
37
- name: rdoc
38
33
  type: :development
39
34
  prerelease: false
40
- requirement: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: '3.12'
35
+ version_requirements: *9883900
46
36
  - !ruby/object:Gem::Dependency
47
- version_requirements: !ruby/object:Gem::Requirement
37
+ name: bundler
38
+ requirement: &9882980 !ruby/object:Gem::Requirement
48
39
  none: false
49
40
  requirements:
50
41
  - - ! '>='
51
42
  - !ruby/object:Gem::Version
52
43
  version: 1.0.0
53
- name: bundler
54
44
  type: :development
55
45
  prerelease: false
56
- requirement: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: 1.0.0
46
+ version_requirements: *9882980
62
47
  - !ruby/object:Gem::Dependency
63
- version_requirements: !ruby/object:Gem::Requirement
48
+ name: jeweler
49
+ requirement: &9881920 !ruby/object:Gem::Requirement
64
50
  none: false
65
51
  requirements:
66
52
  - - ~>
67
53
  - !ruby/object:Gem::Version
68
54
  version: 1.8.4
69
- name: jeweler
70
55
  type: :development
71
56
  prerelease: false
72
- requirement: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: 1.8.4
57
+ version_requirements: *9881920
78
58
  description: A lightweight framework for doing http-connections in Ruby. Supports
79
59
  cookies, keep-alive, compressing and much more.
80
60
  email: k@spernj.org
@@ -111,10 +91,10 @@ required_ruby_version: !ruby/object:Gem::Requirement
111
91
  requirements:
112
92
  - - ! '>='
113
93
  - !ruby/object:Gem::Version
94
+ version: '0'
114
95
  segments:
115
96
  - 0
116
- hash: 1149026515699745004
117
- version: '0'
97
+ hash: 1747882727937754556
118
98
  required_rubygems_version: !ruby/object:Gem::Requirement
119
99
  none: false
120
100
  requirements:
@@ -123,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
103
  version: '0'
124
104
  requirements: []
125
105
  rubyforge_project:
126
- rubygems_version: 1.8.23
106
+ rubygems_version: 1.8.11
127
107
  signing_key:
128
108
  specification_version: 3
129
109
  summary: A lightweight framework for doing http-connections in Ruby. Supports cookies,