require 'tofu/tofulet' require 'drb/drb' class Counter < Tofu::Session def initialize(bartender, hint=nil) @value = 0 end def service(context) case context.req_method when 'GET', 'POST', 'HEAD' @value += 1 # MT-unsafe context.res_header('content-type', 'text/plain') context.res_body(@value.to_s) else context.res_method_not_allowed end end def expires case @value when 0..10 nil # never when 11..15 Time.now + 15 # 15 sec else Time.at(1) # expired end end end class Hello < Tofu::Session include MonitorMixin def initialize(bartender, hint=nil) super(bartender) @user = nil @expires = nil @erb = ERbLight.new(page) end def page < Hello <%=username%>

Hi, <%=username%>