idempotent-request/spec/support/memory_storage.rb
2018-07-16 18:06:19 +02:00

38 lines
606 B
Ruby

module IdempotentRequest
class MemoryStorage
def initialize
@memory = {}
end
def lock(key)
namespaced_key = lock_key(key)
return false if @memory.key?(namespaced_key)
@memory[namespaced_key] = true
end
def unlock(key)
namespaced_key = lock_key(key)
@memory.delete(namespaced_key)
@memory[namespaced_key]
end
def read(key)
@memory[key]
end
def write(key, payload)
@memory[key] = payload
end
def clear
@memory = {}
end
private
def lock_key(key)
"lock:#{key}"
end
end
end