faraday 0.7.4 → 0.7.5
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/Gemfile +5 -10
- data/README.md +26 -0
- data/Rakefile +0 -0
- data/faraday.gemspec +8 -8
- data/lib/faraday.rb +1 -1
- data/lib/faraday/adapter/net_http.rb +13 -2
- data/lib/faraday/adapter/typhoeus.rb +10 -0
- data/lib/faraday/connection.rb +6 -2
- data/test/connection_test.rb +3 -2
- metadata +74 -79
data/Gemfile
CHANGED
@@ -1,29 +1,24 @@
|
|
1
1
|
source 'http://rubygems.org'
|
2
2
|
|
3
|
-
gem 'addressable', '~> 2.2.6'
|
4
|
-
gem 'multipart-post', '~> 1.1.0'
|
5
|
-
gem 'rack', ['>= 1.1.0', '<= 1.2.0']
|
6
|
-
|
7
3
|
group :development do
|
8
4
|
gem 'sinatra', '~> 1.2'
|
9
5
|
end
|
10
6
|
|
11
7
|
group :test do
|
12
|
-
gem 'em-http-request', '~> 0
|
13
|
-
gem 'em-synchrony', '~> 0
|
8
|
+
gem 'em-http-request', '~> 1.0', :require => 'em-http'
|
9
|
+
gem 'em-synchrony', '~> 1.0', :require => ['em-synchrony', 'em-synchrony/em-http'], :platforms => :ruby_19
|
14
10
|
gem 'excon', '~> 0.6'
|
15
11
|
gem 'leftright', '~> 0.9', :require => false
|
16
12
|
gem 'patron', '~> 0.4'
|
17
|
-
gem 'rake', '~> 0.8'
|
18
|
-
gem 'test-unit', '~> 2.3'
|
19
13
|
gem 'typhoeus', '~> 0.2'
|
20
|
-
gem 'webmock', '~> 1.6'
|
21
14
|
# ActiveSupport::JSON will be used in ruby 1.8 and Yajl in 1.9; this is to test against both adapters
|
22
15
|
gem 'activesupport', '~> 2.3', :require => nil, :platforms => [:ruby_18, :jruby]
|
23
|
-
gem 'yajl-ruby', '~> 0
|
16
|
+
gem 'yajl-ruby', '~> 1.0', :require => 'yajl', :platforms => :ruby_19
|
24
17
|
end
|
25
18
|
|
26
19
|
platforms :jruby do
|
27
20
|
gem 'jruby-openssl', '~> 0.7'
|
28
21
|
gem 'ffi-ncurses', '~> 0.3'
|
29
22
|
end
|
23
|
+
|
24
|
+
gemspec
|
data/README.md
CHANGED
@@ -161,6 +161,32 @@ Note on Patches/Pull Requests
|
|
161
161
|
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
162
162
|
* Send me a pull request. Bonus points for topic branches.
|
163
163
|
|
164
|
+
Supported Rubies
|
165
|
+
----------------
|
166
|
+
This library aims to support and is [tested
|
167
|
+
against](http://travis-ci.org/technoweenie/faraday) the following Ruby
|
168
|
+
implementations:
|
169
|
+
|
170
|
+
* Ruby 1.8.7
|
171
|
+
* Ruby 1.9.1
|
172
|
+
* Ruby 1.9.2
|
173
|
+
* [Rubinius](http://rubini.us)
|
174
|
+
* [Ruby Enterprise Edition](http://www.rubyenterpriseedition.com/)
|
175
|
+
|
176
|
+
If something doesn't work on one of these interpreters, it should be considered
|
177
|
+
a bug.
|
178
|
+
|
179
|
+
This library may inadvertently work (or seem to work) on other Ruby
|
180
|
+
implementations, however support will only be provided for the versions listed
|
181
|
+
above.
|
182
|
+
|
183
|
+
If you would like this library to support another Ruby version, you may
|
184
|
+
volunteer to be a maintainer. Being a maintainer entails making sure all tests
|
185
|
+
run and pass on that implementation. When something breaks on your
|
186
|
+
implementation, you will be personally responsible for providing patches in a
|
187
|
+
timely fashion. If critical issues for a particular implementation exist at the
|
188
|
+
time of a major release, support for that Ruby version may be dropped.
|
189
|
+
|
164
190
|
Copyright
|
165
191
|
---------
|
166
192
|
Copyright (c) 2009-2011 rick, hobson. See [LICENSE][license] for details.
|
data/Rakefile
CHANGED
File without changes
|
data/faraday.gemspec
CHANGED
@@ -12,8 +12,8 @@ Gem::Specification.new do |s|
|
|
12
12
|
## If your rubyforge_project name is different, then edit it and comment out
|
13
13
|
## the sub! line in the Rakefile
|
14
14
|
s.name = 'faraday'
|
15
|
-
s.version = '0.7.
|
16
|
-
s.date = '2011-
|
15
|
+
s.version = '0.7.5'
|
16
|
+
s.date = '2011-10-04'
|
17
17
|
s.rubyforge_project = 'faraday'
|
18
18
|
|
19
19
|
## Make sure your summary is short. The description may be as long
|
@@ -32,12 +32,12 @@ Gem::Specification.new do |s|
|
|
32
32
|
## require 'NAME.rb' or'/lib/NAME/file.rb' can be as require 'NAME/file.rb'
|
33
33
|
s.require_paths = %w[lib]
|
34
34
|
|
35
|
+
s.add_dependency 'addressable', '~> 2.2.6'
|
36
|
+
s.add_dependency 'multipart-post', '~> 1.1.3'
|
37
|
+
s.add_dependency 'rack', ['>= 1.1.0', '< 2']
|
35
38
|
s.add_development_dependency 'rake', '~> 0.9'
|
36
|
-
s.add_development_dependency 'test-unit', '~> 2.
|
37
|
-
s.add_development_dependency 'webmock', '~> 1.
|
38
|
-
s.add_runtime_dependency 'addressable', '~> 2.2.6'
|
39
|
-
s.add_runtime_dependency 'multipart-post', '~> 1.1.0'
|
40
|
-
s.add_runtime_dependency 'rack', ['>= 1.1.0', '< 2']
|
39
|
+
s.add_development_dependency 'test-unit', '~> 2.4'
|
40
|
+
s.add_development_dependency 'webmock', '~> 1.7'
|
41
41
|
|
42
42
|
## Leave this section as-is. It will be automatically generated from the
|
43
43
|
## contents of your Git repository via the gemspec task. DO NOT REMOVE
|
@@ -88,5 +88,5 @@ Gem::Specification.new do |s|
|
|
88
88
|
|
89
89
|
## Test files will be grabbed from the file list. Make sure the path glob
|
90
90
|
## matches what you actually use.
|
91
|
-
s.test_files = s.files.select { |path| path =~
|
91
|
+
s.test_files = s.files.select { |path| path =~ %r{^test/*/.+\.rb} }
|
92
92
|
end
|
data/lib/faraday.rb
CHANGED
@@ -16,8 +16,19 @@ module Faraday
|
|
16
16
|
http = net_http_class(env).new(url.host, url.inferred_port)
|
17
17
|
|
18
18
|
if http.use_ssl = (url.scheme == 'https' && (ssl = env[:ssl]) && true)
|
19
|
-
http.verify_mode = ssl[:verify_mode] ||
|
20
|
-
|
19
|
+
http.verify_mode = ssl[:verify_mode] || begin
|
20
|
+
if ssl.fetch(:verify, true)
|
21
|
+
OpenSSL::SSL::VERIFY_PEER
|
22
|
+
# Use the default cert store by default, i.e. system ca certs
|
23
|
+
store = OpenSSL::X509::Store.new
|
24
|
+
store.set_default_paths
|
25
|
+
http.cert_store = store
|
26
|
+
OpenSSL::SSL::VERIFY_PEER
|
27
|
+
else
|
28
|
+
OpenSSL::SSL::VERIFY_NONE
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
21
32
|
http.cert = ssl[:client_cert] if ssl[:client_cert]
|
22
33
|
http.key = ssl[:client_key] if ssl[:client_key]
|
23
34
|
http.ca_file = ssl[:ca_file] if ssl[:ca_file]
|
@@ -29,6 +29,16 @@ module Faraday
|
|
29
29
|
end
|
30
30
|
|
31
31
|
env_req = env[:request]
|
32
|
+
|
33
|
+
if proxy = env_req[:proxy]
|
34
|
+
req.proxy = "#{proxy[:uri].host}:#{proxy[:uri].port}"
|
35
|
+
|
36
|
+
if proxy[:username] && proxy[:password]
|
37
|
+
req.proxy_username = proxy[:username]
|
38
|
+
req.proxy_password = proxy[:password]
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
32
42
|
req.timeout = req.connect_timeout = (env_req[:timeout] * 1000) if env_req[:timeout]
|
33
43
|
req.connect_timeout = (env_req[:open_timeout] * 1000) if env_req[:open_timeout]
|
34
44
|
|
data/lib/faraday/connection.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
require 'addressable/uri'
|
2
|
-
require 'set'
|
3
2
|
require 'base64'
|
3
|
+
require 'set'
|
4
|
+
require 'faraday/builder'
|
5
|
+
require 'faraday/request'
|
6
|
+
require 'faraday/response'
|
7
|
+
require 'faraday/utils'
|
4
8
|
|
5
9
|
module Faraday
|
6
10
|
class Connection
|
@@ -233,7 +237,7 @@ module Faraday
|
|
233
237
|
end
|
234
238
|
|
235
239
|
def dup
|
236
|
-
self.class.new(build_url(''), :headers => headers.dup, :params => params.dup, :builder => builder.dup)
|
240
|
+
self.class.new(build_url(''), :headers => headers.dup, :params => params.dup, :builder => builder.dup, :ssl => ssl.dup)
|
237
241
|
end
|
238
242
|
|
239
243
|
def proxy_arg_to_uri(arg)
|
data/test/connection_test.rb
CHANGED
@@ -238,15 +238,16 @@ class TestConnection < Faraday::TestCase
|
|
238
238
|
end
|
239
239
|
|
240
240
|
def test_dups_connection_object
|
241
|
-
conn = Faraday::Connection.new 'http://sushi.com/foo' do |b|
|
241
|
+
conn = Faraday::Connection.new 'http://sushi.com/foo', :ssl => { :verify => :none } do |b|
|
242
242
|
b.adapter :net_http
|
243
243
|
end
|
244
244
|
conn.headers['content-type'] = 'text/plain'
|
245
245
|
conn.params['a'] = '1'
|
246
246
|
|
247
247
|
duped = conn.dup
|
248
|
+
|
248
249
|
assert_equal conn.build_url(''), duped.build_url('')
|
249
|
-
[:headers, :params, :builder].each do |attr|
|
250
|
+
[:headers, :params, :builder, :ssl].each do |attr|
|
250
251
|
assert_equal conn.send(attr), duped.send(attr)
|
251
252
|
assert_not_equal conn.send(attr).object_id, duped.send(attr).object_id
|
252
253
|
end
|
metadata
CHANGED
@@ -1,95 +1,91 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.7.5
|
4
5
|
prerelease:
|
5
|
-
version: 0.7.4
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Rick Olson
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
prerelease: false
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
12
|
+
date: 2011-10-04 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: addressable
|
16
|
+
requirement: &70213347338660 !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
18
|
+
requirements:
|
21
19
|
- - ~>
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version:
|
24
|
-
type: :
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: test-unit
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 2.2.6
|
22
|
+
type: :runtime
|
28
23
|
prerelease: false
|
29
|
-
|
24
|
+
version_requirements: *70213347338660
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: multipart-post
|
27
|
+
requirement: &70213347338000 !ruby/object:Gem::Requirement
|
30
28
|
none: false
|
31
|
-
requirements:
|
29
|
+
requirements:
|
32
30
|
- - ~>
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version:
|
35
|
-
type: :
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: webmock
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.1.3
|
33
|
+
type: :runtime
|
39
34
|
prerelease: false
|
40
|
-
|
35
|
+
version_requirements: *70213347338000
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rack
|
38
|
+
requirement: &70213347336580 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.1.0
|
44
|
+
- - <
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '2'
|
47
|
+
type: :runtime
|
48
|
+
prerelease: false
|
49
|
+
version_requirements: *70213347336580
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: rake
|
52
|
+
requirement: &70213347335860 !ruby/object:Gem::Requirement
|
41
53
|
none: false
|
42
|
-
requirements:
|
54
|
+
requirements:
|
43
55
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version:
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0.9'
|
46
58
|
type: :development
|
47
|
-
version_requirements: *id003
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: addressable
|
50
59
|
prerelease: false
|
51
|
-
|
60
|
+
version_requirements: *70213347335860
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: test-unit
|
63
|
+
requirement: &70213347335220 !ruby/object:Gem::Requirement
|
52
64
|
none: false
|
53
|
-
requirements:
|
65
|
+
requirements:
|
54
66
|
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: 2.
|
57
|
-
type: :
|
58
|
-
version_requirements: *id004
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: multipart-post
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.4'
|
69
|
+
type: :development
|
61
70
|
prerelease: false
|
62
|
-
|
71
|
+
version_requirements: *70213347335220
|
72
|
+
- !ruby/object:Gem::Dependency
|
73
|
+
name: webmock
|
74
|
+
requirement: &70213347334540 !ruby/object:Gem::Requirement
|
63
75
|
none: false
|
64
|
-
requirements:
|
76
|
+
requirements:
|
65
77
|
- - ~>
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: 1.
|
68
|
-
type: :
|
69
|
-
version_requirements: *id005
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: rack
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '1.7'
|
80
|
+
type: :development
|
72
81
|
prerelease: false
|
73
|
-
|
74
|
-
none: false
|
75
|
-
requirements:
|
76
|
-
- - ">="
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: 1.1.0
|
79
|
-
- - <
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: "2"
|
82
|
-
type: :runtime
|
83
|
-
version_requirements: *id006
|
82
|
+
version_requirements: *70213347334540
|
84
83
|
description: HTTP/REST API client library.
|
85
84
|
email: technoweenie@gmail.com
|
86
85
|
executables: []
|
87
|
-
|
88
86
|
extensions: []
|
89
|
-
|
90
87
|
extra_rdoc_files: []
|
91
|
-
|
92
|
-
files:
|
88
|
+
files:
|
93
89
|
- Gemfile
|
94
90
|
- LICENSE.md
|
95
91
|
- README.md
|
@@ -131,38 +127,37 @@ files:
|
|
131
127
|
- test/response_middleware_test.rb
|
132
128
|
homepage: http://github.com/technoweenie/faraday
|
133
129
|
licenses: []
|
134
|
-
|
135
130
|
post_install_message:
|
136
131
|
rdoc_options: []
|
137
|
-
|
138
|
-
require_paths:
|
132
|
+
require_paths:
|
139
133
|
- lib
|
140
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
134
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
141
135
|
none: false
|
142
|
-
requirements:
|
143
|
-
- -
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version:
|
146
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ! '>='
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
141
|
none: false
|
148
|
-
requirements:
|
149
|
-
- -
|
150
|
-
- !ruby/object:Gem::Version
|
142
|
+
requirements:
|
143
|
+
- - ! '>='
|
144
|
+
- !ruby/object:Gem::Version
|
151
145
|
version: 1.3.5
|
152
146
|
requirements: []
|
153
|
-
|
154
147
|
rubyforge_project: faraday
|
155
|
-
rubygems_version: 1.8.
|
148
|
+
rubygems_version: 1.8.10
|
156
149
|
signing_key:
|
157
150
|
specification_version: 2
|
158
151
|
summary: HTTP/REST API client library.
|
159
|
-
test_files:
|
152
|
+
test_files:
|
160
153
|
- test/adapters/live_test.rb
|
161
154
|
- test/adapters/logger_test.rb
|
162
155
|
- test/adapters/net_http_test.rb
|
163
156
|
- test/adapters/test_middleware_test.rb
|
164
157
|
- test/connection_test.rb
|
165
158
|
- test/env_test.rb
|
159
|
+
- test/helper.rb
|
160
|
+
- test/live_server.rb
|
166
161
|
- test/middleware_stack_test.rb
|
167
162
|
- test/request_middleware_test.rb
|
168
163
|
- test/response_middleware_test.rb
|