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/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.11.0'
17
- s.date = '2012-03-15'
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
@@ -27,6 +27,7 @@ module Excon
27
27
  :mock => false,
28
28
  :read_timeout => 60,
29
29
  :retry_limit => DEFAULT_RETRY_LIMIT,
30
+ :ssl_ca_file => DEFAULT_CA_FILE,
30
31
  :ssl_verify_peer => RbConfig::CONFIG['host_os'] !~ /mswin|win32|dos|cygwin|mingw/i,
31
32
  :write_timeout => 60
32
33
  }
@@ -1,6 +1,6 @@
1
1
  module Excon
2
2
  unless const_defined?(:VERSION)
3
- VERSION = '0.11.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
@@ -23,14 +23,14 @@ module Excon
23
23
  # create ssl context
24
24
  ssl_context = OpenSSL::SSL::SSLContext.new
25
25
 
26
- if Excon.defaults[:ssl_verify_peer]
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 Excon.defaults[:ssl_ca_path]
31
- ssl_context.ca_path = Excon.defaults[:ssl_ca_path]
32
- elsif Excon.defaults[:ssl_ca_file]
33
- ssl_context.ca_file = Excon.defaults[:ssl_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 Excon.defaults[:ssl_verify_peer]
67
+ if params[:ssl_verify_peer]
68
68
  @socket.post_connection_check(@params[:host])
69
69
  end
70
70
 
@@ -11,6 +11,17 @@ class Basic < Sinatra::Base
11
11
  end
12
12
 
13
13
  post('/echo') do
14
+ echo
15
+ end
16
+
17
+ put('/echo') do
18
+ echo
19
+ end
20
+
21
+ private
22
+
23
+ def echo
14
24
  request.body.read
15
25
  end
26
+
16
27
  end
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
- Excon.defaults[:ssl_verify_peer] = false
10
- connection = Excon.new(url)
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
- connection = Excon.new(url)
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 usage').returns('x' * 100) do
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.11.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-15 00:00:00.000000000Z
14
+ date: 2012-03-18 00:00:00.000000000Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport
18
- requirement: &70247176859020 !ruby/object:Gem::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: *70247176859020
26
+ version_requirements: *8667500
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: delorean
29
- requirement: &70247176858080 !ruby/object:Gem::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: *70247176858080
37
+ version_requirements: *8667270
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: open4
40
- requirement: &70247176857480 !ruby/object:Gem::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: *70247176857480
48
+ version_requirements: *8667060
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: rake
51
- requirement: &70247176856760 !ruby/object:Gem::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: *70247176856760
59
+ version_requirements: *8666850
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: rdoc
62
- requirement: &70247176856120 !ruby/object:Gem::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: *70247176856120
70
+ version_requirements: *8666640
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: shindo
73
- requirement: &70247176855480 !ruby/object:Gem::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: *70247176855480
81
+ version_requirements: *8666430
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: sinatra
84
- requirement: &70247176854820 !ruby/object:Gem::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: *70247176854820
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.10
173
+ rubygems_version: 1.8.6
176
174
  signing_key:
177
175
  specification_version: 2
178
176
  summary: speed, persistence, http(s)