Class: Geminize::MemoryConversationRepository

Inherits:
ConversationRepository show all
Defined in:
lib/geminize/conversation_repository.rb

Overview

In-memory implementation of the ConversationRepository (for testing)

Instance Method Summary collapse

Constructor Details

#initializeMemoryConversationRepository

Initialize a new memory repository



122
123
124
# File 'lib/geminize/conversation_repository.rb', line 122

def initialize
  @conversations = {}
end

Instance Method Details

#delete(id) ⇒ Boolean

Delete a conversation from memory by ID

Parameters:

  • id (String)

    The ID of the conversation to delete

Returns:

  • (Boolean)

    True if the deletion was successful



146
147
148
149
150
151
152
153
# File 'lib/geminize/conversation_repository.rb', line 146

def delete(id)
  if @conversations.key?(id)
    @conversations.delete(id)
    true
  else
    false
  end
end

#listArray<Models::Conversation>

List all available conversations

Returns:



157
158
159
# File 'lib/geminize/conversation_repository.rb', line 157

def list
  @conversations.values.sort_by(&:updated_at).reverse
end

#load(id) ⇒ Models::Conversation?

Load a conversation from memory by ID

Parameters:

  • id (String)

    The ID of the conversation to load

Returns:



139
140
141
# File 'lib/geminize/conversation_repository.rb', line 139

def load(id)
  @conversations[id]
end

#save(conversation) ⇒ Boolean

Save a conversation to memory

Parameters:

Returns:

  • (Boolean)

    True if the save was successful



129
130
131
132
133
134
# File 'lib/geminize/conversation_repository.rb', line 129

def save(conversation)
  return false unless conversation

  @conversations[conversation.id] = conversation
  true
end