module Mimi::DB
Constants
- Model
NOTE: this is the way to create an abstract class that inherits from Sequel::Model
- VERSION
Public Class Methods
configure(*)
click to toggle source
Calls superclass method
# File lib/mimi/db.rb, line 62 def self.configure(*) super if Mimi.const_defined?(:Application) @logger = Mimi::Application.logger end end
connection()
click to toggle source
Returns active DB
connection
@return [Sequel::<…>::Database]
# File lib/mimi/db.rb, line 77 def self.connection @connection end
logger()
click to toggle source
# File lib/mimi/db.rb, line 69 def self.logger @logger ||= Mimi::Logger.new end
module_manifest()
click to toggle source
# File lib/mimi/db.rb, line 25 def self.module_manifest { db_adapter: { desc: 'Database adapter ("sqlite3", "postgresql", "mysql", "cockroachdb" etc)', default: 'sqlite3' }, db_database: { desc: 'Database name (e.g. "tmp/mydb")', # required }, db_host: { desc: 'Database host', default: nil }, db_port: { desc: 'Database port', default: nil }, db_username: { desc: 'Database username', default: nil }, db_password: { desc: 'Database password', default: nil }, db_pool: { desc: 'Database connection pool size', default: 15 }, db_log_level: { desc: 'Logging level for database layer ("debug", "info" etc)', default: 'debug' } } end
module_path()
click to toggle source
# File lib/mimi/db.rb, line 21 def self.module_path Pathname.new(__dir__).join('..').join('..').expand_path end
sequel_config()
click to toggle source
Returns Sequel
connection parameters
@return [Hash]
# File lib/mimi/db.rb, line 113 def self.sequel_config { adapter: sequel_config_canonical_adapter_name(module_options[:db_adapter]), database: module_options[:db_database], host: module_options[:db_host], port: module_options[:db_port], user: module_options[:db_username], password: module_options[:db_password], encoding: module_options[:db_encoding], max_connections: module_options[:db_pool], sql_log_level: module_options[:db_log_level], logger: logger } end
sequel_config_canonical_adapter_name(adapter_name)
click to toggle source
Returns a standard Sequel
adapter name converted from any variation of adapter names.
@example
sequel_config_canonical_adapter_name(:sqlite3) # => 'sqlite'
@param adapter_name [String,Symbol] @return [String]
# File lib/mimi/db.rb, line 96 def self.sequel_config_canonical_adapter_name(adapter_name) case adapter_name.to_s.downcase when 'sqlite', 'sqlite3' 'sqlite' when 'postgres', 'postgresql' 'postgres' when 'cockroach', 'cockroachdb' 'cockroachdb' else adapter_name.to_s.downcase end end
start()
click to toggle source
Calls superclass method
# File lib/mimi/db.rb, line 81 def self.start Mimi::DB::Extensions.start @connection = Sequel.connect(sequel_config) Mimi.require_files(module_options[:require_files]) if module_options[:require_files] super end