класс CGI::Session::PStore
Класс хранения сессии на основе PStore.
Он расширяет базовый класс PStore, предоставляемый библиотечным файлом pstore.rb. Данные Session сериализуются и сохраняются в файле. Предоставляются функции блокировки и транзакций для файлов.
Публичные методы класса
# File lib/cgi/session/pstore.rb, line 46
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 75 def close update end
Обновить и закрыть файл PStore сессии.
# File lib/cgi/session/pstore.rb, line 80 def delete path = @p.path File::unlink path end
Закрыть и удалить файл PStore сессии.
# File lib/cgi/session/pstore.rb, line 58
def restore
unless @hash
@p.transaction do
@hash = @p['hash'] || {}
end
end
@hash
end Восстановить состояние сессии из файла PStore сессии.
Возвращает состояние сессии в виде хеша.
# File lib/cgi/session/pstore.rb, line 68
def update
@p.transaction do
@p['hash'] = @hash
end
end Сохранить состояние сессии в файле PStore сессии.
Ruby Core © 1993–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.