Spec-Zone.ru › Ruby 3.4
  1. CGI::
  2. Session::
  3. PStore

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

Родительский класс:
Object

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

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

Открытые методы класса

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

Открытые методы экземпляра

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

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

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

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

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

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

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

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

Spec-Zone.ru

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