Nora: セッションの永続化まわり

polystate.rbを参考にして。

#!/usr/local/ruby-1.8/bin/ruby
require 'web'
$stdout.binmode

api = Web::Interface::AUTO.new

api.each {|req|
  rsp = Web::Response.new
  rsp.content_type = 'text/plain'
  rsp << "Hello World!\n"

  persistent_id = req.cookies['sessionid'].value
  ps = Web::Persistent.new(persistent_id)
  ps.transaction {
    rsp << ps['foo']
  }

  #ps = Web::Persistent.new
  #ps.transaction {
  #  ps['foo'] = 'bar'
  #}
  #rsp.cookies['sessionid'] = Web::Cookie.new('sessionid', ps.persistent_id)

  api.response req,rsp
}

Web::Persistentのデフォルトの保存先は/tmp。
transactionを使わないとエントリにはアクセスできないよう。
単純な値なら、cookieだけのほうが楽かも。