Class: Rixie::Store::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/rixie/store/base.rb

Overview

Interface definition for storage adapters. Subclasses must implement #save and #load.

Direct Known Subclasses

Memory, Null

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.deserialize(entry) ⇒ Context::History, Context::Summary

Deserializes a single stored entry.

Parameters:

  • entry (Hash)

    with a “type” key (“summary” or “history”)

Returns:

Raises:



32
33
34
# File 'lib/rixie/store/base.rb', line 32

def self.deserialize(entry)
  raise Rixie::NotImplementedError, "#{self}.deserialize is not implemented"
end

Instance Method Details

#load(session_id) ⇒ Array

Retrieves context for the given session_id.

Parameters:

  • session_id (String)

Returns:

  • (Array)

Raises:



18
19
20
# File 'lib/rixie/store/base.rb', line 18

def load(session_id)
  raise Rixie::NotImplementedError, "#{self.class}#load is not implemented"
end

#save(session_id, context) ⇒ Object

Persists context for the given session_id.

Parameters:

  • session_id (String)
  • context (Array)

Raises:



11
12
13
# File 'lib/rixie/store/base.rb', line 11

def save(session_id, context)
  raise Rixie::NotImplementedError, "#{self.class}#save is not implemented"
end

#serialize(context) ⇒ Array<Hash>

Serializes context for storage.

Parameters:

Returns:

  • (Array<Hash>)

Raises:



25
26
27
# File 'lib/rixie/store/base.rb', line 25

def serialize(context)
  raise Rixie::NotImplementedError, "#{self.class}#serialize is not implemented"
end