excon 0.11.0 → 0.12.0
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/changelog.txt +6 -0
- data/data/cacert.pem +3367 -0
- data/excon.gemspec +3 -2
- data/lib/excon.rb +1 -0
- data/lib/excon/constants.rb +5 -1
- data/lib/excon/ssl_socket.rb +6 -6
- data/tests/rackups/basic.rb +11 -0
- data/tests/test_helper.rb +25 -7
- metadata +18 -20
data/excon.gemspec
CHANGED
|
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
|
|
|
13
13
|
## If your rubyforge_project name is different, then edit it and comment out
|
|
14
14
|
## the sub! line in the Rakefile
|
|
15
15
|
s.name = 'excon'
|
|
16
|
-
s.version = '0.
|
|
17
|
-
s.date = '2012-03-
|
|
16
|
+
s.version = '0.12.0'
|
|
17
|
+
s.date = '2012-03-18'
|
|
18
18
|
s.rubyforge_project = 'excon'
|
|
19
19
|
|
|
20
20
|
## Make sure your summary is short. The description may be as long
|
|
@@ -88,6 +88,7 @@ Gem::Specification.new do |s|
|
|
|
88
88
|
benchmarks/strip_newline.rb
|
|
89
89
|
benchmarks/vs_stdlib.rb
|
|
90
90
|
changelog.txt
|
|
91
|
+
data/cacert.pem
|
|
91
92
|
excon.gemspec
|
|
92
93
|
lib/excon.rb
|
|
93
94
|
lib/excon/connection.rb
|
data/lib/excon.rb
CHANGED
data/lib/excon/constants.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module Excon
|
|
2
2
|
unless const_defined?(:VERSION)
|
|
3
|
-
VERSION = '0.
|
|
3
|
+
VERSION = '0.12.0'
|
|
4
4
|
end
|
|
5
5
|
|
|
6
6
|
unless const_defined?(:CHUNK_SIZE)
|
|
@@ -11,6 +11,10 @@ module Excon
|
|
|
11
11
|
CR_NL = "\r\n"
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
unless const_defined?(:DEFAULT_CA_FILE)
|
|
15
|
+
DEFAULT_CA_FILE = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "data", "cacert.pem"))
|
|
16
|
+
end
|
|
17
|
+
|
|
14
18
|
unless const_defined?(:DEFAULT_RETRY_LIMIT)
|
|
15
19
|
DEFAULT_RETRY_LIMIT = 4
|
|
16
20
|
end
|
data/lib/excon/ssl_socket.rb
CHANGED
|
@@ -23,14 +23,14 @@ module Excon
|
|
|
23
23
|
# create ssl context
|
|
24
24
|
ssl_context = OpenSSL::SSL::SSLContext.new
|
|
25
25
|
|
|
26
|
-
if
|
|
26
|
+
if params[:ssl_verify_peer]
|
|
27
27
|
# turn verification on
|
|
28
28
|
ssl_context.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
|
29
29
|
|
|
30
|
-
if
|
|
31
|
-
ssl_context.ca_path =
|
|
32
|
-
elsif
|
|
33
|
-
ssl_context.ca_file =
|
|
30
|
+
if params[:ssl_ca_path]
|
|
31
|
+
ssl_context.ca_path = params[:ssl_ca_path]
|
|
32
|
+
elsif params[:ssl_ca_file]
|
|
33
|
+
ssl_context.ca_file = params[:ssl_ca_file]
|
|
34
34
|
else
|
|
35
35
|
# use default cert store
|
|
36
36
|
store = OpenSSL::X509::Store.new
|
|
@@ -64,7 +64,7 @@ module Excon
|
|
|
64
64
|
@socket.connect
|
|
65
65
|
|
|
66
66
|
# verify connection
|
|
67
|
-
if
|
|
67
|
+
if params[:ssl_verify_peer]
|
|
68
68
|
@socket.post_connection_check(@params[:host])
|
|
69
69
|
end
|
|
70
70
|
|
data/tests/rackups/basic.rb
CHANGED
data/tests/test_helper.rb
CHANGED
|
@@ -4,10 +4,10 @@ require 'bundler'
|
|
|
4
4
|
Bundler.require(:default, :development)
|
|
5
5
|
|
|
6
6
|
def basic_tests(url = 'http://127.0.0.1:9292')
|
|
7
|
-
tests('GET /content-length/100') do
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
connection = Excon.new(url, :ssl_verify_peer => false)
|
|
9
|
+
|
|
10
|
+
tests('GET /content-length/100') do
|
|
11
11
|
response = connection.request(:method => :get, :path => '/content-length/100')
|
|
12
12
|
|
|
13
13
|
tests('response.status').returns(200) do
|
|
@@ -63,8 +63,6 @@ def basic_tests(url = 'http://127.0.0.1:9292')
|
|
|
63
63
|
|
|
64
64
|
tests('POST /body-sink') do
|
|
65
65
|
|
|
66
|
-
connection = Excon.new(url)
|
|
67
|
-
|
|
68
66
|
tests('response.body').returns("5000000") do
|
|
69
67
|
response = connection.request(:method => :post, :path => '/body-sink', :headers => { 'Content-Type' => 'text/plain' }, :body => 'x' * 5_000_000)
|
|
70
68
|
response.body
|
|
@@ -79,9 +77,12 @@ def basic_tests(url = 'http://127.0.0.1:9292')
|
|
|
79
77
|
|
|
80
78
|
tests('POST /echo') do
|
|
81
79
|
|
|
82
|
-
|
|
80
|
+
tests('without request_block').returns('x' * 100) do
|
|
81
|
+
response = connection.request(:method => :post, :path => '/echo', :body => 'x' * 100)
|
|
82
|
+
response.body
|
|
83
|
+
end
|
|
83
84
|
|
|
84
|
-
tests('request_block
|
|
85
|
+
tests('with request_block').returns('x' * 100) do
|
|
85
86
|
data = ['x'] * 100
|
|
86
87
|
request_block = lambda do
|
|
87
88
|
data.shift.to_s
|
|
@@ -92,6 +93,23 @@ def basic_tests(url = 'http://127.0.0.1:9292')
|
|
|
92
93
|
|
|
93
94
|
end
|
|
94
95
|
|
|
96
|
+
tests('PUT /echo') do
|
|
97
|
+
|
|
98
|
+
tests('without request_block').returns('x' * 100) do
|
|
99
|
+
response = connection.request(:method => :put, :path => '/echo', :body => 'x' * 100)
|
|
100
|
+
response.body
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
tests('request_block usage').returns('x' * 100) do
|
|
104
|
+
data = ['x'] * 100
|
|
105
|
+
request_block = lambda do
|
|
106
|
+
data.shift.to_s
|
|
107
|
+
end
|
|
108
|
+
response = connection.request(:method => :put, :path => '/echo', :request_block => request_block)
|
|
109
|
+
response.body
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
end
|
|
95
113
|
end
|
|
96
114
|
|
|
97
115
|
def rackup_path(*parts)
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: excon
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.12.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -11,11 +11,11 @@ authors:
|
|
|
11
11
|
autorequire:
|
|
12
12
|
bindir: bin
|
|
13
13
|
cert_chain: []
|
|
14
|
-
date: 2012-03-
|
|
14
|
+
date: 2012-03-18 00:00:00.000000000Z
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
17
17
|
name: activesupport
|
|
18
|
-
requirement: &
|
|
18
|
+
requirement: &8667500 !ruby/object:Gem::Requirement
|
|
19
19
|
none: false
|
|
20
20
|
requirements:
|
|
21
21
|
- - ! '>='
|
|
@@ -23,10 +23,10 @@ dependencies:
|
|
|
23
23
|
version: '0'
|
|
24
24
|
type: :development
|
|
25
25
|
prerelease: false
|
|
26
|
-
version_requirements: *
|
|
26
|
+
version_requirements: *8667500
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: delorean
|
|
29
|
-
requirement: &
|
|
29
|
+
requirement: &8667270 !ruby/object:Gem::Requirement
|
|
30
30
|
none: false
|
|
31
31
|
requirements:
|
|
32
32
|
- - ! '>='
|
|
@@ -34,10 +34,10 @@ dependencies:
|
|
|
34
34
|
version: '0'
|
|
35
35
|
type: :development
|
|
36
36
|
prerelease: false
|
|
37
|
-
version_requirements: *
|
|
37
|
+
version_requirements: *8667270
|
|
38
38
|
- !ruby/object:Gem::Dependency
|
|
39
39
|
name: open4
|
|
40
|
-
requirement: &
|
|
40
|
+
requirement: &8667060 !ruby/object:Gem::Requirement
|
|
41
41
|
none: false
|
|
42
42
|
requirements:
|
|
43
43
|
- - ! '>='
|
|
@@ -45,10 +45,10 @@ dependencies:
|
|
|
45
45
|
version: '0'
|
|
46
46
|
type: :development
|
|
47
47
|
prerelease: false
|
|
48
|
-
version_requirements: *
|
|
48
|
+
version_requirements: *8667060
|
|
49
49
|
- !ruby/object:Gem::Dependency
|
|
50
50
|
name: rake
|
|
51
|
-
requirement: &
|
|
51
|
+
requirement: &8666850 !ruby/object:Gem::Requirement
|
|
52
52
|
none: false
|
|
53
53
|
requirements:
|
|
54
54
|
- - ! '>='
|
|
@@ -56,10 +56,10 @@ dependencies:
|
|
|
56
56
|
version: '0'
|
|
57
57
|
type: :development
|
|
58
58
|
prerelease: false
|
|
59
|
-
version_requirements: *
|
|
59
|
+
version_requirements: *8666850
|
|
60
60
|
- !ruby/object:Gem::Dependency
|
|
61
61
|
name: rdoc
|
|
62
|
-
requirement: &
|
|
62
|
+
requirement: &8666640 !ruby/object:Gem::Requirement
|
|
63
63
|
none: false
|
|
64
64
|
requirements:
|
|
65
65
|
- - ! '>='
|
|
@@ -67,10 +67,10 @@ dependencies:
|
|
|
67
67
|
version: '0'
|
|
68
68
|
type: :development
|
|
69
69
|
prerelease: false
|
|
70
|
-
version_requirements: *
|
|
70
|
+
version_requirements: *8666640
|
|
71
71
|
- !ruby/object:Gem::Dependency
|
|
72
72
|
name: shindo
|
|
73
|
-
requirement: &
|
|
73
|
+
requirement: &8666430 !ruby/object:Gem::Requirement
|
|
74
74
|
none: false
|
|
75
75
|
requirements:
|
|
76
76
|
- - ! '>='
|
|
@@ -78,10 +78,10 @@ dependencies:
|
|
|
78
78
|
version: '0'
|
|
79
79
|
type: :development
|
|
80
80
|
prerelease: false
|
|
81
|
-
version_requirements: *
|
|
81
|
+
version_requirements: *8666430
|
|
82
82
|
- !ruby/object:Gem::Dependency
|
|
83
83
|
name: sinatra
|
|
84
|
-
requirement: &
|
|
84
|
+
requirement: &8666220 !ruby/object:Gem::Requirement
|
|
85
85
|
none: false
|
|
86
86
|
requirements:
|
|
87
87
|
- - ! '>='
|
|
@@ -89,7 +89,7 @@ dependencies:
|
|
|
89
89
|
version: '0'
|
|
90
90
|
type: :development
|
|
91
91
|
prerelease: false
|
|
92
|
-
version_requirements: *
|
|
92
|
+
version_requirements: *8666220
|
|
93
93
|
description: EXtended http(s) CONnections
|
|
94
94
|
email: geemus@gmail.com
|
|
95
95
|
executables: []
|
|
@@ -119,6 +119,7 @@ files:
|
|
|
119
119
|
- benchmarks/strip_newline.rb
|
|
120
120
|
- benchmarks/vs_stdlib.rb
|
|
121
121
|
- changelog.txt
|
|
122
|
+
- data/cacert.pem
|
|
122
123
|
- excon.gemspec
|
|
123
124
|
- lib/excon.rb
|
|
124
125
|
- lib/excon/connection.rb
|
|
@@ -161,9 +162,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
161
162
|
- - ! '>='
|
|
162
163
|
- !ruby/object:Gem::Version
|
|
163
164
|
version: '0'
|
|
164
|
-
segments:
|
|
165
|
-
- 0
|
|
166
|
-
hash: 584033928995793926
|
|
167
165
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
168
166
|
none: false
|
|
169
167
|
requirements:
|
|
@@ -172,7 +170,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
172
170
|
version: '0'
|
|
173
171
|
requirements: []
|
|
174
172
|
rubyforge_project: excon
|
|
175
|
-
rubygems_version: 1.8.
|
|
173
|
+
rubygems_version: 1.8.6
|
|
176
174
|
signing_key:
|
|
177
175
|
specification_version: 2
|
|
178
176
|
summary: speed, persistence, http(s)
|