Class: Ask::Rails::Persistence

Inherits:
Object
  • Object
show all
Defined in:
lib/ask/rails/persistence.rb

Instance Method Summary collapse

Constructor Details

#initialize(model_class: nil) ⇒ Persistence

Returns a new instance of Persistence.



6
7
8
# File 'lib/ask/rails/persistence.rb', line 6

def initialize(model_class: nil)
  @model_class = model_class || default_model_class
end

Instance Method Details

#delete(session_id) ⇒ Object



20
21
22
# File 'lib/ask/rails/persistence.rb', line 20

def delete(session_id)
  @model_class.where(session_id: session_id).delete_all
end

#listObject



24
25
26
# File 'lib/ask/rails/persistence.rb', line 24

def list
  @model_class.pluck(:session_id)
end

#load(session_id) ⇒ Object



15
16
17
18
# File 'lib/ask/rails/persistence.rb', line 15

def load(session_id)
  record = @model_class.find_by(session_id: session_id)
  record&.data
end

#save(session_id, data) ⇒ Object



10
11
12
13
# File 'lib/ask/rails/persistence.rb', line 10

def save(session_id, data)
  record = @model_class.find_or_initialize_by(session_id: session_id)
  record.update!(data: data)
end