Книга: Программирование на языке Ruby

10.2.8. Библиотека DBM

10.2.8. Библиотека DBM

DBM — платформенно-независимый механизм для хранения строк в файле, как в хэше. И ключ, и ассоциированные с ним данные должны быть строками. Интерфейс dbm включен в стандартный дистрибутив Ruby.

Для использования этого класса нужно создать объект DBM, указав для него имя файла, а дальше работать с ним, как с обычным хэшем. По завершении работы файл следует закрыть.

require 'dbm'
d = DBM.new("data")
d["123"] = "toodle-oo!"
puts d["123"] # "toodle-oo!"
d.close
puts d["123"] # RuntimeError: закрытый DBM-файл.
e = DBM.open("data")
e["123"]      # "toodle-oo!"
w=e.to_hash   # {"123"=>"toodle-oo!"}
e.close
e["123"]      # RuntimeError: закрытый DBM-файл.
w["123"]      # "toodle-oo!

Интерфейс к DBM реализован в виде одного класса, к которому подмешан модуль Enumerable. Два метода класса (синонимы) new и open являются синглетами, то есть в любой момент времени можно иметь только один объект DBM, связанный с данным файлом.

q=DBM.new("data.dbm")  #
f=DBM.open("data.dbm") # Errno::EWOULDBLOCK:
                       #  Try again - "data.dbm"

Всего есть 34 метода экземпляра, многие из которых являются синонимами или аналогичны методам хэша. Почти все операции с настоящим хэшем применимы и к объекту dbm.

Метод to_hash создает представление файла в виде хэша в памяти, а метод close закрывает связь с файлом. Остальные методы по большей части аналогичны методам хэшам, однако дополнительно есть методы rehash, sort, default, default=. Метод to_s возвращает строковое представление идентификатора объекта.

Оглавление книги


Генерация: 1.150. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз