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