module Socrates::Storage::Storage
Public Class Methods
new()
click to toggle source
# File lib/socrates/storage/storage.rb, line 6 def initialize @logger = Socrates.config.logger end
Public Instance Methods
clear(key)
click to toggle source
# File lib/socrates/storage/storage.rb, line 39 def clear(key) raise NotImplementedError end
clear_all()
click to toggle source
# File lib/socrates/storage/storage.rb, line 51 def clear_all raise NotImplementedError end
fetch(client_id)
click to toggle source
# File lib/socrates/storage/storage.rb, line 10 def fetch(client_id) key = generate_key(client_id) snapshot = get(key) return if snapshot.nil? begin Socrates::Core::StateData.deserialize(snapshot) rescue StandardError => e @logger.warn "Error while fetching state_data for client id '#{client_id}', resetting state: #{e.message}" @logger.warn e end end
generate_key(client_id)
click to toggle source
# File lib/socrates/storage/storage.rb, line 31 def generate_key(client_id) client_id end
get(key)
click to toggle source
# File lib/socrates/storage/storage.rb, line 43 def get(key) raise NotImplementedError end
has_key?(key)
click to toggle source
# File lib/socrates/storage/storage.rb, line 35 def has_key?(key) raise NotImplementedError end
persist(client_id, state_data)
click to toggle source
# File lib/socrates/storage/storage.rb, line 25 def persist(client_id, state_data) key = generate_key(client_id) state_data.reset_elapsed_time put(key, state_data.serialize) end
put(key, value)
click to toggle source
# File lib/socrates/storage/storage.rb, line 47 def put(key, value) raise NotImplementedError end