File: app.cgi

package info (click to toggle)
tempura 0.1.2r3-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, sarge
  • size: 400 kB
  • ctags: 399
  • sloc: ruby: 1,826; makefile: 84; xml: 80
file content (30 lines) | stat: -rwxr-xr-x 638 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/ruby

require 'cgi'
require 'cgi/session'
require 'controller'

# request parameter
cgi = CGI.new
params = cgi.params
event = params['event'].first
params.delete('event')

# resume a controller or create new one.
session = CGI::Session::new(cgi)
controller = 
      if session['controller'] then
        Marshal.load( session['controller'] )
      else
        Controller.new(File.basename(__FILE__))
      end

# handle event
controller.handle_event(event, params)

# response
print cgi.header( controller.content_type )
print controller.content_body

# suspend the controller
session['controller'] = Marshal.dump(controller)