faraday 0.4.0 → 0.4.1
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/VERSION +1 -1
- data/faraday.gemspec +1 -1
- data/lib/faraday.rb +5 -45
- data/lib/faraday/connection.rb +15 -0
- data/test/connection_test.rb +19 -0
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.1
|
data/faraday.gemspec
CHANGED
data/lib/faraday.rb
CHANGED
@@ -4,6 +4,11 @@ module Faraday
|
|
4
4
|
class << self
|
5
5
|
attr_accessor :default_adapter
|
6
6
|
attr_writer :default_connection
|
7
|
+
|
8
|
+
private
|
9
|
+
def method_missing(name, *args, &block)
|
10
|
+
default_connection.send(name, *args, &block)
|
11
|
+
end
|
7
12
|
end
|
8
13
|
|
9
14
|
self.default_adapter = :net_http
|
@@ -12,51 +17,6 @@ module Faraday
|
|
12
17
|
@default_connection ||= Connection.new
|
13
18
|
end
|
14
19
|
|
15
|
-
# use the method signature from Faraday::Connection
|
16
|
-
def self.build(options = {}, &block)
|
17
|
-
default_connection.build(options, &block)
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.get(url = nil, headers = nil, &block)
|
21
|
-
default_connection.get(url, headers, &block)
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.post(url = nil, body = nil, headers = nil, &block)
|
25
|
-
default_connection.post(url, body, headers, &block)
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.put(url = nil, body = nil, headers = nil, &block)
|
29
|
-
default_connection.put(url, body, headers, &block)
|
30
|
-
end
|
31
|
-
|
32
|
-
def self.head(url = nil, headers = nil, &block)
|
33
|
-
default_connection.head(url, headers, &block)
|
34
|
-
end
|
35
|
-
|
36
|
-
def self.delete(url = nil, headers = nil, &block)
|
37
|
-
default_connection.delete(url, headers, &block)
|
38
|
-
end
|
39
|
-
|
40
|
-
def self.in_parallel?
|
41
|
-
default_connection.in_parallel?
|
42
|
-
end
|
43
|
-
|
44
|
-
def self.in_parallel(manager)
|
45
|
-
default_connection.in_parallel(manager)
|
46
|
-
end
|
47
|
-
|
48
|
-
def self.proxy(arg = nil)
|
49
|
-
default_connection.proxy(arg)
|
50
|
-
end
|
51
|
-
|
52
|
-
def self.url_prefix=(url)
|
53
|
-
default_connection.url_prefix = url
|
54
|
-
end
|
55
|
-
|
56
|
-
def self.path_prefix=(value)
|
57
|
-
default_connection.path_prefix = value
|
58
|
-
end
|
59
|
-
|
60
20
|
module AutoloadHelper
|
61
21
|
def register_lookup_modules(mods)
|
62
22
|
(@lookup_module_index ||= {}).update(mods)
|
data/lib/faraday/connection.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'addressable/uri'
|
2
2
|
require 'set'
|
3
|
+
require 'base64'
|
3
4
|
|
4
5
|
module Faraday
|
5
6
|
class Connection
|
@@ -68,6 +69,20 @@ module Faraday
|
|
68
69
|
run_request :delete, url, nil, headers, &block
|
69
70
|
end
|
70
71
|
|
72
|
+
def basic_auth(login, pass)
|
73
|
+
@headers['authorization'] = "Basic #{Base64.encode64("#{login}:#{pass}").strip}"
|
74
|
+
end
|
75
|
+
|
76
|
+
def token_auth(token, options = {})
|
77
|
+
values = ["token=#{token.to_s.inspect}"]
|
78
|
+
options.each do |key, value|
|
79
|
+
values << "#{key}=#{value.to_s.inspect}"
|
80
|
+
end
|
81
|
+
# 21 = "Authorization: Token ".size
|
82
|
+
comma = ",\n#{' ' * 21}"
|
83
|
+
@headers['authorization'] = "Token #{values * comma}"
|
84
|
+
end
|
85
|
+
|
71
86
|
def in_parallel?
|
72
87
|
!!@parallel_manager
|
73
88
|
end
|
data/test/connection_test.rb
CHANGED
@@ -52,6 +52,25 @@ class TestConnection < Faraday::TestCase
|
|
52
52
|
assert_equal '1', conn.headers['A']
|
53
53
|
end
|
54
54
|
|
55
|
+
def test_basic_auth_sets_authorization_header
|
56
|
+
conn = Faraday::Connection.new
|
57
|
+
conn.basic_auth 'Aladdin', 'open sesame'
|
58
|
+
assert_equal 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==', conn.headers['Authorization']
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_token_auth_sets_authorization_header
|
62
|
+
conn = Faraday::Connection.new
|
63
|
+
conn.token_auth 'abcdef'
|
64
|
+
assert_equal 'Token token="abcdef"', conn.headers['Authorization']
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_token_auth_with_options_sets_authorization_header
|
68
|
+
conn = Faraday::Connection.new
|
69
|
+
conn.token_auth 'abcdef', :nonce => 'abc'
|
70
|
+
assert_equal 'Token token="abcdef",
|
71
|
+
nonce="abc"', conn.headers['Authorization']
|
72
|
+
end
|
73
|
+
|
55
74
|
def test_build_url_uses_connection_host_as_default_uri_host
|
56
75
|
conn = Faraday::Connection.new
|
57
76
|
conn.host = 'sushi.com'
|