Class: Html2rss::RequestService::Context
- Inherits:
-
Object
- Object
- Html2rss::RequestService::Context
- Defined in:
- lib/html2rss/request_service/context.rb
Overview
Holds information needed to send requests to websites. To be passed down to the RequestService's strategies.
Instance Attribute Summary collapse
-
#budget ⇒ Budget
readonly
The shared request budget.
-
#headers ⇒ Hash
readonly
The HTTP request headers.
-
#origin_url ⇒ Html2rss::Url
readonly
The initial URL for the feed build.
-
#policy ⇒ Policy
readonly
The runtime request policy.
-
#relation ⇒ Symbol
readonly
The request relation.
-
#request ⇒ Hash
readonly
The request specific options.
-
#url ⇒ Html2rss::Url
readonly
The parsed and normalized URL.
Instance Method Summary collapse
-
#follow_up(url:, relation:, origin_url: self.origin_url) ⇒ Context
Builds a follow-up request context sharing headers, budget, and policy.
-
#initialize(url:, headers: {}, request: {}, **request_options) ⇒ Context
constructor
A new instance of Context.
Constructor Details
#initialize(url:, headers: {}, request: {}, **request_options) ⇒ Context
Returns a new instance of Context.
19 20 21 22 23 24 |
# File 'lib/html2rss/request_service/context.rb', line 19 def initialize(url:, headers: {}, request: {}, **) @url = Html2rss::Url.from_absolute(url) @headers = normalize_headers(headers).freeze @request = normalize_request(request).freeze () end |
Instance Attribute Details
#budget ⇒ Budget (readonly)
Returns the shared request budget.
45 46 47 |
# File 'lib/html2rss/request_service/context.rb', line 45 def budget @budget end |
#headers ⇒ Hash (readonly)
Returns the HTTP request headers.
30 31 32 |
# File 'lib/html2rss/request_service/context.rb', line 30 def headers @headers end |
#origin_url ⇒ Html2rss::Url (readonly)
Returns the initial URL for the feed build.
39 40 41 |
# File 'lib/html2rss/request_service/context.rb', line 39 def origin_url @origin_url end |
#policy ⇒ Policy (readonly)
Returns the runtime request policy.
42 43 44 |
# File 'lib/html2rss/request_service/context.rb', line 42 def policy @policy end |
#relation ⇒ Symbol (readonly)
Returns the request relation.
36 37 38 |
# File 'lib/html2rss/request_service/context.rb', line 36 def relation @relation end |
#request ⇒ Hash (readonly)
Returns the request specific options.
33 34 35 |
# File 'lib/html2rss/request_service/context.rb', line 33 def request @request end |
#url ⇒ Html2rss::Url (readonly)
Returns the parsed and normalized URL.
27 28 29 |
# File 'lib/html2rss/request_service/context.rb', line 27 def url @url end |
Instance Method Details
#follow_up(url:, relation:, origin_url: self.origin_url) ⇒ Context
Builds a follow-up request context sharing headers, budget, and policy.
54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/html2rss/request_service/context.rb', line 54 def follow_up(url:, relation:, origin_url: self.origin_url) self.class.new( url:, headers:, request:, relation:, origin_url:, policy:, budget: ) end |