module Typhoeus::Hydra::Memoizable

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

Public Instance Methods

add(request) click to toggle source

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.

Calls superclass method
# 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
memory() click to toggle source

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
run() click to toggle source

Overrides run to make sure the memory is cleared after each run.

@example Run hydra.

hydra.run
Calls superclass method
# File lib/typhoeus/hydra/memoizable.rb, line 49
def run
  super
  memory.clear
end