Class: Html2rss::Config::RequestHeaders
- Inherits:
-
Object
- Object
- Html2rss::Config::RequestHeaders
- Defined in:
- lib/html2rss/config/request_headers.rb
Overview
Normalizes HTTP headers for outgoing requests. Ensures a browser-like baseline while respecting caller overrides.
Constant Summary collapse
- DEFAULT_ACCEPT =
Browser-like default ‘Accept` header value.
%w[ text/html application/xhtml+xml application/xml;q=0.9 image/avif image/webp image/apng */*;q=0.8 ].join(',')
- DEFAULT_USER_AGENT =
Browser-like default ‘User-Agent` header value.
[ 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', 'AppleWebKit/537.36 (KHTML, like Gecko)', 'Chrome/123.0.0.0', 'Safari/537.36' ].join(' ')
- DEFAULT_HEADERS =
Baseline browser-like header set used for outbound requests.
{ 'Accept' => DEFAULT_ACCEPT, 'Cache-Control' => 'max-age=0', 'Connection' => 'keep-alive', 'Sec-Fetch-Dest' => 'document', 'Sec-Fetch-Mode' => 'navigate', 'Sec-Fetch-Site' => 'none', 'Sec-Fetch-User' => '?1', 'Upgrade-Insecure-Requests' => '1', 'User-Agent' => DEFAULT_USER_AGENT }.freeze
Class Method Summary collapse
-
.browser_defaults ⇒ Hash{String => String}
The unmodified default header set.
-
.normalize(headers, channel_language:, url:) ⇒ Hash{String => String}
Normalizes the provided headers while applying Html2rss defaults.
Instance Method Summary collapse
-
#initialize(headers, channel_language:, url:) ⇒ RequestHeaders
constructor
A new instance of RequestHeaders.
-
#to_h ⇒ Hash{String => String}
Normalized HTTP headers.
Constructor Details
#initialize(headers, channel_language:, url:) ⇒ RequestHeaders
Returns a new instance of RequestHeaders.
63 64 65 66 67 |
# File 'lib/html2rss/config/request_headers.rb', line 63 def initialize(headers, channel_language:, url:) @headers = headers @channel_language = channel_language @url = url end |
Class Method Details
.browser_defaults ⇒ Hash{String => String}
Returns the unmodified default header set.
44 45 46 |
# File 'lib/html2rss/config/request_headers.rb', line 44 def browser_defaults DEFAULT_HEADERS.dup end |
.normalize(headers, channel_language:, url:) ⇒ Hash{String => String}
Normalizes the provided headers while applying Html2rss defaults.
55 56 57 |
# File 'lib/html2rss/config/request_headers.rb', line 55 def normalize(headers, channel_language:, url:) new(headers || {}, channel_language:, url:).to_h end |
Instance Method Details
#to_h ⇒ Hash{String => String}
Returns normalized HTTP headers.
71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/html2rss/config/request_headers.rb', line 71 def to_h defaults = DEFAULT_HEADERS.dup normalized = normalize_custom_headers(headers) accept_override = normalized.delete('Accept') defaults.merge!(normalized) defaults['Accept'] = normalize_accept(accept_override) defaults['Accept-Language'] = build_accept_language defaults['Host'] ||= request_host defaults.compact end |