Module: Desiru::Persistence

Defined in:
lib/desiru/persistence.rb,
lib/desiru/persistence/setup.rb,
lib/desiru/persistence/models.rb,
lib/desiru/persistence/database.rb,
lib/desiru/persistence/repository.rb,
lib/desiru/persistence/models/job_result.rb,
lib/desiru/persistence/models/api_request.rb,
lib/desiru/persistence/models/module_execution.rb,
lib/desiru/persistence/models/training_example.rb,
lib/desiru/persistence/models/optimization_result.rb,
lib/desiru/persistence/repositories/base_repository.rb,
lib/desiru/persistence/repositories/job_result_repository.rb,
lib/desiru/persistence/repositories/api_request_repository.rb,
lib/desiru/persistence/repositories/module_execution_repository.rb,
lib/desiru/persistence/repositories/training_example_repository.rb,
lib/desiru/persistence/repositories/optimization_result_repository.rb

Overview

Database persistence layer for Desiru

Defined Under Namespace

Modules: Database, Models, Repositories, Repository, Setup

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.database_urlObject



13
14
15
# File 'lib/desiru/persistence.rb', line 13

def database_url
  @database_url ||= ENV['DESIRU_DATABASE_URL'] || 'sqlite://desiru.db'
end

Class Method Details

.[](name) ⇒ Object



38
39
40
# File 'lib/desiru/persistence.rb', line 38

def [](name)
  repositories[name] || raise("Repository #{name} not found")
end

.connect!Object



17
18
19
# File 'lib/desiru/persistence.rb', line 17

def connect!
  Database.connect(database_url)
end

.disconnect!Object



21
22
23
# File 'lib/desiru/persistence.rb', line 21

def disconnect!
  Database.disconnect
end

.enabled?Boolean

Returns:

  • (Boolean)


42
43
44
45
46
# File 'lib/desiru/persistence.rb', line 42

def enabled?
  !Database.connection.nil?
rescue StandardError
  false
end

.migrate!Object



25
26
27
28
# File 'lib/desiru/persistence.rb', line 25

def migrate!
  Database.migrate!
  Repository.setup!
end

.register_repository(name, repository) ⇒ Object



34
35
36
# File 'lib/desiru/persistence.rb', line 34

def register_repository(name, repository)
  repositories[name] = repository
end

.repositoriesObject



30
31
32
# File 'lib/desiru/persistence.rb', line 30

def repositories
  @repositories ||= {}
end