File: AmsHandler.html

package info (click to toggle)
amrita 1.0.2-4
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, lenny
  • size: 1,880 kB
  • ctags: 1,363
  • sloc: ruby: 9,159; xml: 978; makefile: 111
file content (120 lines) | stat: -rw-r--r-- 3,597 bytes parent folder | download | duplicates (4)
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>&nbsp; &nbsp;
</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 &lt;&lt; M_GET)
	r.allowed |= (1 &lt;&lt; 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 &amp; OPT_EXECCGI == 0
	r.log_reason(<span class="str">&quot;Options ExecCGI is off in this directory&quot;</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">&quot;file permissions deny server execution&quot;</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">&quot;text/html&quot;</span>
      r.send_http_header
      t.expand(r)

      <span class="kw">return</span> OK
    <span class="kw">end</span>
</pre>

</body>