faraday 0.7.4 → 1.0.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.
- 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
|