class

Vug::SingleRequest

Inherits Reference < Object

Executes a single HTTP request for a favicon URL, handling semaphore acquisition, rate limiting, DNS revalidation, HTTP client lifecycle, redirect detection, and response processing.

Extracted from Fetcher to follow Single Responsibility Principle. Fetcher owns the fetch loop; SingleRequest owns one HTTP round-trip.

Constructors

new(config : Config, http_client_factory : HttpClientFactory, image_processor : ImageProcessor, redirect_validator : RedirectHandler, rate_limiter : RateLimiter, semaphore : Vug::Semaphore)
Source

Instance methods

execute(url : String, uri : URI | Nil, initial_dns_ips : Hash(String, Array(String)), redirect_count : Int32) : Result

Execute a single HTTP request for the given URL. Handles semaphore, rate limiting, DNS revalidation, and all exceptions.

Source