rack-client 0.3.0 → 0.3.1.pre.a
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/Rakefile +12 -14
- data/lib/rack/client/adapter/base.rb +23 -14
- data/lib/rack/client/adapter/base.rbc +1802 -0
- data/lib/rack/client/adapter/simple.rb +53 -21
- data/lib/rack/client/adapter/simple.rbc +2063 -0
- data/lib/rack/client/adapter.rbc +225 -0
- data/lib/rack/client/{dual_band.rb → core/dual_band.rb} +0 -0
- data/lib/rack/client/core/dual_band.rbc +380 -0
- data/lib/rack/client/{headers.rb → core/headers.rb} +1 -1
- data/lib/rack/client/core/headers.rbc +1811 -0
- data/lib/rack/client/core/response.rb +50 -0
- data/lib/rack/client/core/response.rbc +1105 -0
- data/lib/rack/client/core.rb +3 -0
- data/lib/rack/client/core.rbc +85 -0
- data/lib/rack/client/handler/em-http.rb +3 -7
- data/lib/rack/client/handler/em-http.rbc +1648 -0
- data/lib/rack/client/handler/excon.rb +6 -14
- data/lib/rack/client/handler/excon.rbc +1270 -0
- data/lib/rack/client/handler/net_http.rb +7 -4
- data/lib/rack/client/handler/net_http.rbc +2400 -0
- data/lib/rack/client/handler/typhoeus.rb +12 -5
- data/lib/rack/client/handler/typhoeus.rbc +1885 -0
- data/lib/rack/client/handler.rbc +340 -0
- data/lib/rack/client/{auth → middleware/auth}/abstract/challenge.rb +0 -0
- data/lib/rack/client/middleware/auth/abstract/challenge.rbc +1453 -0
- data/lib/rack/client/{auth → middleware/auth}/basic.rb +0 -0
- data/lib/rack/client/middleware/auth/basic.rbc +1566 -0
- data/lib/rack/client/{auth → middleware/auth}/digest/challenge.rb +0 -0
- data/lib/rack/client/middleware/auth/digest/challenge.rbc +1124 -0
- data/lib/rack/client/{auth → middleware/auth}/digest/md5.rb +0 -0
- data/lib/rack/client/middleware/auth/digest/md5.rbc +2241 -0
- data/lib/rack/client/{auth → middleware/auth}/digest/params.rb +0 -0
- data/lib/rack/client/middleware/auth/digest/params.rbc +365 -0
- data/lib/rack/client/middleware/auth.rb +5 -0
- data/lib/rack/client/middleware/auth.rbc +117 -0
- data/lib/rack/client/{cache → middleware/cache}/cachecontrol.rb +0 -0
- data/lib/rack/client/middleware/cache/cachecontrol.rbc +1610 -0
- data/lib/rack/client/{cache → middleware/cache}/context.rb +12 -3
- data/lib/rack/client/middleware/cache/context.rbc +2074 -0
- data/lib/rack/client/{cache → middleware/cache}/entitystore.rb +0 -0
- data/lib/rack/client/middleware/cache/entitystore.rbc +1619 -0
- data/lib/rack/client/{cache → middleware/cache}/key.rb +0 -0
- data/lib/rack/client/middleware/cache/key.rbc +1217 -0
- data/lib/rack/client/{cache → middleware/cache}/metastore.rb +0 -0
- data/lib/rack/client/middleware/cache/metastore.rbc +2754 -0
- data/lib/rack/client/{cache → middleware/cache}/options.rb +0 -0
- data/lib/rack/client/middleware/cache/options.rbc +1844 -0
- data/lib/rack/client/{cache → middleware/cache}/request.rb +0 -0
- data/lib/rack/client/middleware/cache/request.rbc +1020 -0
- data/lib/rack/client/{cache → middleware/cache}/response.rb +19 -0
- data/lib/rack/client/middleware/cache/response.rbc +1540 -0
- data/lib/rack/client/{cache → middleware/cache}/storage.rb +0 -0
- data/lib/rack/client/middleware/cache/storage.rbc +1106 -0
- data/lib/rack/client/middleware/cache.rb +19 -0
- data/lib/rack/client/middleware/cache.rbc +528 -0
- data/lib/rack/client/{cookie_jar → middleware/cookie_jar}/context.rb +0 -0
- data/lib/rack/client/middleware/cookie_jar/context.rbc +1576 -0
- data/lib/rack/client/{cookie_jar → middleware/cookie_jar}/cookie.rb +0 -0
- data/lib/rack/client/middleware/cookie_jar/cookie.rbc +2393 -0
- data/lib/rack/client/{cookie_jar → middleware/cookie_jar}/cookiestore.rb +0 -0
- data/lib/rack/client/middleware/cookie_jar/cookiestore.rbc +1209 -0
- data/lib/rack/client/{cookie_jar → middleware/cookie_jar}/options.rb +0 -0
- data/lib/rack/client/middleware/cookie_jar/options.rbc +1305 -0
- data/lib/rack/client/{cookie_jar → middleware/cookie_jar}/request.rb +0 -0
- data/lib/rack/client/middleware/cookie_jar/request.rbc +568 -0
- data/lib/rack/client/{cookie_jar → middleware/cookie_jar}/response.rb +0 -0
- data/lib/rack/client/middleware/cookie_jar/response.rbc +616 -0
- data/lib/rack/client/{cookie_jar → middleware/cookie_jar}/storage.rb +0 -0
- data/lib/rack/client/middleware/cookie_jar/storage.rbc +894 -0
- data/lib/rack/client/middleware/cookie_jar.rb +17 -0
- data/lib/rack/client/middleware/cookie_jar.rbc +471 -0
- data/lib/rack/client/{follow_redirects.rb → middleware/follow_redirects.rb} +0 -0
- data/lib/rack/client/middleware/follow_redirects.rbc +1344 -0
- data/lib/rack/client/middleware.rb +4 -0
- data/lib/rack/client/middleware.rbc +101 -0
- data/lib/rack/client/parser/base.rbc +898 -0
- data/lib/rack/client/parser/body_collection.rbc +1220 -0
- data/lib/rack/client/parser/context.rbc +540 -0
- data/lib/rack/client/parser/request.rbc +631 -0
- data/lib/rack/client/parser/response.rbc +663 -0
- data/lib/rack/client/parser.rbc +484 -0
- data/lib/rack/client/version.rb +1 -1
- data/lib/rack/client/version.rbc +203 -0
- data/lib/rack/client.rb +3 -13
- data/lib/rack/client.rbc +701 -0
- data/spec/core/headers_spec.rb +47 -0
- data/spec/core/headers_spec.rbc +1674 -0
- data/spec/core/response_spec.rb +78 -0
- data/spec/core/response_spec.rbc +2244 -0
- data/spec/handler/em_http_spec.rb +4 -19
- data/spec/handler/em_http_spec.rbc +224 -0
- data/spec/handler/excon_spec.rb +4 -4
- data/spec/handler/excon_spec.rbc +224 -0
- data/spec/handler/net_http_spec.rb +7 -4
- data/spec/handler/net_http_spec.rbc +307 -0
- data/spec/handler/typhoeus_spec.rb +6 -17
- data/spec/handler/typhoeus_spec.rbc +307 -0
- data/spec/helpers/async_helper.rb +31 -0
- data/spec/helpers/async_helper.rbc +843 -0
- data/spec/helpers/em_http_helper.rb +24 -0
- data/spec/helpers/em_http_helper.rbc +663 -0
- data/spec/helpers/excon_helper.rb +13 -0
- data/spec/helpers/excon_helper.rbc +461 -0
- data/spec/helpers/handler_helper.rb +68 -0
- data/spec/helpers/handler_helper.rbc +1769 -0
- data/spec/helpers/net_http_helper.rb +26 -0
- data/spec/helpers/net_http_helper.rbc +806 -0
- data/spec/helpers/sync_helper.rb +9 -0
- data/spec/helpers/sync_helper.rbc +311 -0
- data/spec/helpers/typhoeus_helper.rb +32 -0
- data/spec/helpers/typhoeus_helper.rbc +936 -0
- data/spec/middleware/cache_spec.rb +25 -0
- data/spec/middleware/cache_spec.rbc +712 -0
- data/spec/middleware/cookie_jar_spec.rb +19 -0
- data/spec/middleware/cookie_jar_spec.rbc +614 -0
- data/spec/middleware/etag_spec.rb +10 -0
- data/spec/middleware/etag_spec.rbc +438 -0
- data/spec/middleware/follow_redirects_spec.rb +12 -0
- data/spec/middleware/follow_redirects_spec.rbc +402 -0
- data/spec/middleware/lint_spec.rb +10 -0
- data/spec/middleware/lint_spec.rbc +392 -0
- data/spec/shared/handler_api.rb +33 -0
- data/spec/shared/handler_api.rbc +1340 -0
- data/spec/shared/streamed_response_api.rb +14 -0
- data/spec/shared/streamed_response_api.rbc +508 -0
- data/spec/spec_apps/cache.ru +14 -0
- data/spec/spec_apps/cookie.ru +12 -0
- data/spec/spec_apps/delete.ru +10 -0
- data/spec/spec_apps/get.ru +13 -0
- data/spec/spec_apps/head.ru +10 -0
- data/spec/spec_apps/hello_world.ru +1 -0
- data/spec/spec_apps/redirect.ru +13 -0
- data/spec/spec_apps/stream.ru +9 -0
- data/spec/spec_config.ru +10 -0
- data/spec/spec_helper.rb +14 -12
- metadata +190 -64
- data/lib/rack/client/cache.rb +0 -19
- data/lib/rack/client/cookie_jar.rb +0 -17
- data/lib/rack/client/response.rb +0 -9
- data/spec/apps/example.org.ru +0 -128
- data/spec/auth/basic_spec.rb +0 -69
- data/spec/auth/digest/md5_spec.rb +0 -69
- data/spec/cache_spec.rb +0 -40
- data/spec/cookie_jar_spec.rb +0 -37
- data/spec/endpoint_spec.rb +0 -30
- data/spec/follow_redirect_spec.rb +0 -27
- data/spec/handler/async_api_spec.rb +0 -69
- data/spec/handler/sync_api_spec.rb +0 -55
- data/spec/middleware_helper.rb +0 -37
- data/spec/middleware_spec.rb +0 -53
- data/spec/parser/json_spec.rb +0 -22
- data/spec/parser/yaml_spec.rb +0 -22
- data/spec/server_helper.rb +0 -72
|
@@ -2,6 +2,31 @@ module Rack
|
|
|
2
2
|
module Client
|
|
3
3
|
class Simple < Base
|
|
4
4
|
|
|
5
|
+
class CollapsedResponse < Response
|
|
6
|
+
extend Forwardable
|
|
7
|
+
attr_accessor :response
|
|
8
|
+
|
|
9
|
+
def_delegators :response, :[], :[]=, :close, :delete_cookie, :each,
|
|
10
|
+
:empty?, :finish, :headers, :redirect,
|
|
11
|
+
:set_cookie, :status, :to_a, :write
|
|
12
|
+
def_delegator :response, :body, :chunked_body
|
|
13
|
+
|
|
14
|
+
def initialize(*tuple)
|
|
15
|
+
@response, @body = Response.new(*tuple), nil
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def body
|
|
19
|
+
collapse! unless @body
|
|
20
|
+
@body
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def collapse!
|
|
24
|
+
@body = ''
|
|
25
|
+
each {|chunk| @body << chunk }
|
|
26
|
+
@body
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
5
30
|
def initialize(app, url = nil)
|
|
6
31
|
super(app)
|
|
7
32
|
@base_uri = URI.parse(url) unless url.nil?
|
|
@@ -9,37 +34,44 @@ module Rack
|
|
|
9
34
|
|
|
10
35
|
%w[ options get head delete trace ].each do |method|
|
|
11
36
|
eval <<-RUBY, binding, __FILE__, __LINE__ + 1
|
|
12
|
-
def #{method}(url, headers = {},
|
|
13
|
-
|
|
14
|
-
query_hash = Hash === query_or_params ? query_or_params : Utils.build_query(query_or_params)
|
|
15
|
-
|
|
16
|
-
uri = URI.parse(url)
|
|
17
|
-
uri.query = Utils.build_query(Utils.parse_query(uri.query).merge(query_hash))
|
|
18
|
-
|
|
19
|
-
if block_given?
|
|
20
|
-
super(uri.to_s, headers) {|*tuple| yield Response.new(*tuple) }
|
|
21
|
-
else
|
|
22
|
-
return Response.new(*super(uri.to_s, headers))
|
|
23
|
-
end
|
|
37
|
+
def #{method}(url, headers = {}, query_params = {}, &block)
|
|
38
|
+
request('#{method.upcase}', url, headers, nil, query_params, &block)
|
|
24
39
|
end
|
|
25
40
|
RUBY
|
|
26
41
|
end
|
|
27
42
|
|
|
28
43
|
%w[ post put ].each do |method|
|
|
29
44
|
eval <<-RUBY, binding, __FILE__, __LINE__ + 1
|
|
30
|
-
def #{method}(url, headers = {}, body_or_params = nil)
|
|
31
|
-
headers, body_or_params
|
|
32
|
-
body = Hash === body_or_params ? Utils.build_query(body_or_params) : body_or_params
|
|
33
|
-
|
|
34
|
-
if block_given?
|
|
35
|
-
super(url, headers, body) {|*tuple| yield Response.new(*tuple) }
|
|
36
|
-
else
|
|
37
|
-
return Response.new(*super(url, headers, body))
|
|
38
|
-
end
|
|
45
|
+
def #{method}(url, headers = {}, body_or_params = nil, query_params = {})
|
|
46
|
+
request('#{method.upcase}', url, headers, body_or_params, query_params, &block)
|
|
39
47
|
end
|
|
40
48
|
RUBY
|
|
41
49
|
end
|
|
42
50
|
|
|
51
|
+
def request(method, url, headers = {}, body_or_params = nil, query_params = {})
|
|
52
|
+
tuple = request_tuple(url, headers, body_or_params, query_params)
|
|
53
|
+
if block_given?
|
|
54
|
+
super(method, *tuple) {|*tuple| yield CollapsedResponse.new(*tuple) }
|
|
55
|
+
else
|
|
56
|
+
CollapsedResponse.new(*super(method, *tuple))
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def request_tuple(url, headers = {}, body_or_params = nil, query_params = {}, &block)
|
|
61
|
+
headers, query_or_params = {}, headers if query_or_params.nil?
|
|
62
|
+
query_hash = Hash === query_or_params ? query_or_params : Utils.build_query(query_or_params)
|
|
63
|
+
|
|
64
|
+
uri = URI.parse(url)
|
|
65
|
+
|
|
66
|
+
unless query_params.empty?
|
|
67
|
+
uri.query = Utils.build_nested_query(Utils.parse_nested_query(uri.query).merge(query_phrams))
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
body = Hash === body_or_params ? Utils.build_nested_query(body_or_params) : body_or_params
|
|
71
|
+
|
|
72
|
+
return uri.to_s, headers, body
|
|
73
|
+
end
|
|
74
|
+
|
|
43
75
|
def build_env(request_method, url, headers = {}, body = nil)
|
|
44
76
|
uri = @base_uri.nil? ? URI.parse(url) : @base_uri + url
|
|
45
77
|
super(request_method, uri.to_s, headers, body)
|