mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-10-04 00:00:37 -04:00
move fiber selector logic from persistent plugin into its own sub-plugin
This commit is contained in:
parent
92e891919f
commit
d19f5150a1
@ -18,13 +18,18 @@ module HTTPX
|
||||
# https://gitlab.com/os85/httpx/wikis/Persistent
|
||||
#
|
||||
module Persistent
|
||||
def self.load_dependencies(klass)
|
||||
max_retries = if klass.default_options.respond_to?(:max_retries)
|
||||
[klass.default_options.max_retries, 1].max
|
||||
else
|
||||
1
|
||||
class << self
|
||||
def load_dependencies(klass)
|
||||
require_relative "fiber_selector"
|
||||
klass.plugin(FiberSelector)
|
||||
|
||||
max_retries = if klass.default_options.respond_to?(:max_retries)
|
||||
[klass.default_options.max_retries, 1].max
|
||||
else
|
||||
1
|
||||
end
|
||||
klass.plugin(:retries, max_retries: max_retries)
|
||||
end
|
||||
klass.plugin(:retries, max_retries: max_retries)
|
||||
end
|
||||
|
||||
def self.extra_options(options)
|
||||
@ -54,18 +59,6 @@ module HTTPX
|
||||
# consequences.
|
||||
(!ex.is_a?(RequestTimeoutError) || @options.max_retries != 1)
|
||||
end
|
||||
|
||||
def get_current_selector
|
||||
super(&nil) || begin
|
||||
return unless block_given?
|
||||
|
||||
default = yield
|
||||
|
||||
set_current_selector(default)
|
||||
|
||||
default
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
register_plugin :persistent, Persistent
|
||||
|
@ -9,6 +9,6 @@ module HTTPX
|
||||
end
|
||||
end
|
||||
|
||||
type sessionPersistent = Session & Persistent::InstanceMethods
|
||||
type sessionPersistent = Session & FiberSelector::InstanceMethods & Persistent::InstanceMethods
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user