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
-
#browserless ⇒ Hash
Browserless specific options.
-
#browserless_preload ⇒ Hash?
Preload options for browserless requests.
-
#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 = headers @request = request.freeze () end |
Instance Attribute Details
#budget ⇒ Budget (readonly)
Returns the shared request budget.
51 52 53 |
# File 'lib/html2rss/request_service/context.rb', line 51 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.
45 46 47 |
# File 'lib/html2rss/request_service/context.rb', line 45 def origin_url @origin_url end |
#policy ⇒ Policy (readonly)
Returns the runtime request policy.
48 49 50 |
# File 'lib/html2rss/request_service/context.rb', line 48 def policy @policy end |
#relation ⇒ Symbol (readonly)
Returns the request relation.
42 43 44 |
# File 'lib/html2rss/request_service/context.rb', line 42 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
#browserless ⇒ Hash
Returns browserless specific options.
36 |
# File 'lib/html2rss/request_service/context.rb', line 36 def browserless = request.fetch(:browserless, {}) |
#browserless_preload ⇒ Hash?
Returns preload options for browserless requests.
39 |
# File 'lib/html2rss/request_service/context.rb', line 39 def browserless_preload = browserless[:preload] |
#follow_up(url:, relation:, origin_url: self.origin_url) ⇒ Context
Builds a follow-up request context sharing headers, budget, and policy.
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/html2rss/request_service/context.rb', line 60 def follow_up(url:, relation:, origin_url: self.origin_url) self.class.new( url:, headers:, request:, relation:, origin_url:, policy:, budget: ) end |