Class: Amrita::AmsHandler

Class Amrita::AmsHandler |
In: | lib/amrita/handlers.rb
Parent: | Object

a mod_ruby handler for amrita-script

Methods

handler

Included modules

Apache Singleton

Public Instance methods

handler(r)

    # File lib/amrita/handlers.rb, line 10
        def handler(r)
          if r.method_number == M_OPTIONS
    	r.allowed |= (1 << M_GET)
    	r.allowed |= (1 << M_POST)
    	return DECLINED
          end
          if r.finfo.mode == 0
    	return NOT_FOUND
          end
          if r.allow_options & OPT_EXECCGI == 0
    	r.log_reason("Options ExecCGI is off in this directory", r.filename)
    	return FORBIDDEN
          end
          unless r.finfo.executable?
    	r.log_reason("file permissions deny server execution", r.filename)
    	return FORBIDDEN
          end
          r.setup_cgi_env
          filename = r.filename.dup.untaint
          Apache.chdir_file(filename)

          $amrita_template_path = filename

          t = Amrita::AmsTemplate[filename]
          t.use_compiler = true

          r.content_type = "text/html"
          r.send_http_header
          t.expand(r)

          return OK
        end