Class: Ask::Rails::Harness::Persistence
- Inherits:
-
State::Adapter
- Object
- State::Adapter
- Ask::Rails::Harness::Persistence
- Defined in:
- lib/ask/rails/harness/persistence.rb
Instance Method Summary collapse
- #clear ⇒ Object
- #delete(session_id) ⇒ Object
- #get(key) ⇒ Object
-
#initialize(model_class: nil) ⇒ Persistence
constructor
A new instance of Persistence.
- #list ⇒ Object
- #load(session_id) ⇒ Object
-
#save(session_id, data) ⇒ Object
Backward-compatible interface (used by old code and list queries).
-
#set(key, value, ttl: nil) ⇒ Object
State::Adapter contract — set/get/delete (aliased through save/load for backward compatibility).
Constructor Details
#initialize(model_class: nil) ⇒ Persistence
Returns a new instance of Persistence.
7 8 9 |
# File 'lib/ask/rails/harness/persistence.rb', line 7 def initialize(model_class: nil) @model_class = model_class end |
Instance Method Details
#clear ⇒ Object
38 39 40 |
# File 'lib/ask/rails/harness/persistence.rb', line 38 def clear model_class.delete_all end |
#delete(session_id) ⇒ Object
22 23 24 |
# File 'lib/ask/rails/harness/persistence.rb', line 22 def delete(session_id) model_class.where(session_id: session_id).delete_all end |
#get(key) ⇒ Object
18 19 20 |
# File 'lib/ask/rails/harness/persistence.rb', line 18 def get(key) load(key) end |
#list ⇒ Object
42 43 44 |
# File 'lib/ask/rails/harness/persistence.rb', line 42 def list model_class.pluck(:session_id) end |
#load(session_id) ⇒ Object
33 34 35 36 |
# File 'lib/ask/rails/harness/persistence.rb', line 33 def load(session_id) record = model_class.find_by(session_id: session_id) record&.data end |
#save(session_id, data) ⇒ Object
Backward-compatible interface (used by old code and list queries)
28 29 30 31 |
# File 'lib/ask/rails/harness/persistence.rb', line 28 def save(session_id, data) record = model_class.find_or_initialize_by(session_id: session_id) record.update!(data: data) end |
#set(key, value, ttl: nil) ⇒ Object
State::Adapter contract — set/get/delete (aliased through save/load for backward compatibility)
14 15 16 |
# File 'lib/ask/rails/harness/persistence.rb', line 14 def set(key, value, ttl: nil) save(key, value) end |