класс CGI::Session::PStore
Класс хранилища сеансов на основе PStore.
Этот класс основан на классе верхнего уровня PStore, предоставляемом файлом библиотеки pstore.rb. Данные Session сериализуются и сохраняются в файле. Предоставляются службы блокировки и транзакций File.
Открытые методы класса
# File lib/cgi/session/pstore.rb, line 49
def initialize(session, option={})
option = {'suffix'=>''}.update(option)
path, @hash = session.new_store_file(option)
@p = ::PStore.new(path)
@p.transaction do |p|
File.chmod(0600, p.path)
end
end Создаёт новый экземпляр CGI::Session::PStore.
Этот конструктор используется внутри CGI::Session. Обычно пользователю не нужно вызывать его напрямую.
session — сеанс, для которого создаётся этот экземпляр. Идентификатор сеанса должен содержать только буквенно-цифровые символы; автоматически сгенерированные идентификаторы сеансов соответствуют этому требованию.
option — хэш параметров для инициализатора. Распознаются следующие параметры:
- tmpdir
-
каталог для хранения файла
PStore. По умолчанию используетсяDir::tmpdir(обычно «/tmp» в системах Unix). - prefix
-
префикс, добавляемый к идентификатору сеанса при формировании имени файла
PStoreдля этого сеанса. По умолчанию используется пустая строка.
Файл PStore этого сеанса будет создан, если он не существует, или открыт, если существует.
Открытые методы экземпляра
# File lib/cgi/session/pstore.rb, line 78 def close update end
Обновляет и закрывает файл PStore сеанса.
# File lib/cgi/session/pstore.rb, line 83 def delete path = @p.path File::unlink path end
Закрывает и удаляет файл PStore сеанса.
# File lib/cgi/session/pstore.rb, line 61
def restore
unless @hash
@p.transaction do
@hash = @p['hash'] || {}
end
end
@hash
end Восстанавливает состояние сеанса из файла PStore сеанса.
Возвращает состояние сеанса в виде хэша.
# File lib/cgi/session/pstore.rb, line 71
def update
@p.transaction do
@p['hash'] = @hash
end
end Сохраняет состояние сеанса в файл PStore сеанса.
Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.