Class: Botiasloop::Database
- Inherits:
-
Object
- Object
- Botiasloop::Database
- Defined in:
- lib/botiasloop/database.rb
Overview
Database connection and schema management for SQLite
Constant Summary collapse
- DEFAULT_PATH =
Default database path
File.("~/.config/botiasloop/db.sqlite")
Class Method Summary collapse
-
.connect ⇒ Sequel::SQLite::Database
Get or create database connection Automatically sets up schema on first connection.
-
.disconnect ⇒ Object
Close database connection.
-
.reset! ⇒ Object
Reset database - delete all data.
-
.setup! ⇒ Object
Set up database schema Creates tables if they don’t exist.
Class Method Details
.connect ⇒ Sequel::SQLite::Database
Get or create database connection Automatically sets up schema on first connection
17 18 19 20 21 22 23 |
# File 'lib/botiasloop/database.rb', line 17 def connect @db ||= begin db = Sequel.sqlite(DEFAULT_PATH) setup_schema!(db) db end end |
.disconnect ⇒ Object
Close database connection
41 42 43 44 |
# File 'lib/botiasloop/database.rb', line 41 def disconnect @db&.disconnect @db = nil end |
.reset! ⇒ Object
Reset database - delete all data
33 34 35 36 37 38 |
# File 'lib/botiasloop/database.rb', line 33 def reset! db = connect db[:messages].delete if db.table_exists?(:messages) db[:conversations].delete if db.table_exists?(:conversations) db[:chats].delete if db.table_exists?(:chats) end |
.setup! ⇒ Object
Set up database schema Creates tables if they don’t exist
27 28 29 30 |
# File 'lib/botiasloop/database.rb', line 27 def setup! db = @db || connect setup_schema!(db) end |