This module handles the GET request memoization on the hydra side. Memoization needs to be turned on:
Typhoeus.configure do |config| config.memoize = true end
@api private
Overrides add in order to check before if request is memoizable and already in memory. If thats the case, super is not called, instead the response is set and the on_complete callback called.
@example Add the request.
hydra.add(request)
@param [ Request ] request The request to add.
@return [ Request ] The added request.
# File lib/typhoeus/hydra/memoizable.rb, line 35 def add(request) if request.memoizable? && memory.has_key?(request) response = memory[request] request.finish(response, true) else super end end
Return the memory.
@example Return the memory.
hydra.memory
@return [ Hash ] The memory.
# File lib/typhoeus/hydra/memoizable.rb, line 20 def memory @memory ||= {} end
Overrides run to make sure the memory is cleared after each run.
@example Run hydra.
hydra.run
# File lib/typhoeus/hydra/memoizable.rb, line 49 def run super memory.clear end