Class: Rager::Http::Adapters::Mock

Inherits:
Abstract
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/rager/http/adapters/mock.rb

Constant Summary collapse

Cache =
T.type_alias { T::Hash[String, T::Hash[String, T.untyped]] }

Instance Method Summary collapse

Constructor Details

#initialize(test_file_path, fallback_adapter = nil, chunk_delimiter = nil) ⇒ Mock

Returns a new instance of Mock.



25
26
27
28
29
# File 'lib/rager/http/adapters/mock.rb', line 25

def initialize(test_file_path, fallback_adapter = nil, chunk_delimiter = nil)
  @test_file_path = T.let(test_file_path, String)
  @fallback_adapter = T.let(fallback_adapter || Rager::Http::Adapters::NetHttp.new, Rager::Http::Adapters::Abstract)
  @cache = T.let(load_cache, Cache)
end

Instance Method Details

#make_request(request) ⇒ Object



32
33
34
35
36
# File 'lib/rager/http/adapters/mock.rb', line 32

def make_request(request)
  key = request.serialize.to_json
  cached_entry = @cache[key]
  cached_entry ? build_response_from_cache(cached_entry) : fetch_and_cache_response(request, key)
end