mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-10-04 00:00:37 -04:00
by relying on vary header, this should have the effect of not overflowinng, and doing what the user wants.
55 lines
1.2 KiB
Plaintext
55 lines
1.2 KiB
Plaintext
module HTTPX
|
|
module Plugins
|
|
module ResponseCache
|
|
CACHEABLE_VERBS: Array[Symbol]
|
|
|
|
def self?.cacheable_request?: (Request request) -> bool
|
|
def self?.cacheable_response?: (response response) -> bool
|
|
def self?.cached_response?: (response response) -> bool
|
|
|
|
class Store
|
|
@store: Hash[String, Array[Response]]
|
|
|
|
def lookup: (Request request) -> Response?
|
|
|
|
def cached?: (Request request) -> boolish
|
|
|
|
def cache: (Request request, Response response) -> void
|
|
|
|
def prepare: (Request request) -> void
|
|
|
|
private
|
|
|
|
def match_by_vary?: (Request request, Response response) -> bool
|
|
end
|
|
|
|
module InstanceMethods
|
|
@response_cache: Store
|
|
|
|
def clear_response_cache: () -> void
|
|
end
|
|
|
|
module RequestMethods
|
|
def response_cache_key: () -> String
|
|
end
|
|
|
|
module ResponseMethods
|
|
def copy_from_cached: (Response other) -> void
|
|
|
|
def fresh?: () -> bool
|
|
|
|
def cache_control: () -> Array[String]?
|
|
|
|
def vary: () -> Array[String]?
|
|
|
|
private
|
|
|
|
def age: () -> Integer
|
|
|
|
def date: () -> Time
|
|
end
|
|
end
|
|
|
|
type sessionResponseCache = Session & ResponseCache::InstanceMethods
|
|
end
|
|
end |