From 4072dedb8f17040f3dbe1ec8400e2eb87b044c2d Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 8 Oct 2025 10:42:46 -0600 Subject: feat: add support for streaming responses --- lib/net/hippie/client.rb | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'lib/net/hippie/client.rb') diff --git a/lib/net/hippie/client.rb b/lib/net/hippie/client.rb index 340531b..f8610c2 100644 --- a/lib/net/hippie/client.rb +++ b/lib/net/hippie/client.rb @@ -26,13 +26,22 @@ module Net def execute(uri, request, limit: follow_redirects, &block) connection = connection_for(uri) - response = connection.run(request) - if limit.positive? && response.is_a?(Net::HTTPRedirection) - url = connection.build_url_for(response['location']) - request = request_for(Net::HTTP::Get, url) - execute(url, request, limit: limit - 1, &block) + if block_given? + if block.arity == 2 + response = connection.run(request) + yield(request, response) + else + connection.run(request, &block) + end else - block_given? ? yield(request, response) : response + response = connection.run(request) + if limit.positive? && response.is_a?(Net::HTTPRedirection) + url = connection.build_url_for(response['location']) + request = request_for(Net::HTTP::Get, url) + execute(url, request, limit: limit - 1) + else + response + end end end -- cgit v1.2.3