Class: Spurline::Session::Store::Memory
- Defined in:
- lib/spurline/session/store/memory.rb
Overview
In-memory session store. Suitable for development and testing. Data does not persist across process restarts. Thread-safe via Mutex for concurrent access.
Instance Method Summary collapse
- #clear! ⇒ Object
- #delete(id) ⇒ Object
- #exists?(id) ⇒ Boolean
- #ids ⇒ Object
-
#initialize ⇒ Memory
constructor
A new instance of Memory.
- #load(id) ⇒ Object
- #save(session) ⇒ Object
- #size ⇒ Object
Constructor Details
#initialize ⇒ Memory
Returns a new instance of Memory.
10 11 12 13 |
# File 'lib/spurline/session/store/memory.rb', line 10 def initialize @store = {} @mutex = Mutex.new end |
Instance Method Details
#clear! ⇒ Object
35 36 37 |
# File 'lib/spurline/session/store/memory.rb', line 35 def clear! @mutex.synchronize { @store.clear } end |
#delete(id) ⇒ Object
23 24 25 |
# File 'lib/spurline/session/store/memory.rb', line 23 def delete(id) @mutex.synchronize { @store.delete(id) } end |
#exists?(id) ⇒ Boolean
27 28 29 |
# File 'lib/spurline/session/store/memory.rb', line 27 def exists?(id) @mutex.synchronize { @store.key?(id) } end |
#ids ⇒ Object
39 40 41 |
# File 'lib/spurline/session/store/memory.rb', line 39 def ids @mutex.synchronize { @store.keys.dup } end |
#load(id) ⇒ Object
19 20 21 |
# File 'lib/spurline/session/store/memory.rb', line 19 def load(id) @mutex.synchronize { @store[id] } end |
#save(session) ⇒ Object
15 16 17 |
# File 'lib/spurline/session/store/memory.rb', line 15 def save(session) @mutex.synchronize { @store[session.id] = session } end |
#size ⇒ Object
31 32 33 |
# File 'lib/spurline/session/store/memory.rb', line 31 def size @mutex.synchronize { @store.size } end |