faraday 0.7.4 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +276 -0
- data/LICENSE.md +1 -1
- data/README.md +40 -153
- data/Rakefile +4 -139
- data/examples/client_spec.rb +65 -0
- data/examples/client_test.rb +79 -0
- data/lib/faraday/adapter/em_http.rb +286 -0
- data/lib/faraday/adapter/em_http_ssl_patch.rb +62 -0
- data/lib/faraday/adapter/em_synchrony/parallel_manager.rb +69 -0
- data/lib/faraday/adapter/em_synchrony.rb +120 -36
- data/lib/faraday/adapter/excon.rb +108 -12
- data/lib/faraday/adapter/httpclient.rb +152 -0
- data/lib/faraday/adapter/net_http.rb +187 -43
- data/lib/faraday/adapter/net_http_persistent.rb +91 -0
- data/lib/faraday/adapter/patron.rb +106 -10
- data/lib/faraday/adapter/rack.rb +75 -0
- data/lib/faraday/adapter/test.rb +160 -61
- data/lib/faraday/adapter/typhoeus.rb +7 -46
- data/lib/faraday/adapter.rb +105 -33
- data/lib/faraday/adapter_registry.rb +30 -0
- data/lib/faraday/autoload.rb +95 -0
- data/lib/faraday/connection.rb +525 -157
- data/lib/faraday/dependency_loader.rb +37 -0
- data/lib/faraday/encoders/flat_params_encoder.rb +98 -0
- data/lib/faraday/encoders/nested_params_encoder.rb +171 -0
- data/lib/faraday/error.rb +122 -30
- data/lib/faraday/file_part.rb +128 -0
- data/lib/faraday/logging/formatter.rb +105 -0
- data/lib/faraday/middleware.rb +14 -22
- data/lib/faraday/middleware_registry.rb +129 -0
- data/lib/faraday/options/connection_options.rb +22 -0
- data/lib/faraday/options/env.rb +181 -0
- data/lib/faraday/options/proxy_options.rb +28 -0
- data/lib/faraday/options/request_options.rb +22 -0
- data/lib/faraday/options/ssl_options.rb +59 -0
- data/lib/faraday/options.rb +222 -0
- data/lib/faraday/param_part.rb +53 -0
- data/lib/faraday/parameters.rb +5 -0
- data/lib/faraday/rack_builder.rb +248 -0
- data/lib/faraday/request/authorization.rb +55 -0
- data/lib/faraday/request/basic_authentication.rb +20 -0
- data/lib/faraday/request/instrumentation.rb +54 -0
- data/lib/faraday/request/multipart.rb +84 -48
- data/lib/faraday/request/retry.rb +239 -0
- data/lib/faraday/request/token_authentication.rb +20 -0
- data/lib/faraday/request/url_encoded.rb +46 -27
- data/lib/faraday/request.rb +112 -50
- data/lib/faraday/response/logger.rb +24 -25
- data/lib/faraday/response/raise_error.rb +40 -11
- data/lib/faraday/response.rb +44 -35
- data/lib/faraday/utils/headers.rb +139 -0
- data/lib/faraday/utils/params_hash.rb +61 -0
- data/lib/faraday/utils.rb +72 -117
- data/lib/faraday.rb +142 -64
- data/spec/external_adapters/faraday_specs_setup.rb +14 -0
- data/spec/faraday/adapter/em_http_spec.rb +47 -0
- data/spec/faraday/adapter/em_synchrony_spec.rb +16 -0
- data/spec/faraday/adapter/excon_spec.rb +49 -0
- data/spec/faraday/adapter/httpclient_spec.rb +73 -0
- data/spec/faraday/adapter/net_http_persistent_spec.rb +57 -0
- data/spec/faraday/adapter/net_http_spec.rb +64 -0
- data/spec/faraday/adapter/patron_spec.rb +18 -0
- data/spec/faraday/adapter/rack_spec.rb +8 -0
- data/spec/faraday/adapter/typhoeus_spec.rb +7 -0
- data/spec/faraday/adapter_registry_spec.rb +28 -0
- data/spec/faraday/adapter_spec.rb +55 -0
- data/spec/faraday/composite_read_io_spec.rb +80 -0
- data/spec/faraday/connection_spec.rb +691 -0
- data/spec/faraday/error_spec.rb +45 -0
- data/spec/faraday/middleware_spec.rb +26 -0
- data/spec/faraday/options/env_spec.rb +70 -0
- data/spec/faraday/options/options_spec.rb +297 -0
- data/spec/faraday/options/proxy_options_spec.rb +37 -0
- data/spec/faraday/options/request_options_spec.rb +19 -0
- data/spec/faraday/params_encoders/flat_spec.rb +34 -0
- data/spec/faraday/params_encoders/nested_spec.rb +134 -0
- data/spec/faraday/rack_builder_spec.rb +196 -0
- data/spec/faraday/request/authorization_spec.rb +88 -0
- data/spec/faraday/request/instrumentation_spec.rb +76 -0
- data/spec/faraday/request/multipart_spec.rb +274 -0
- data/spec/faraday/request/retry_spec.rb +242 -0
- data/spec/faraday/request/url_encoded_spec.rb +83 -0
- data/spec/faraday/request_spec.rb +109 -0
- data/spec/faraday/response/logger_spec.rb +220 -0
- data/spec/faraday/response/middleware_spec.rb +68 -0
- data/spec/faraday/response/raise_error_spec.rb +106 -0
- data/spec/faraday/response_spec.rb +75 -0
- data/spec/faraday/utils/headers_spec.rb +82 -0
- data/spec/faraday/utils_spec.rb +56 -0
- data/spec/faraday_spec.rb +37 -0
- data/spec/spec_helper.rb +132 -0
- data/spec/support/disabling_stub.rb +14 -0
- data/spec/support/fake_safe_buffer.rb +15 -0
- data/spec/support/helper_methods.rb +133 -0
- data/spec/support/shared_examples/adapter.rb +104 -0
- data/spec/support/shared_examples/params_encoder.rb +18 -0
- data/spec/support/shared_examples/request_method.rb +234 -0
- data/spec/support/streaming_response_checker.rb +35 -0
- data/spec/support/webmock_rack_app.rb +68 -0
- metadata +126 -126
- data/Gemfile +0 -29
- data/config.ru +0 -6
- data/faraday.gemspec +0 -92
- data/lib/faraday/adapter/action_dispatch.rb +0 -29
- data/lib/faraday/builder.rb +0 -160
- data/lib/faraday/request/json.rb +0 -35
- data/lib/faraday/upload_io.rb +0 -23
- data/test/adapters/live_test.rb +0 -205
- data/test/adapters/logger_test.rb +0 -37
- data/test/adapters/net_http_test.rb +0 -33
- data/test/adapters/test_middleware_test.rb +0 -70
- data/test/connection_test.rb +0 -254
- data/test/env_test.rb +0 -158
- data/test/helper.rb +0 -41
- data/test/live_server.rb +0 -45
- data/test/middleware_stack_test.rb +0 -118
- data/test/request_middleware_test.rb +0 -116
- data/test/response_middleware_test.rb +0 -74
metadata
CHANGED
@@ -1,168 +1,168 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.7.4
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
6
5
|
platform: ruby
|
7
|
-
authors:
|
8
|
-
-
|
6
|
+
authors:
|
7
|
+
- "@technoweenie"
|
8
|
+
- "@iMacTia"
|
9
|
+
- "@olleolleolle"
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
name: rake
|
17
|
-
prerelease: false
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
|
-
requirements:
|
21
|
-
- - ~>
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: "0.9"
|
24
|
-
type: :development
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: test-unit
|
28
|
-
prerelease: false
|
29
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
30
|
-
none: false
|
31
|
-
requirements:
|
32
|
-
- - ~>
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: "2.3"
|
35
|
-
type: :development
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: webmock
|
39
|
-
prerelease: false
|
40
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: "1.6"
|
46
|
-
type: :development
|
47
|
-
version_requirements: *id003
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: addressable
|
50
|
-
prerelease: false
|
51
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
52
|
-
none: false
|
53
|
-
requirements:
|
54
|
-
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: 2.2.6
|
57
|
-
type: :runtime
|
58
|
-
version_requirements: *id004
|
59
|
-
- !ruby/object:Gem::Dependency
|
13
|
+
date: 2020-03-29 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
60
16
|
name: multipart-post
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - ">="
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.2'
|
22
|
+
- - "<"
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: '3'
|
68
25
|
type: :runtime
|
69
|
-
version_requirements: *id005
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: rack
|
72
26
|
prerelease: false
|
73
|
-
|
74
|
-
|
75
|
-
requirements:
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
76
29
|
- - ">="
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: 1.
|
79
|
-
- - <
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version:
|
82
|
-
|
83
|
-
version_requirements: *id006
|
84
|
-
description: HTTP/REST API client library.
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '1.2'
|
32
|
+
- - "<"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '3'
|
35
|
+
description:
|
85
36
|
email: technoweenie@gmail.com
|
86
37
|
executables: []
|
87
|
-
|
88
38
|
extensions: []
|
89
|
-
|
90
39
|
extra_rdoc_files: []
|
91
|
-
|
92
|
-
|
93
|
-
- Gemfile
|
40
|
+
files:
|
41
|
+
- CHANGELOG.md
|
94
42
|
- LICENSE.md
|
95
43
|
- README.md
|
96
44
|
- Rakefile
|
97
|
-
-
|
98
|
-
-
|
45
|
+
- examples/client_spec.rb
|
46
|
+
- examples/client_test.rb
|
99
47
|
- lib/faraday.rb
|
100
48
|
- lib/faraday/adapter.rb
|
101
|
-
- lib/faraday/adapter/
|
49
|
+
- lib/faraday/adapter/em_http.rb
|
50
|
+
- lib/faraday/adapter/em_http_ssl_patch.rb
|
102
51
|
- lib/faraday/adapter/em_synchrony.rb
|
52
|
+
- lib/faraday/adapter/em_synchrony/parallel_manager.rb
|
103
53
|
- lib/faraday/adapter/excon.rb
|
54
|
+
- lib/faraday/adapter/httpclient.rb
|
104
55
|
- lib/faraday/adapter/net_http.rb
|
56
|
+
- lib/faraday/adapter/net_http_persistent.rb
|
105
57
|
- lib/faraday/adapter/patron.rb
|
58
|
+
- lib/faraday/adapter/rack.rb
|
106
59
|
- lib/faraday/adapter/test.rb
|
107
60
|
- lib/faraday/adapter/typhoeus.rb
|
108
|
-
- lib/faraday/
|
61
|
+
- lib/faraday/adapter_registry.rb
|
62
|
+
- lib/faraday/autoload.rb
|
109
63
|
- lib/faraday/connection.rb
|
64
|
+
- lib/faraday/dependency_loader.rb
|
65
|
+
- lib/faraday/encoders/flat_params_encoder.rb
|
66
|
+
- lib/faraday/encoders/nested_params_encoder.rb
|
110
67
|
- lib/faraday/error.rb
|
68
|
+
- lib/faraday/file_part.rb
|
69
|
+
- lib/faraday/logging/formatter.rb
|
111
70
|
- lib/faraday/middleware.rb
|
71
|
+
- lib/faraday/middleware_registry.rb
|
72
|
+
- lib/faraday/options.rb
|
73
|
+
- lib/faraday/options/connection_options.rb
|
74
|
+
- lib/faraday/options/env.rb
|
75
|
+
- lib/faraday/options/proxy_options.rb
|
76
|
+
- lib/faraday/options/request_options.rb
|
77
|
+
- lib/faraday/options/ssl_options.rb
|
78
|
+
- lib/faraday/param_part.rb
|
79
|
+
- lib/faraday/parameters.rb
|
80
|
+
- lib/faraday/rack_builder.rb
|
112
81
|
- lib/faraday/request.rb
|
113
|
-
- lib/faraday/request/
|
82
|
+
- lib/faraday/request/authorization.rb
|
83
|
+
- lib/faraday/request/basic_authentication.rb
|
84
|
+
- lib/faraday/request/instrumentation.rb
|
114
85
|
- lib/faraday/request/multipart.rb
|
86
|
+
- lib/faraday/request/retry.rb
|
87
|
+
- lib/faraday/request/token_authentication.rb
|
115
88
|
- lib/faraday/request/url_encoded.rb
|
116
89
|
- lib/faraday/response.rb
|
117
90
|
- lib/faraday/response/logger.rb
|
118
91
|
- lib/faraday/response/raise_error.rb
|
119
|
-
- lib/faraday/upload_io.rb
|
120
92
|
- lib/faraday/utils.rb
|
121
|
-
-
|
122
|
-
-
|
123
|
-
-
|
124
|
-
-
|
125
|
-
-
|
126
|
-
-
|
127
|
-
-
|
128
|
-
-
|
129
|
-
-
|
130
|
-
-
|
131
|
-
-
|
132
|
-
|
133
|
-
|
134
|
-
|
93
|
+
- lib/faraday/utils/headers.rb
|
94
|
+
- lib/faraday/utils/params_hash.rb
|
95
|
+
- spec/external_adapters/faraday_specs_setup.rb
|
96
|
+
- spec/faraday/adapter/em_http_spec.rb
|
97
|
+
- spec/faraday/adapter/em_synchrony_spec.rb
|
98
|
+
- spec/faraday/adapter/excon_spec.rb
|
99
|
+
- spec/faraday/adapter/httpclient_spec.rb
|
100
|
+
- spec/faraday/adapter/net_http_persistent_spec.rb
|
101
|
+
- spec/faraday/adapter/net_http_spec.rb
|
102
|
+
- spec/faraday/adapter/patron_spec.rb
|
103
|
+
- spec/faraday/adapter/rack_spec.rb
|
104
|
+
- spec/faraday/adapter/typhoeus_spec.rb
|
105
|
+
- spec/faraday/adapter_registry_spec.rb
|
106
|
+
- spec/faraday/adapter_spec.rb
|
107
|
+
- spec/faraday/composite_read_io_spec.rb
|
108
|
+
- spec/faraday/connection_spec.rb
|
109
|
+
- spec/faraday/error_spec.rb
|
110
|
+
- spec/faraday/middleware_spec.rb
|
111
|
+
- spec/faraday/options/env_spec.rb
|
112
|
+
- spec/faraday/options/options_spec.rb
|
113
|
+
- spec/faraday/options/proxy_options_spec.rb
|
114
|
+
- spec/faraday/options/request_options_spec.rb
|
115
|
+
- spec/faraday/params_encoders/flat_spec.rb
|
116
|
+
- spec/faraday/params_encoders/nested_spec.rb
|
117
|
+
- spec/faraday/rack_builder_spec.rb
|
118
|
+
- spec/faraday/request/authorization_spec.rb
|
119
|
+
- spec/faraday/request/instrumentation_spec.rb
|
120
|
+
- spec/faraday/request/multipart_spec.rb
|
121
|
+
- spec/faraday/request/retry_spec.rb
|
122
|
+
- spec/faraday/request/url_encoded_spec.rb
|
123
|
+
- spec/faraday/request_spec.rb
|
124
|
+
- spec/faraday/response/logger_spec.rb
|
125
|
+
- spec/faraday/response/middleware_spec.rb
|
126
|
+
- spec/faraday/response/raise_error_spec.rb
|
127
|
+
- spec/faraday/response_spec.rb
|
128
|
+
- spec/faraday/utils/headers_spec.rb
|
129
|
+
- spec/faraday/utils_spec.rb
|
130
|
+
- spec/faraday_spec.rb
|
131
|
+
- spec/spec_helper.rb
|
132
|
+
- spec/support/disabling_stub.rb
|
133
|
+
- spec/support/fake_safe_buffer.rb
|
134
|
+
- spec/support/helper_methods.rb
|
135
|
+
- spec/support/shared_examples/adapter.rb
|
136
|
+
- spec/support/shared_examples/params_encoder.rb
|
137
|
+
- spec/support/shared_examples/request_method.rb
|
138
|
+
- spec/support/streaming_response_checker.rb
|
139
|
+
- spec/support/webmock_rack_app.rb
|
140
|
+
homepage: https://lostisland.github.io/faraday
|
141
|
+
licenses:
|
142
|
+
- MIT
|
143
|
+
metadata:
|
144
|
+
homepage_uri: https://lostisland.github.io/faraday
|
145
|
+
changelog_uri: https://github.com/lostisland/faraday/releases/tag/v1.0.1
|
146
|
+
source_code_uri: https://github.com/lostisland/faraday
|
147
|
+
bug_tracker_uri: https://github.com/lostisland/faraday/issues
|
135
148
|
post_install_message:
|
136
149
|
rdoc_options: []
|
137
|
-
|
138
|
-
require_paths:
|
150
|
+
require_paths:
|
139
151
|
- lib
|
140
|
-
|
141
|
-
|
142
|
-
requirements:
|
152
|
+
- spec/external_adapters
|
153
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
143
155
|
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version:
|
146
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
-
|
148
|
-
requirements:
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '2.3'
|
158
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
|
+
requirements:
|
149
160
|
- - ">="
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version:
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: '0'
|
152
163
|
requirements: []
|
153
|
-
|
154
|
-
rubyforge_project: faraday
|
155
|
-
rubygems_version: 1.8.5
|
164
|
+
rubygems_version: 3.0.3
|
156
165
|
signing_key:
|
157
|
-
specification_version:
|
166
|
+
specification_version: 4
|
158
167
|
summary: HTTP/REST API client library.
|
159
|
-
test_files:
|
160
|
-
- test/adapters/live_test.rb
|
161
|
-
- test/adapters/logger_test.rb
|
162
|
-
- test/adapters/net_http_test.rb
|
163
|
-
- test/adapters/test_middleware_test.rb
|
164
|
-
- test/connection_test.rb
|
165
|
-
- test/env_test.rb
|
166
|
-
- test/middleware_stack_test.rb
|
167
|
-
- test/request_middleware_test.rb
|
168
|
-
- test/response_middleware_test.rb
|
168
|
+
test_files: []
|
data/Gemfile
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
source 'http://rubygems.org'
|
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
|
-
group :development do
|
8
|
-
gem 'sinatra', '~> 1.2'
|
9
|
-
end
|
10
|
-
|
11
|
-
group :test do
|
12
|
-
gem 'em-http-request', '~> 0.3', :require => 'em-http'
|
13
|
-
gem 'em-synchrony', '~> 0.2', :require => ['em-synchrony', 'em-synchrony/em-http'], :platforms => :ruby_19
|
14
|
-
gem 'excon', '~> 0.6'
|
15
|
-
gem 'leftright', '~> 0.9', :require => false
|
16
|
-
gem 'patron', '~> 0.4'
|
17
|
-
gem 'rake', '~> 0.8'
|
18
|
-
gem 'test-unit', '~> 2.3'
|
19
|
-
gem 'typhoeus', '~> 0.2'
|
20
|
-
gem 'webmock', '~> 1.6'
|
21
|
-
# ActiveSupport::JSON will be used in ruby 1.8 and Yajl in 1.9; this is to test against both adapters
|
22
|
-
gem 'activesupport', '~> 2.3', :require => nil, :platforms => [:ruby_18, :jruby]
|
23
|
-
gem 'yajl-ruby', '~> 0.8', :require => 'yajl', :platforms => :ruby_19
|
24
|
-
end
|
25
|
-
|
26
|
-
platforms :jruby do
|
27
|
-
gem 'jruby-openssl', '~> 0.7'
|
28
|
-
gem 'ffi-ncurses', '~> 0.3'
|
29
|
-
end
|
data/config.ru
DELETED
data/faraday.gemspec
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
## This is the rakegem gemspec template. Make sure you read and understand
|
2
|
-
## all of the comments. Some sections require modification, and others can
|
3
|
-
## be deleted if you don't need them. Once you understand the contents of
|
4
|
-
## this file, feel free to delete any comments that begin with two hash marks.
|
5
|
-
## You can find comprehensive Gem::Specification documentation, at
|
6
|
-
## http://docs.rubygems.org/read/chapter/20
|
7
|
-
Gem::Specification.new do |s|
|
8
|
-
s.specification_version = 2 if s.respond_to? :specification_version=
|
9
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 1.3.5") if s.respond_to? :required_rubygems_version=
|
10
|
-
|
11
|
-
## Leave these as is they will be modified for you by the rake gemspec task.
|
12
|
-
## If your rubyforge_project name is different, then edit it and comment out
|
13
|
-
## the sub! line in the Rakefile
|
14
|
-
s.name = 'faraday'
|
15
|
-
s.version = '0.7.4'
|
16
|
-
s.date = '2011-07-08'
|
17
|
-
s.rubyforge_project = 'faraday'
|
18
|
-
|
19
|
-
## Make sure your summary is short. The description may be as long
|
20
|
-
## as you like.
|
21
|
-
s.summary = "HTTP/REST API client library."
|
22
|
-
s.description = "HTTP/REST API client library."
|
23
|
-
|
24
|
-
## List the primary authors. If there are a bunch of authors, it's probably
|
25
|
-
## better to set the email to an email list or something. If you don't have
|
26
|
-
## a custom homepage, consider using your GitHub URL or the like.
|
27
|
-
s.authors = ["Rick Olson"]
|
28
|
-
s.email = 'technoweenie@gmail.com'
|
29
|
-
s.homepage = 'http://github.com/technoweenie/faraday'
|
30
|
-
|
31
|
-
## This gets added to the $LOAD_PATH so that 'lib/NAME.rb' can be required as
|
32
|
-
## require 'NAME.rb' or'/lib/NAME/file.rb' can be as require 'NAME/file.rb'
|
33
|
-
s.require_paths = %w[lib]
|
34
|
-
|
35
|
-
s.add_development_dependency 'rake', '~> 0.9'
|
36
|
-
s.add_development_dependency 'test-unit', '~> 2.3'
|
37
|
-
s.add_development_dependency 'webmock', '~> 1.6'
|
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']
|
41
|
-
|
42
|
-
## Leave this section as-is. It will be automatically generated from the
|
43
|
-
## contents of your Git repository via the gemspec task. DO NOT REMOVE
|
44
|
-
## THE MANIFEST COMMENTS, they are used as delimiters by the task.
|
45
|
-
# = MANIFEST =
|
46
|
-
s.files = %w[
|
47
|
-
Gemfile
|
48
|
-
LICENSE.md
|
49
|
-
README.md
|
50
|
-
Rakefile
|
51
|
-
config.ru
|
52
|
-
faraday.gemspec
|
53
|
-
lib/faraday.rb
|
54
|
-
lib/faraday/adapter.rb
|
55
|
-
lib/faraday/adapter/action_dispatch.rb
|
56
|
-
lib/faraday/adapter/em_synchrony.rb
|
57
|
-
lib/faraday/adapter/excon.rb
|
58
|
-
lib/faraday/adapter/net_http.rb
|
59
|
-
lib/faraday/adapter/patron.rb
|
60
|
-
lib/faraday/adapter/test.rb
|
61
|
-
lib/faraday/adapter/typhoeus.rb
|
62
|
-
lib/faraday/builder.rb
|
63
|
-
lib/faraday/connection.rb
|
64
|
-
lib/faraday/error.rb
|
65
|
-
lib/faraday/middleware.rb
|
66
|
-
lib/faraday/request.rb
|
67
|
-
lib/faraday/request/json.rb
|
68
|
-
lib/faraday/request/multipart.rb
|
69
|
-
lib/faraday/request/url_encoded.rb
|
70
|
-
lib/faraday/response.rb
|
71
|
-
lib/faraday/response/logger.rb
|
72
|
-
lib/faraday/response/raise_error.rb
|
73
|
-
lib/faraday/upload_io.rb
|
74
|
-
lib/faraday/utils.rb
|
75
|
-
test/adapters/live_test.rb
|
76
|
-
test/adapters/logger_test.rb
|
77
|
-
test/adapters/net_http_test.rb
|
78
|
-
test/adapters/test_middleware_test.rb
|
79
|
-
test/connection_test.rb
|
80
|
-
test/env_test.rb
|
81
|
-
test/helper.rb
|
82
|
-
test/live_server.rb
|
83
|
-
test/middleware_stack_test.rb
|
84
|
-
test/request_middleware_test.rb
|
85
|
-
test/response_middleware_test.rb
|
86
|
-
]
|
87
|
-
# = MANIFEST =
|
88
|
-
|
89
|
-
## Test files will be grabbed from the file list. Make sure the path glob
|
90
|
-
## matches what you actually use.
|
91
|
-
s.test_files = s.files.select { |path| path =~ /^test\/.*_test\.rb/ }
|
92
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Faraday
|
2
|
-
class Adapter
|
3
|
-
class ActionDispatch < Faraday::Adapter
|
4
|
-
attr_reader :session
|
5
|
-
|
6
|
-
# Initializes a new middleware instance for each request. Instead of
|
7
|
-
# initiating an HTTP request with a web server, this adapter calls
|
8
|
-
# a Rails 3 app using integration tests.
|
9
|
-
#
|
10
|
-
# app - The current Faraday request.
|
11
|
-
# session - An ActionDispatch::Integration::Session instance.
|
12
|
-
#
|
13
|
-
# Returns nothing.
|
14
|
-
def initialize(app, session)
|
15
|
-
super(app)
|
16
|
-
@session = session
|
17
|
-
@session.reset!
|
18
|
-
end
|
19
|
-
|
20
|
-
def call(env)
|
21
|
-
super
|
22
|
-
@session.__send__(env[:method], env[:url].request_uri, env[:body], env[:request_headers])
|
23
|
-
resp = @session.response
|
24
|
-
save_response(env, resp.status, resp.body, resp.headers)
|
25
|
-
@app.call env
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
data/lib/faraday/builder.rb
DELETED
@@ -1,160 +0,0 @@
|
|
1
|
-
module Faraday
|
2
|
-
# Possibly going to extend this a bit.
|
3
|
-
#
|
4
|
-
# Faraday::Connection.new(:url => 'http://sushi.com') do |builder|
|
5
|
-
# builder.request :url_encoded # Faraday::Request::UrlEncoded
|
6
|
-
# builder.adapter :net_http # Faraday::Adapter::NetHttp
|
7
|
-
# end
|
8
|
-
class Builder
|
9
|
-
attr_accessor :handlers
|
10
|
-
|
11
|
-
def self.create
|
12
|
-
new { |builder| yield builder }
|
13
|
-
end
|
14
|
-
|
15
|
-
# Error raised when trying to modify the stack after calling `lock!`
|
16
|
-
class StackLocked < RuntimeError; end
|
17
|
-
|
18
|
-
# borrowed from ActiveSupport::Dependencies::Reference &
|
19
|
-
# ActionDispatch::MiddlewareStack::Middleware
|
20
|
-
class Handler
|
21
|
-
@@constants = Hash.new { |h, k|
|
22
|
-
h[k] = k.respond_to?(:constantize) ? k.constantize : Object.const_get(k)
|
23
|
-
}
|
24
|
-
|
25
|
-
attr_reader :name
|
26
|
-
|
27
|
-
def initialize(klass, *args, &block)
|
28
|
-
@name = klass.to_s
|
29
|
-
@@constants[@name] = klass if klass.respond_to?(:name)
|
30
|
-
@args, @block = args, block
|
31
|
-
end
|
32
|
-
|
33
|
-
def klass() @@constants[@name] end
|
34
|
-
def inspect() @name end
|
35
|
-
|
36
|
-
def ==(other)
|
37
|
-
if other.is_a? Handler
|
38
|
-
self.name == other.name
|
39
|
-
elsif other.respond_to? :name
|
40
|
-
klass == other
|
41
|
-
else
|
42
|
-
@name == other.to_s
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def build(app)
|
47
|
-
klass.new(app, *@args, &@block)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def initialize(handlers = [])
|
52
|
-
@handlers = handlers
|
53
|
-
if block_given?
|
54
|
-
build(&Proc.new)
|
55
|
-
elsif @handlers.empty?
|
56
|
-
# default stack, if nothing else is configured
|
57
|
-
self.request :url_encoded
|
58
|
-
self.adapter Faraday.default_adapter
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def build(options = {})
|
63
|
-
raise_if_locked
|
64
|
-
@handlers.clear unless options[:keep]
|
65
|
-
yield self if block_given?
|
66
|
-
end
|
67
|
-
|
68
|
-
def [](idx)
|
69
|
-
@handlers[idx]
|
70
|
-
end
|
71
|
-
|
72
|
-
def ==(other)
|
73
|
-
other.is_a?(self.class) && @handlers == other.handlers
|
74
|
-
end
|
75
|
-
|
76
|
-
def dup
|
77
|
-
self.class.new(@handlers.dup)
|
78
|
-
end
|
79
|
-
|
80
|
-
def to_app(inner_app)
|
81
|
-
# last added handler is the deepest and thus closest to the inner app
|
82
|
-
@handlers.reverse.inject(inner_app) { |app, handler| handler.build(app) }
|
83
|
-
end
|
84
|
-
|
85
|
-
# Locks the middleware stack to ensure no further modifications are possible.
|
86
|
-
def lock!
|
87
|
-
@handlers.freeze
|
88
|
-
end
|
89
|
-
|
90
|
-
def locked?
|
91
|
-
@handlers.frozen?
|
92
|
-
end
|
93
|
-
|
94
|
-
def use(klass, *args)
|
95
|
-
raise_if_locked
|
96
|
-
block = block_given? ? Proc.new : nil
|
97
|
-
@handlers << self.class::Handler.new(klass, *args, &block)
|
98
|
-
end
|
99
|
-
|
100
|
-
def request(key, *args)
|
101
|
-
block = block_given? ? Proc.new : nil
|
102
|
-
use_symbol(Faraday::Request, key, *args, &block)
|
103
|
-
end
|
104
|
-
|
105
|
-
def response(key, *args)
|
106
|
-
block = block_given? ? Proc.new : nil
|
107
|
-
use_symbol(Faraday::Response, key, *args, &block)
|
108
|
-
end
|
109
|
-
|
110
|
-
def adapter(key, *args)
|
111
|
-
block = block_given? ? Proc.new : nil
|
112
|
-
use_symbol(Faraday::Adapter, key, *args, &block)
|
113
|
-
end
|
114
|
-
|
115
|
-
## methods to push onto the various positions in the stack:
|
116
|
-
|
117
|
-
def insert(index, *args, &block)
|
118
|
-
raise_if_locked
|
119
|
-
index = assert_index(index)
|
120
|
-
handler = self.class::Handler.new(*args, &block)
|
121
|
-
@handlers.insert(index, handler)
|
122
|
-
end
|
123
|
-
|
124
|
-
alias_method :insert_before, :insert
|
125
|
-
|
126
|
-
def insert_after(index, *args, &block)
|
127
|
-
index = assert_index(index)
|
128
|
-
insert(index + 1, *args, &block)
|
129
|
-
end
|
130
|
-
|
131
|
-
def swap(index, *args, &block)
|
132
|
-
raise_if_locked
|
133
|
-
index = assert_index(index)
|
134
|
-
@handlers.delete_at(index)
|
135
|
-
insert(index, *args, &block)
|
136
|
-
end
|
137
|
-
|
138
|
-
def delete(handler)
|
139
|
-
raise_if_locked
|
140
|
-
@handlers.delete(handler)
|
141
|
-
end
|
142
|
-
|
143
|
-
private
|
144
|
-
|
145
|
-
def raise_if_locked
|
146
|
-
raise StackLocked, "can't modify middleware stack after making a request" if locked?
|
147
|
-
end
|
148
|
-
|
149
|
-
def use_symbol(mod, key, *args)
|
150
|
-
block = block_given? ? Proc.new : nil
|
151
|
-
use(mod.lookup_module(key), *args, &block)
|
152
|
-
end
|
153
|
-
|
154
|
-
def assert_index(index)
|
155
|
-
idx = index.is_a?(Integer) ? index : @handlers.index(index)
|
156
|
-
raise "No such handler: #{index.inspect}" unless idx
|
157
|
-
idx
|
158
|
-
end
|
159
|
-
end
|
160
|
-
end
|
data/lib/faraday/request/json.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
module Faraday
|
2
|
-
class Request::JSON < Request::UrlEncoded
|
3
|
-
self.mime_type = 'application/json'.freeze
|
4
|
-
|
5
|
-
class << self
|
6
|
-
attr_writer :adapter
|
7
|
-
|
8
|
-
def adapter
|
9
|
-
@adapter or raise Error::MissingDependency, "No JSON adapter available. Install either activesupport or yajl-ruby."
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
# loads the JSON encoder either from yajl-ruby or activesupport
|
14
|
-
dependency do
|
15
|
-
begin
|
16
|
-
require 'yajl'
|
17
|
-
self.adapter = Yajl::Encoder
|
18
|
-
rescue LoadError, NameError
|
19
|
-
require 'active_support/core_ext/module/attribute_accessors' # AS 2.3.11
|
20
|
-
require 'active_support/core_ext/kernel/reporting' # AS 2.3.11
|
21
|
-
require 'active_support/json/encoding'
|
22
|
-
require 'active_support/ordered_hash' # AS 3.0.4
|
23
|
-
self.adapter = ActiveSupport::JSON
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def call(env)
|
28
|
-
match_content_type(env) do |data|
|
29
|
-
# encode with the first successfully loaded adapter
|
30
|
-
env[:body] = self.class.adapter.encode data
|
31
|
-
end
|
32
|
-
@app.call env
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
data/lib/faraday/upload_io.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
begin
|
2
|
-
require 'composite_io'
|
3
|
-
require 'parts'
|
4
|
-
require 'stringio'
|
5
|
-
rescue LoadError
|
6
|
-
$stderr.puts "Install the multipart-post gem."
|
7
|
-
raise
|
8
|
-
end
|
9
|
-
|
10
|
-
module Faraday
|
11
|
-
class CompositeReadIO < ::CompositeReadIO
|
12
|
-
attr_reader :length
|
13
|
-
|
14
|
-
def initialize(parts)
|
15
|
-
@length = parts.inject(0) { |sum, part| sum + part.length }
|
16
|
-
ios = parts.map{ |part| part.to_io }
|
17
|
-
super(*ios)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
UploadIO = ::UploadIO
|
22
|
-
Parts = ::Parts
|
23
|
-
end
|