Sha256: 8df346d5d0adbf0bd72590893751be0e2a956eaae2329760689481a6bbd52ba4
Contents?: true
Size: 1.57 KB
Versions: 5
Compression:
Stored size: 1.57 KB
Contents
# prompt_manager/lib/prompt_manager/storage/sqlite_adapter.rb require 'json' require 'sqlite3' class PromptManager::Storage::SqliteAdapter def initialize(db_path = 'prompts.db') @db = SQLite3::Database.new(db_path) create_tables end def save_prompt(prompt_id, text, params) @db.execute("INSERT INTO prompts (id, text, params) VALUES (?, ?, ?)", [prompt_id, text, params.to_json]) end def prompt_text(prompt_id) result = @db.get_first_value("SELECT text FROM prompts WHERE id = ?", [prompt_id]) raise 'Prompt not found' if result.nil? result end def parameter_values(prompt_id) json_content = @db.get_first_value("SELECT params FROM prompts WHERE id = ?", [prompt_id]) raise 'Parameters not found' if json_content.nil? JSON.parse(json_content, symbolize_names: true) end def save(prompt_id, prompt_text, parameter_values) @db.execute( 'REPLACE INTO prompts (id, text, params) VALUES (?, ?, ?)', [prompt_id, prompt_text, parameter_values.to_json] ) end def delete(prompt_id) @db.execute('DELETE FROM prompts WHERE id = ?', [prompt_id]) end def search(for_what) # TODO: search through all prompts. Return an Array of # prompt_id where the text of the prompt contains # for_what is being searched. [] end ################################################### private def create_tables @db.execute <<-SQL CREATE TABLE IF NOT EXISTS prompts ( id TEXT PRIMARY KEY, text TEXT NOT NULL, params TEXT NOT NULL ); SQL end end
Version data entries
5 entries across 5 versions & 1 rubygems