Spec-Zone.ru › Ruby 3.3

класс CGI::Session::PStore

Родитель:
Объект

Класс хранения сессии на основе PStore.

Он расширяет базовый класс PStore, предоставляемый библиотечным файлом pstore.rb. Данные Session сериализуются и сохраняются в файле. Предоставляются функции блокировки и транзакций для файлов.

Публичные методы класса

new(session, option={}) Показать исходный код
# 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 этой сессии будет создан, если он не существует, или открыт, если существует.

Публичные методы экземпляра

close() Показать исходный код
# File lib/cgi/session/pstore.rb, line 75
def close
  update
end

Обновить и закрыть файл PStore сессии.

delete() Показать исходный код
# File lib/cgi/session/pstore.rb, line 80
def delete
  path = @p.path
  File::unlink path
end

Закрыть и удалить файл PStore сессии.

restore() Показать исходный код
# File lib/cgi/session/pstore.rb, line 58
def restore
  unless @hash
    @p.transaction do
      @hash = @p['hash'] || {}
    end
  end
  @hash
end

Восстановить состояние сессии из файла PStore сессии.

Возвращает состояние сессии в виде хеша.

update() Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API