From d19f5150a1a522404ad94a301d9726b655883010 Mon Sep 17 00:00:00 2001 From: HoneyryderChuck Date: Thu, 21 Aug 2025 16:26:25 +0100 Subject: [PATCH] move fiber selector logic from persistent plugin into its own sub-plugin --- lib/httpx/plugins/persistent.rb | 29 +++++++++++------------------ sig/plugins/persistent.rbs | 2 +- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/lib/httpx/plugins/persistent.rb b/lib/httpx/plugins/persistent.rb index 457c91ea..f6953961 100644 --- a/lib/httpx/plugins/persistent.rb +++ b/lib/httpx/plugins/persistent.rb @@ -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 diff --git a/sig/plugins/persistent.rbs b/sig/plugins/persistent.rbs index 83e94475..f89434dc 100644 --- a/sig/plugins/persistent.rbs +++ b/sig/plugins/persistent.rbs @@ -9,6 +9,6 @@ module HTTPX end end - type sessionPersistent = Session & Persistent::InstanceMethods + type sessionPersistent = Session & FiberSelector::InstanceMethods & Persistent::InstanceMethods end end