require 'web/config' require 'web/load' require 'web/connection' require 'web/convenience' require 'web/info' module Web class << self def open( options={}, &block ) if Web::Connection::server_sniff == :fcgi FCGI::each_request{ |fcgi| options[:fcgi] = fcgi run( options, &block ) } else run(options, &block ) end end def run( options={} ) #:nodoc: Web::load_config Web.connection = Web::Connection.create( options ) old_stdin, old_stdout = $stdin, $stdout begin $stdin, $stdout = Web::raw_post_data, Web::connection $> = Web::connection case Web["ruby-web_resource"] when "ruby-web-logo.gif" Web::send_lib_file('web/resources/ruby-web-logo.gif') when "ruby-logo.gif" Web::send_lib_file('web/resources/ruby-logo.gif') when "ruby-web-styles.css" Web::send_lib_file('web/resources/ruby-web-styles.css') when "highlight_table.js" Web::send_lib_file('web/resources/highlight_table.js') else yield Web.connection(options) end rescue Exception => error Web::report_error( error ) ensure $stdin, $stdout = old_stdin, old_stdout $> = old_stdout end Web.connection(options).close Web.connection(options) end def load_config begin Kernel::load File.dirname(__FILE__) + "/web/site-config.rb" rescue LoadError end end end class Error < Exception end end