Class: Html2rss::RequestSession::RuntimeInput

Inherits:
Object
  • Object
show all
Defined in:
lib/html2rss/request_session/runtime_input.rb

Overview

Carries the runtime request inputs needed to build a RequestSession.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url:, headers:, request:, strategy:, request_policy:) ⇒ RuntimeInput

Returns a new instance of RuntimeInput.

Parameters:

  • url (String, Html2rss::Url)

    initial request URL

  • headers (Hash)

    normalized request headers

  • request (Hash)

    validated request options for strategies

  • strategy (Symbol)

    request strategy to use for the session

  • request_policy (RequestService::Policy)

    request policy for the session



27
28
29
30
31
32
33
34
# File 'lib/html2rss/request_session/runtime_input.rb', line 27

def initialize(url:, headers:, request:, strategy:, request_policy:)
  @url = Html2rss::Url.from_absolute(url)
  @headers = headers.freeze
  @request = request.freeze
  @strategy = strategy
  @request_policy = request_policy
  freeze
end

Instance Attribute Details

#headersHash (readonly)

Returns normalized request headers.

Returns:

  • (Hash)

    normalized request headers



42
43
44
# File 'lib/html2rss/request_session/runtime_input.rb', line 42

def headers
  @headers
end

#requestHash (readonly)

Returns validated request options for strategies.

Returns:

  • (Hash)

    validated request options for strategies



46
47
48
# File 'lib/html2rss/request_session/runtime_input.rb', line 46

def request
  @request
end

#request_policyRequestService::Policy (readonly)

Returns policy derived from the runtime request inputs.

Returns:



54
55
56
# File 'lib/html2rss/request_session/runtime_input.rb', line 54

def request_policy
  @request_policy
end

#strategySymbol (readonly)

Returns request strategy to use for the session.

Returns:

  • (Symbol)

    request strategy to use for the session



50
51
52
# File 'lib/html2rss/request_session/runtime_input.rb', line 50

def strategy
  @strategy
end

#urlHtml2rss::Url (readonly)

Returns initial request URL.

Returns:



38
39
40
# File 'lib/html2rss/request_session/runtime_input.rb', line 38

def url
  @url
end

Class Method Details

.from_config(config) ⇒ RuntimeInput

Returns runtime request inputs derived from the config.

Parameters:

Returns:

  • (RuntimeInput)

    runtime request inputs derived from the config



11
12
13
14
15
16
17
18
19
# File 'lib/html2rss/request_session/runtime_input.rb', line 11

def self.from_config(config)
  new(
    url: config.url,
    headers: config.headers,
    request: config.request,
    strategy: config.strategy,
    request_policy: RuntimePolicy.from_config(config)
  )
end