module JunglePath::DBAccess::IO

Public Class Methods

clone_config(config) click to toggle source
# File lib/jungle_path/db_access/io.rb, line 66
def self.clone_config(config)
        JunglePath::DBAccess::IO::Config.new(
                name: config.name,
                type: config.type,
                user_name: config.user_name,
                password: config.password,
                host: config.host,
                extensions: config.extensions,
                port: config.port,
                options: config.options
        )
end
connection(database_type:, user_name:, database_name:, host: "localhost", extensions: [], password: nil, port: nil, options: nil) click to toggle source
# File lib/jungle_path/db_access/io.rb, line 79
def self.connection(database_type:, user_name:, database_name:, host: "localhost", extensions: [], password: nil, port: nil, options: nil)
        Sequel.default_timezone = :utc
        colon_port = ":#{port}" if port
        options = {} unless options
        if password
                puts "Using db connection with explicit password!"
                connection_string = "#{database_type}://#{user_name}:#{password}@#{host}#{colon_port}/#{database_name}"
                puts "connection_string: #{connection_string}."
                db = Sequel.connect(connection_string, options)
                puts "connected."
        else
                puts "no explicit pw."
                connection_string = "#{database_type}://#{user_name}@#{host}#{colon_port}/#{database_name}"
                puts "connection_string: #{connection_string}."
                db = Sequel.connect(connection_string, options)
                puts "connected."
        end
        extensions.each do |extension|
                puts "Adding Sequel extension: #{extension}."
                db.extension extension
        end
        db
end
connection_from_config(config) click to toggle source
# File lib/jungle_path/db_access/io.rb, line 17
def self.connection_from_config(config)
        connection(
                database_type: config.type,
                user_name: config.user_name,
                database_name: config.name,
                host: config.host,
                extensions: config.extensions,
                password: config.password,
                port: config.port,
                options: config.options
        )
end
connection_from_config_unknown_database(config) click to toggle source
# File lib/jungle_path/db_access/io.rb, line 30
def self.connection_from_config_unknown_database(config)
        if config.type == 'postgres'
                connection_from_config_use_postgres_db(config)
        elsif config.type == 'tinytds'
                connection_from_config_use_ms_sql_server_db(config)
        else
                throw "Unknown database type: #{config.type}."
        end
end
connection_from_config_use_ms_sql_server_db(config) click to toggle source
# File lib/jungle_path/db_access/io.rb, line 40
def self.connection_from_config_use_ms_sql_server_db(config)
        db = connection(
                database_type: config.type,
                user_name: config.user_name,
                database_name: 'master',
                host: config.host,
                extensions: config.extensions,
                password: config.password,
                port: config.port,
                options: config.options
        )
end
connection_from_config_use_postgres_db(config) click to toggle source
# File lib/jungle_path/db_access/io.rb, line 53
def self.connection_from_config_use_postgres_db(config)
        db = connection(
                database_type: config.type,
                user_name: config.user_name,
                database_name: 'postgres',
                host: config.host,
                extensions: config.extensions,
                password: config.password,
                port: config.port,
                options: config.options
        )
end