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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<html><head>
<title>Class: Amrita::AmsHandler</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel=StyleSheet href="../.././rdoc-style.css" type="text/css" media="screen" />
<script type="text/javascript" language="JavaScript">
<!--
function popCode(url) {
window.open(url, "Code",
"resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
}
//-->
</script>
</head>
<body bgcolor="white">
<table summary="Information on class" width="100%" border="0" cellspacing="0">
<tr class="title-row">
<td class="big-title-font">
<sup><font color="aqua">Class</font></sup> Amrita::AmsHandler
</td>
<td align="right">
<table summary="layout" cellspacing="0" cellpadding="2">
<tr valign="top">
<td class="small-title-font">In:</td>
<td class="small-title-font">
<a href="../../files/lib/amrita/handlers_rb.html" class="aqua">
lib/amrita/handlers.rb
</a>
<br />
</td>
</tr>
<tr>
<td class="small-title-font">Parent:</td>
<td class="small-title-font">
Object
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- banner header -->
<div class="description"><p>
a mod_ruby handler for amrita-script
</p>
</div>
<table summary="Methods" cellpadding="5" width="100%">
<tr><td class="tablesubtitle">Methods</td></tr>
</table>
<div class="name-list">
<a href="#M000116">handler</a>
</div>
<table summary="Included modules" cellpadding="5" width="100%">
<tr><td class="tablesubtitle">Included modules</td></tr>
</table>
<div class="name-list">
<span class="method-name">Apache</span>
<span class="method-name">Singleton</span>
</div>
<table summary="Method list" cellpadding="5" width="100%">
<tr><td class="tablesubtitle">Public Instance methods</td></tr>
</table>
<table summary="method" width="100%" cellspacing="0" cellpadding="5" border="0">
<tr><td class="methodtitle">
<a name="M000116"></a>
<b>handler</b>(r)
</td></tr>
</table>
<pre class="source">
<span class="cmt"># File lib/amrita/handlers.rb, line 10</span>
<span class="kw">def</span> handler(r)
<span class="kw">if</span> r.method_number == M_OPTIONS
r.allowed |= (1 << M_GET)
r.allowed |= (1 << M_POST)
<span class="kw">return</span> DECLINED
<span class="kw">end</span>
<span class="kw">if</span> r.finfo.mode == 0
<span class="kw">return</span> NOT_FOUND
<span class="kw">end</span>
<span class="kw">if</span> r.allow_options & OPT_EXECCGI == 0
r.log_reason(<span class="str">"Options ExecCGI is off in this directory"</span>, r.filename)
<span class="kw">return</span> FORBIDDEN
<span class="kw">end</span>
<span class="kw">unless</span> r.finfo.executable?
r.log_reason(<span class="str">"file permissions deny server execution"</span>, r.filename)
<span class="kw">return</span> FORBIDDEN
<span class="kw">end</span>
r.setup_cgi_env
filename = r.filename.dup.untaint
Apache.chdir_file(filename)
$amrita_template_path = filename
t = Amrita::AmsTemplate[filename]
t.use_compiler = <span class="kw">true</span>
r.content_type = <span class="str">"text/html"</span>
r.send_http_header
t.expand(r)
<span class="kw">return</span> OK
<span class="kw">end</span>
</pre>
</body>
|