Мне нужно разделить дескриптор базы данных среди нескольких скриптов Ruby. Я использую гем DBI для подключения к базе данных. Рассмотрим следующий пример
#a.rb
class A
require 'dbi'
def connect
if a database handle is already open return it
else create a new one and return it
end
end
#b.rb
class B
require 'a'
a = A.new
dbh = a.connect
#some database queries here
end
#c.rb
class C
require 'a'
a = A.new
dbh = a.connect #Here the database handle created by class B should be returned
end
Я понимаю, что переменные экземпляра класса - это путь к достижению указанной цели. Может ли кто-нибудь дать представление об этом?
Имеет ли DBI что-то похожее на Log4r
class A
require 'log4r'
Log4r::Logger.new('SO') #create a new instance here
end
class B
require 'a'
Log4r::Logger['SO'] # get the existing instance here
end
Большое спасибо.