/ Ako ukladám do vyrovnávacej pamäte objekty špecifické pre používateľa - rubín

Ako ukladám do vyrovnávacej pamäte objekty špecifické pre používateľa - rubínové

Chcel by som uložiť do vyrovnávacej pamäte objekt "foo" pre konkrétnu kombináciu kľúča / tajomstva. Ako by som mal robiť to v rubíne.

require "foo/api"

foo = Foo::API::Client.new(key, secret)

odpovede:

1 pre odpoveď č. 1

Záleží na tom, čo používate na ukladanie do vyrovnávacej pamäte a aký typ vyrovnávacej pamäte chcete. Bez ohľadu na typ vyrovnávacej pamäte je bežným postupom použiť kľúč / tajný ako súčasť kľúča vyrovnávacej pamäte.

Napríklad použitím pamäti.

cache = {}
cache["foo-#{key}:{secret}"] ||= Foo::API::Client.new(key, secret)

Môžete všetko zabaliť do triedy alebo metódy.

def client(key, secret)
@clients ||= {}
@clients["client-#{key}:{secret}"] ||= Foo::API::Client.new(key, secret)
end

Ak chcete, aby externá vyrovnávacia pamäť, ako je vyrovnávacia pamäť súborov alebo pamäťová vyrovnávacia pamäť, jednoducho použila rovnakú techniku ​​a zložila kľúč vyrovnávacej pamäte pomocou kľúča a tajomstva.

Ak sú kľúčové a tajné reťazce "tajné", môžete vypočítať SHA alebo MD5 hash a použiť to ako kľúč, skôr ako jasné hodnoty.