Class: Textus::Infra::Database

Inherits:
Object
  • Object
show all
Defined in:
lib/textus/infra/database.rb

Instance Method Summary collapse

Constructor Details

#initialize(layout:) ⇒ Database

Returns a new instance of Database.



7
8
9
10
# File 'lib/textus/infra/database.rb', line 7

def initialize(layout:)
  @layout = layout
  @db = nil
end

Instance Method Details

#closeObject



25
# File 'lib/textus/infra/database.rb', line 25

def close = @db.disconnect

#connectionObject



12
# File 'lib/textus/infra/database.rb', line 12

def connection = @db

#setup!Object



14
15
16
17
18
19
20
21
22
# File 'lib/textus/infra/database.rb', line 14

def setup!
  path = @layout.db_path
  FileUtils.mkdir_p(File.dirname(path))
  @db = Sequel.sqlite(path)
  @db.run("PRAGMA journal_mode=WAL")
  @db.run("PRAGMA foreign_keys=ON")
  create_tables
  self
end

#transactionObject



24
# File 'lib/textus/infra/database.rb', line 24

def transaction(&) = @db.transaction(&)