mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-09-01 00:00:35 -04:00
added body as a possible extension point of the plugin API
This commit is contained in:
parent
7b3f78e5ad
commit
8006f5c8bc
@ -101,6 +101,8 @@ module HTTPX
|
||||
default_options.response_class.extend(pl::ResponseClassMethods) if defined?(pl::ResponseClassMethods)
|
||||
default_options.headers_class.__send__(:include, pl::HeadersMethods) if defined?(pl::HeadersMethods)
|
||||
default_options.headers_class.extend(pl::HeadersClassMethods) if defined?(pl::HeadersClassMethods)
|
||||
default_options.response_body_class.__send__(:include, pl::ResponseBodyMethods) if defined?(pl::ResponseBodyMethods)
|
||||
default_options.response_body_class.extend(pl::ResponseBodyClassMethods) if defined?(pl::ResponseBodyClassMethods)
|
||||
pl.configure(self, *args, &block) if pl.respond_to?(:configure)
|
||||
end
|
||||
nil
|
||||
|
@ -54,7 +54,7 @@ module HTTPX
|
||||
:request_class => Class.new(Request),
|
||||
:response_class => Class.new(Response),
|
||||
:headers_class => Class.new(Headers),
|
||||
:response_body_class => Response::Body,
|
||||
:response_body_class => Class.new(Response::Body),
|
||||
}
|
||||
|
||||
defaults.merge!(options)
|
||||
|
@ -17,6 +17,7 @@ class ClientTest < Minitest::Test
|
||||
assert client.respond_to?(:options), "instance methods weren't added"
|
||||
assert client.options.respond_to?(:foo), "options methods weren't added"
|
||||
assert client.options.foo == "options-foo", "option method is unexpected"
|
||||
|
||||
request = client.options.request_class.new(:get, "/", client.options)
|
||||
assert request.respond_to?(:foo), "request methods haven't been added"
|
||||
assert request.foo == "request-foo", "request method is unexpected"
|
||||
@ -26,6 +27,12 @@ class ClientTest < Minitest::Test
|
||||
response = client.response(nil, 200, {})
|
||||
assert response.respond_to?(:foo), "response methods haven't been added"
|
||||
assert response.foo == "response-foo", "response method is unexpected"
|
||||
assert request.headers.respond_to?(:foo), "headers methods haven't been added"
|
||||
assert request.headers.foo == "headers-foo", "headers method is unexpected"
|
||||
|
||||
body = response.body
|
||||
assert body.respond_to?(:foo), "response body methods haven't been added"
|
||||
assert body.foo == "response-body-foo", "response body method is unexpected"
|
||||
end
|
||||
|
||||
private
|
||||
@ -46,7 +53,7 @@ class ClientTest < Minitest::Test
|
||||
end
|
||||
|
||||
def response(*args)
|
||||
@default_options.response_class.new(*args)
|
||||
@default_options.response_class.new(*args, @default_options)
|
||||
end
|
||||
end
|
||||
self::OptionsClassMethods = Module.new do
|
||||
@ -79,6 +86,16 @@ class ClientTest < Minitest::Test
|
||||
self.class.foo
|
||||
end
|
||||
end
|
||||
self::ResponseBodyClassMethods = Module.new do
|
||||
def foo
|
||||
"response-body-foo"
|
||||
end
|
||||
end
|
||||
self::ResponseBodyMethods = Module.new do
|
||||
def foo
|
||||
self.class.foo
|
||||
end
|
||||
end
|
||||
self::HeadersClassMethods = Module.new do
|
||||
def foo
|
||||
"headers-foo"
|
||||
|
Loading…
x
Reference in New Issue
Block a user