Class: Familia::Connection::CachedConnectionHandler

Inherits:
BaseConnectionHandler show all
Defined in:
lib/familia/connection/handlers.rb

Overview

Checks for a dbclient class instance variable with a cached client instance

This works on any module, class, or instance that implements has a dbclient method. From a Horreum model instance, if you call CachedConnectionHandler.new(self) it'll return self.dbclient or nil, or you can call CachedConnectionHandler(self.class) and it'll attempt the same using the model's class.

+familia_module+ is required.

CachedConnectionHandler - Single cached connection - block all multi-mode operations

Instance Method Summary collapse

Constructor Details

#initialize(familia_module) ⇒ CachedConnectionHandler

Returns a new instance of CachedConnectionHandler.



210
211
212
# File 'lib/familia/connection/handlers.rb', line 210

def initialize(familia_module)
  @familia_module = familia_module
end

Instance Method Details

#handle(_uri) ⇒ Object



214
215
216
217
218
219
220
# File 'lib/familia/connection/handlers.rb', line 214

def handle(_uri)
  dbclient = @familia_module.instance_variable_get(:@dbclient)
  return nil unless dbclient

  Familia.trace :DBCLIENT_INSTVAL_OVERRIDE, nil, "Using @dbclient from #{@familia_module.class}"
  dbclient
end