Sha256: 81a39e0dc9b206dc2896e3667d48e848f4350aeb19c08d115ad463b050fbc972
Contents?: true
Size: 1.71 KB
Versions: 2
Compression:
Stored size: 1.71 KB
Contents
class DBUniversity # @@ - кринж, так как если данный класс будет наследовать, то переменная класса переопределится с таким же значением private_class_method :new # Создаем мьютекс для синхронизации доступа к переменной @instance он позволяет "захватить" доступ к общему ресурсу, # чтобы другие потоки не могли получить доступ к защищенному коду, пока мьютекс не будет освобожден. @instance_mutex = Mutex.new # Инициализируем объект, открывая БД и настраивая её на возвращение результатов в виде хешей def initialize @client = SQLite3::Database.open 'C:\Users\valen\RubymineProjects\untitled\identifier.sqlite' @client.results_as_hash = true end # Метод, возвращает ЕДИНСТВЕННЫЙ экземпляр класса DBUniversity. def self.instance return @instance if @instance # Иначе захватываем мьютекс, чтобы ТОЛЬКО ОДИН поток мог создать экземпляр класса. @instance_mutex.synchronize do @instance ||= new end @instance end # Методы, принимают SQL-запрос (и параметры), возвращает результаты запроса. def prepare_exec(statement, *params) @client.prepare(statement).execute(*params) end def query(statement) @client.query(statement) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rafmycat-1.0.1 | lib/source/DBUniversity.rb |
rafmycat-1.0.0 | lib/source/DBUniversity.rb |