class Sequel::ConnectionGuard::ConnectionGuard
@api private @since 0.1.0
Public Class Methods
new(config, &initializer)
click to toggle source
@param config [String, Hash] database configuration @param initializer [Proc] code to run upon successful connection
@api private @since 0.1.0
# File lib/sequel/extensions/connection_guard/connection_guard.rb, line 13 def initialize(config, &initializer) @config = config @initializer = initializer @connection = nil try_establish_connection end
Public Instance Methods
force_execute() { |connection| ... }
click to toggle source
@raise [Sequel::DatabaseConnectionError] connection failure
@api private @since 0.1.0
# File lib/sequel/extensions/connection_guard/connection_guard.rb, line 25 def force_execute(&_block) try_establish_connection if @connection.nil? raise Sequel::DatabaseConnectionError unless connection_established? yield @connection end
raw_handle()
click to toggle source
@raise [Sequel::DatabaseConnectionError] if connection is not established
@api private @since 0.1.0
# File lib/sequel/extensions/connection_guard/connection_guard.rb, line 36 def raw_handle try_establish_connection if @connection.nil? return @connection if connection_established? raise Sequel::DatabaseConnectionError end
Private Instance Methods
connection_established?()
click to toggle source
@return [bool]
@api private @since 0.1.0
# File lib/sequel/extensions/connection_guard/connection_guard.rb, line 59 def connection_established? return false if @connection.nil? @connection.test_connection rescue Sequel::Error false end
try_establish_connection()
click to toggle source
@return [void]
@api private @since 0.1.0
# File lib/sequel/extensions/connection_guard/connection_guard.rb, line 49 def try_establish_connection @connection = Sequel.connect(@config) @initializer&.call(@connection) rescue Sequel::DatabaseConnectionError end