Class: Phronomy::StateStore::InMemory
- Defined in:
- lib/phronomy/state_store/in_memory.rb
Overview
Thread-safe in-process state store backed by a plain Ruby Hash.
Used as the recommended default for single-process applications and tests. State does not survive process restart.
Instance Method Summary collapse
- #delete(thread_id) ⇒ void
-
#initialize ⇒ InMemory
constructor
A new instance of InMemory.
- #load(thread_id) ⇒ Hash?
- #save(thread_id, snapshot) ⇒ void
Constructor Details
#initialize ⇒ InMemory
Returns a new instance of InMemory.
17 18 19 20 |
# File 'lib/phronomy/state_store/in_memory.rb', line 17 def initialize @data = {} @mutex = Mutex.new end |
Instance Method Details
#delete(thread_id) ⇒ void
This method returns an undefined value.
44 45 46 47 |
# File 'lib/phronomy/state_store/in_memory.rb', line 44 def delete(thread_id) @mutex.synchronize { @data.delete(thread_id) } nil end |
#load(thread_id) ⇒ Hash?
25 26 27 28 29 30 |
# File 'lib/phronomy/state_store/in_memory.rb', line 25 def load(thread_id) @mutex.synchronize do snap = @data[thread_id] snap ? deep_dup(snap) : nil end end |
#save(thread_id, snapshot) ⇒ void
This method returns an undefined value.
36 37 38 39 |
# File 'lib/phronomy/state_store/in_memory.rb', line 36 def save(thread_id, snapshot) @mutex.synchronize { @data[thread_id] = deep_dup(snapshot) } nil end |