#!/usr/local/bin/ruby require 'cgi' require 'cgi/session' class SessionDemo ## # Initializes the session def initialize @cgi = CGI.new File.umask 0066 @session = CGI::Session.new @cgi @cmd = @cgi.params['cmd'].first || 'start' @header = { "type" => "text/html", "charset" => "euc-jp" } send "cmd_#{@cmd}" end ## # Displays form for getting name def cmd_start @cgi.out @header do <<-END CGI::Session Demo

Insert your name!

END end end ## # Puts name in session def cmd_hello name = @cgi.params['name'].first @session['name'] = name @cgi.out @header do <<-END CGI::Session Demo

Welcome #{name}

[bye] END end end ## # Pulls name from session def cmd_bye name = @session['name'] @cgi.out @header do <<-END CGI::Session Demo

bye! #{name}

[start] END end end end SessionDemo.new