Class: Falcon::Adapters::EarlyHints
- Inherits:
-
Object
- Object
- Falcon::Adapters::EarlyHints
- Defined in:
- lib/falcon/adapters/early_hints.rb
Constant Summary collapse
- PRELOAD =
/<(?<path>.*?)>;.*?rel=preload/
Instance Method Summary collapse
- #call(headers) ⇒ Object
-
#initialize(request) ⇒ EarlyHints
constructor
A new instance of EarlyHints.
- #push(path, preload: true, **options) ⇒ Object
Constructor Details
#initialize(request) ⇒ EarlyHints
Returns a new instance of EarlyHints.
30 31 32 |
# File 'lib/falcon/adapters/early_hints.rb', line 30 def initialize(request) @request = request end |
Instance Method Details
#call(headers) ⇒ Object
38 39 40 41 42 43 44 45 46 |
# File 'lib/falcon/adapters/early_hints.rb', line 38 def call(headers) headers.each do |key, value| if key.casecmp("link").zero? and match = PRELOAD.match(value) @request.push(match[:path]) else Async.logger.warn(@request) {"Unsure how to handle early hints header: #{key}"} end end end |
#push(path, preload: true, **options) ⇒ Object
34 35 36 |
# File 'lib/falcon/adapters/early_hints.rb', line 34 def push(path, preload: true, **) @request.push(path) end |