Files
news.gitea.happylizard.me/bin/gems/typhoeus-1.4.1/lib/typhoeus/hydra/memoizable.rb
T
pizza2d1 4cee170d66
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s
Add bin and edit workflow
2026-09-16 13:11:16 -06:00

57 lines
1.3 KiB
Ruby

module Typhoeus
class Hydra
# 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
module Memoizable
# Return the memory.
#
# @example Return the memory.
# hydra.memory
#
# @return [ Hash ] The memory.
def memory
@memory ||= {}
end
# 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.
def add(request)
if request.memoizable? && memory.has_key?(request)
response = memory[request]
request.finish(response, true)
dequeue
else
super
end
end
# Overrides run to make sure the memory is cleared after
# each run.
#
# @example Run hydra.
# hydra.run
def run
super
memory.clear
end
end
end
end