#!/usr/bin/ruby -w ## adaptation en Ruby de l'exemple de ## Personnalisation persistante de langue (perl) (K&Y fig 8.5) require "erb" require 'cgi' greetings = {"USA" => "Welcome", "UK" => "Welcome", "Canada" => "Welcome", "France" => "Bienvenue", "Germany" => "Wilkommen", "Spain" => "Bienvenidos", "KlingonEmpire" => "nuqneH", "Romulus" => "Aefvadh" } cgi=CGI.new if cgi.params["request"][0]=="reset" print cgi.header("type"=>"text/html") file = "preference_page.rhtml"; elsif cgi.cookies.has_key?("language") || cgi.params["request"][0]=="custom_page" if cgi.has_key?("language") language = cgi.params["language"][0] if cgi.has_key?("flag") flag="yes" else flag="no" end else language=cgi.cookies["language"][0] flag=cgi.cookies["flag"][0] end in_a_year = Time.now+(24*60*60*365) # expire dans un an... cookie_language = CGI::Cookie.new('name'=>"language", 'value'=>language, 'path'=>"/", 'expires'=>in_a_year) cookie_flag = CGI::Cookie.new('name'=>"flag", 'value'=>flag, 'path'=>"/", 'expires'=>in_a_year) print cgi.header("type"=>"text/html","cookie"=>[cookie_language,cookie_flag]) file = "custom_page.rhtml" else print cgi.header("type"=>"text/html") file = "preference_page.rhtml" end ERB.new(File.read(file)).run(binding)