<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>Module: Capcode::Helpers</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  <meta http-equiv="Content-Script-Type" content="text/javascript" />
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
  <script type="text/javascript">
  // <![CDATA[

  function popupCode( url ) {
    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
  }

  function toggleCode( id ) {
    if ( document.getElementById )
      elem = document.getElementById( id );
    else if ( document.all )
      elem = eval( "document.all." + id );
    else
      return false;

    elemStyle = elem.style;
    
    if ( elemStyle.display != "block" ) {
      elemStyle.display = "block"
    } else {
      elemStyle.display = "none"
    }

    return true;
  }
  
  // Make codeblocks hidden by default
  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
  
  // ]]>
  </script>

</head>
<body>



    <div id="classHeader">
        <table class="header-table">
        <tr class="top-aligned-row">
          <td><strong>Module</strong></td>
          <td class="class-name-in-header">Capcode::Helpers</td>
        </tr>
        <tr class="top-aligned-row">
            <td><strong>In:</strong></td>
            <td>
                <a href="../../files/lib/capcode_rb.html">
                lib/capcode.rb
                </a>
        <br />
                <a href="../../files/lib/capcode/render/text_rb.html">
                lib/capcode/render/text.rb
                </a>
        <br />
                <a href="../../files/lib/capcode/helpers/auth_rb.html">
                lib/capcode/helpers/auth.rb
                </a>
        <br />
            </td>
        </tr>

        </table>
    </div>
  <!-- banner header -->

  <div id="bodyContent">



  <div id="contextContent">

    <div id="description">
      <p>
<a href="Helpers.html">Helpers</a> contains methods available in your
controllers
</p>

    </div>


   </div>

    <div id="method-list">
      <h3 class="section-bar">Methods</h3>

      <div class="name-list">
      <a href="#M000019">URL</a>&nbsp;&nbsp;
      <a href="#M000014">args</a>&nbsp;&nbsp;
      <a href="#M000015">args=</a>&nbsp;&nbsp;
      <a href="#M000020">content_for</a>&nbsp;&nbsp;
      <a href="#M000017">json</a>&nbsp;&nbsp;
      <a href="#M000018">redirect</a>&nbsp;&nbsp;
      <a href="#M000016">render</a>&nbsp;&nbsp;
      <a href="#M000021">static</a>&nbsp;&nbsp;
      </div>
    </div>

  </div>


    <!-- if includes -->
    <div id="includes">
      <h3 class="section-bar">Included Modules</h3>

      <div id="includes-list">
        <span class="include-name"><a href="Helpers/Authorization.html">Authorization</a></span>
      </div>
    </div>

    <div id="section">

    <div id="class-list">
      <h3 class="section-bar">Classes and Modules</h3>

      Module <a href="Helpers/Authorization.html" class="link">Capcode::Helpers::Authorization</a><br />

    </div>




      


    <!-- if method_list -->
    <div id="methods">
      <h3 class="section-bar">Public Class methods</h3>

      <div id="method-M000014" class="method-detail">
        <a name="M000014"></a>

        <div class="method-heading">
          <a href="#M000014" class="method-signature">
          <span class="method-name">args</span><span class="method-args">()</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000014-source">
<pre>
    <span class="ruby-comment cmt"># File lib/capcode.rb, line 37</span>
37:     <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">args</span>
38:       <span class="ruby-ivar">@args</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword kw">nil</span>
39:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000015" class="method-detail">
        <a name="M000015"></a>

        <div class="method-heading">
          <a href="#M000015" class="method-signature">
          <span class="method-name">args=</span><span class="method-args">(x)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000015-source">
<pre>
    <span class="ruby-comment cmt"># File lib/capcode.rb, line 40</span>
40:     <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">args=</span>(<span class="ruby-identifier">x</span>)
41:       <span class="ruby-ivar">@args</span> = <span class="ruby-identifier">x</span>
42:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <h3 class="section-bar">Public Instance methods</h3>

      <div id="method-M000019" class="method-detail">
        <a name="M000019"></a>

        <div class="method-heading">
          <a href="#M000019" class="method-signature">
          <span class="method-name">URL</span><span class="method-args">( klass, *a )</span>
          </a>
        </div>
      
        <div class="method-description">
          <p>
Builds an <a href="Helpers.html#M000019">URL</a> route to a controller or a
path
</p>
<p>
if you declare the controller Hello :
</p>
<pre>
  module Capcode
    class Hello &lt; Route '/hello/(.*)'
      ...
    end
  end
</pre>
<p>
then
</p>
<pre>
  URL( Capcode::Hello, &quot;you&quot; ) # =&gt; /hello/you
</pre>
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000019-source">
<pre>
     <span class="ruby-comment cmt"># File lib/capcode.rb, line 204</span>
204:     <span class="ruby-keyword kw">def</span> <span class="ruby-constant">URL</span>( <span class="ruby-identifier">klass</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">a</span> )
205:       <span class="ruby-identifier">path</span> = <span class="ruby-keyword kw">nil</span>
206:       <span class="ruby-identifier">result</span> = {}
207:       
208:       <span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">delete_if</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">nil?</span> }
209:       
210:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Class</span>
211:         <span class="ruby-identifier">last_size</span> = <span class="ruby-value">0</span>
212:         
213:         <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">__urls__</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cpath</span>, <span class="ruby-identifier">regexp</span><span class="ruby-operator">|</span>
214:           <span class="ruby-identifier">data</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">clone</span>
215:           
216:           <span class="ruby-identifier">n</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">regexp</span> ).<span class="ruby-identifier">number_of_captures</span>
217:           <span class="ruby-identifier">equart</span> = (<span class="ruby-identifier">a</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">n</span>).<span class="ruby-identifier">abs</span>
218:           
219:           <span class="ruby-identifier">rtable</span> = <span class="ruby-identifier">regexp</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">gsub</span>( <span class="ruby-regexp re">/\\\(/</span>, <span class="ruby-value str">&quot;&quot;</span> ).<span class="ruby-identifier">gsub</span>( <span class="ruby-regexp re">/\\\)/</span>, <span class="ruby-value str">&quot;&quot;</span> ).<span class="ruby-identifier">split</span>( <span class="ruby-regexp re">/\([^\)]*\)/</span> )
220:           
221:           <span class="ruby-identifier">rtable</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
222:             <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">r</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;&quot;</span>
223:               <span class="ruby-identifier">cpath</span> = <span class="ruby-identifier">cpath</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;/#{data.shift}&quot;</span>
224:             <span class="ruby-keyword kw">else</span>
225:               <span class="ruby-identifier">cpath</span> = <span class="ruby-identifier">cpath</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;/#{r}&quot;</span>
226:             <span class="ruby-keyword kw">end</span>
227:           <span class="ruby-keyword kw">end</span>
228:           
229:           <span class="ruby-identifier">cpath</span> = (<span class="ruby-identifier">cpath</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">join</span>( <span class="ruby-value str">&quot;/&quot;</span> )).<span class="ruby-identifier">gsub</span>( <span class="ruby-regexp re">/\/\//</span>, <span class="ruby-value str">&quot;/&quot;</span> ).<span class="ruby-identifier">gsub</span>( <span class="ruby-regexp re">/\/$/</span>, <span class="ruby-value str">&quot;&quot;</span> )
230:           <span class="ruby-identifier">result</span>[<span class="ruby-identifier">equart</span>] = <span class="ruby-identifier">cpath</span>
231:         <span class="ruby-keyword kw">end</span>
232:         
233:         <span class="ruby-identifier">path</span> = <span class="ruby-identifier">result</span>[<span class="ruby-identifier">result</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">min</span>]
234:       <span class="ruby-keyword kw">else</span>
235:         <span class="ruby-identifier">path</span> = <span class="ruby-identifier">klass</span>
236:       <span class="ruby-keyword kw">end</span>
237:       
238:       (<span class="ruby-constant">ENV</span>[<span class="ruby-value str">'RACK_BASE_URI'</span>]<span class="ruby-operator">||</span><span class="ruby-value str">''</span>)<span class="ruby-operator">+</span><span class="ruby-identifier">path</span>
239:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000020" class="method-detail">
        <a name="M000020"></a>

        <div class="method-heading">
          <a href="#M000020" class="method-signature">
          <span class="method-name">content_for</span><span class="method-args">( x ) {|| ...}</span>
          </a>
        </div>
      
        <div class="method-description">
          <p>
Calling <a href="Helpers.html#M000020">content_for</a> stores a block of
markup in an identifier.
</p>
<pre>
  module Capcode
    class ContentFor &lt; Route '/'
      def get
        render( :markaby =&gt; :page, :layout =&gt; :layout )
      end
    end
  end

  module Capcode::Views
    def layout
      html do
        head do
          yield :header
        end
        body do
          yield :content
        end
      end
    end

    def page
      content_for :header do
        title &quot;This is the title!&quot;
      end

      content_for :content do
        p &quot;this is the content!&quot;
      end
    end
  end
</pre>
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000020-source">
<pre>
     <span class="ruby-comment cmt"># File lib/capcode.rb, line 273</span>
273:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">content_for</span>( <span class="ruby-identifier">x</span> )
274:       <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Helpers</span>.<span class="ruby-identifier">args</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">_</span><span class="ruby-operator">|</span> <span class="ruby-identifier">_</span>.<span class="ruby-identifier">to_s</span> }.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">x</span>.<span class="ruby-identifier">to_s</span>)
275:         <span class="ruby-keyword kw">yield</span>
276:       <span class="ruby-keyword kw">end</span>
277:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000017" class="method-detail">
        <a name="M000017"></a>

        <div class="method-heading">
          <a href="#M000017" class="method-signature">
          <span class="method-name">json</span><span class="method-args">( d )</span>
          </a>
        </div>
      
        <div class="method-description">
          <p>
Help you to return a JSON response
</p>
<pre>
  module Capcode
    class JsonResponse &lt; Route '/json/([^\/]*)/(.*)'
      def get( arg1, arg2 )
        json( { :1 =&gt; arg1, :2 =&gt; arg2 })
      end
    end
  end
</pre>
<p>
<b>DEPRECATED</b>, please use <tt><a
href="Helpers.html#M000016">render</a>( :<a
href="Helpers.html#M000017">json</a> =&gt; o )</tt>
</p>
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000017-source">
<pre>
     <span class="ruby-comment cmt"># File lib/capcode.rb, line 148</span>
148:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">json</span>( <span class="ruby-identifier">d</span> ) <span class="ruby-comment cmt">## DELETE THIS IN 1.0.0</span>
149:       <span class="ruby-identifier">warn</span>( <span class="ruby-value str">&quot;json is deprecated and will be removed in version 1.0, please use `render( :json =&gt; ... )'&quot;</span> )
150:       <span class="ruby-identifier">render</span> <span class="ruby-identifier">:json</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">d</span>
151:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000018" class="method-detail">
        <a name="M000018"></a>

        <div class="method-heading">
          <a href="#M000018" class="method-signature">
          <span class="method-name">redirect</span><span class="method-args">( klass, *a )</span>
          </a>
        </div>
      
        <div class="method-description">
          <p>
Send a <a href="Helpers.html#M000018">redirect</a> response
</p>
<pre>
  module Capcode
    class Hello &lt; Route '/hello/(.*)'
      def get( you )
        if you.nil?
          redirect( WhoAreYou )
        else
          ...
        end
      end
    end
  end
</pre>
<p>
The first parameter can be a controller class name
</p>
<pre>
  redirect( MyController )
</pre>
<p>
it can be a string path
</p>
<pre>
  redirect( &quot;/path/to/my/resource&quot; )
</pre>
<p>
it can be an http status code (by default <tt><a
href="Helpers.html#M000018">redirect</a></tt> use the http status code 302)
</p>
<pre>
  redirect( 304, MyController )
</pre>
<p>
For more informations about HTTP status, see <a
href="http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection">en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection</a>
</p>
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000018-source">
<pre>
     <span class="ruby-comment cmt"># File lib/capcode.rb, line 180</span>
180:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">redirect</span>( <span class="ruby-identifier">klass</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">a</span> )
181:       <span class="ruby-identifier">httpCode</span> = <span class="ruby-value">302</span>
182: 
183:       <span class="ruby-keyword kw">if</span>( <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Fixnum</span> )
184:         <span class="ruby-identifier">httpCode</span> = <span class="ruby-identifier">klass</span>
185:         <span class="ruby-identifier">klass</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">shift</span>
186:       <span class="ruby-keyword kw">end</span>
187: 
188:       [<span class="ruby-identifier">httpCode</span>, {<span class="ruby-value str">'Location'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">URL</span>(<span class="ruby-identifier">klass</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)}, <span class="ruby-value str">''</span>]
189:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000016" class="method-detail">
        <a name="M000016"></a>

        <div class="method-heading">
          <a href="#M000016" class="method-signature">
          <span class="method-name">render</span><span class="method-args">( hash )</span>
          </a>
        </div>
      
        <div class="method-description">
          <p>
Render a view
</p>
<p>
<a href="Helpers.html#M000016">render</a>&#8216;s parameter can be a Hash
or a string. Passing a string is equivalent to do
</p>
<pre>
  render( :text =&gt; string )
</pre>
<p>
If you want to use a specific renderer, use one of this options :
</p>
<ul>
<li>:markaby =&gt; :my_func : :my_func must be defined in <a
href="Views.html">Capcode::Views</a>

</li>
<li>:erb =&gt; :my_erb_file : this suppose that&#8216;s my_erb_file.rhtml exist
in erb_path

</li>
<li>:haml =&gt; :my_haml_file : this suppose that&#8216;s my_haml_file.haml
exist in haml_path

</li>
<li>:sass =&gt; :my_sass_file : this suppose that&#8216;s my_sass_file.sass
exist in sass_path

</li>
<li>:text =&gt; &quot;my text&quot;

</li>
<li>:<a href="Helpers.html#M000017">json</a> =&gt; MyObject : this suppose
that&#8216;s MyObject respond to .to_json

</li>
<li>:<a href="Helpers.html#M000021">static</a> =&gt; &quot;my_file.xxx&quot; :
this suppose that&#8216;s my_file.xxx exist in the <a
href="Helpers.html#M000021">static</a> directory

</li>
<li>:xml =&gt; :my_func : :my_func must be defined in <a
href="Views.html">Capcode::Views</a>

</li>
<li>:webdav =&gt; /path/to/root

</li>
</ul>
<p>
Or you can use a &quot;HTTP code&quot; renderer :
</p>
<pre>
  render 200 =&gt; &quot;Ok&quot;, :server =&gt; &quot;Capcode #{Capcode::CAPCOD_VERION}&quot;, ...
</pre>
<p>
If you want to use a specific layout, you can specify it with option
</p>
<pre>
  :layout
</pre>
<p>
If you want to change the Content-Type, you can specify it with option
</p>
<pre>
  :content_type
</pre>
<p>
Note that this will not work with the JSON renderer
</p>
<p>
If you use the WebDav renderer, you can use the option
</p>
<pre>
  :resource_class (see http://github.com/georgi/rack_dav for more informations)
</pre>
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000016-source">
<pre>
     <span class="ruby-comment cmt"># File lib/capcode.rb, line 74</span>
 74:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>( <span class="ruby-identifier">hash</span> )
 75:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Hash</span>
 76:         <span class="ruby-identifier">render_type</span> = <span class="ruby-keyword kw">nil</span>
 77:         <span class="ruby-identifier">possible_code_renderer</span> = <span class="ruby-keyword kw">nil</span>
 78:         
 79:         <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
 80:           <span class="ruby-keyword kw">begin</span>
 81:             <span class="ruby-identifier">gem</span> <span class="ruby-node">&quot;capcode-render-#{key.to_s}&quot;</span>
 82:             <span class="ruby-identifier">require</span> <span class="ruby-node">&quot;capcode/render/#{key.to_s}&quot;</span>
 83:           <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">LoadError</span>
 84:             <span class="ruby-keyword kw">nil</span>
 85:           <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">LoadError</span>
 86:             <span class="ruby-identifier">raise</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">RenderError</span>, <span class="ruby-node">&quot;Hum... The #{key} renderer is malformated! Please try to install a new version or use an other renderer!&quot;</span>, <span class="ruby-identifier">caller</span>
 87:           <span class="ruby-keyword kw">end</span>
 88:         
 89:           <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-node">&quot;render_#{key.to_s}&quot;</span>)
 90:             <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">render_type</span>.<span class="ruby-identifier">nil?</span>
 91:               <span class="ruby-identifier">raise</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">RenderError</span>, <span class="ruby-node">&quot;Can't use multiple renderer (`#{render_type}' and `#{key}') !&quot;</span>, <span class="ruby-identifier">caller</span>
 92:             <span class="ruby-keyword kw">end</span>
 93:             <span class="ruby-identifier">render_type</span> = <span class="ruby-identifier">key</span>
 94:           <span class="ruby-keyword kw">end</span>
 95:           
 96:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Fixnum</span>
 97:             <span class="ruby-identifier">possible_code_renderer</span> = <span class="ruby-identifier">key</span>
 98:           <span class="ruby-keyword kw">end</span>
 99:         <span class="ruby-keyword kw">end</span>
100:         
101:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">render_type</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">possible_code_renderer</span>.<span class="ruby-identifier">nil?</span>
102:           <span class="ruby-identifier">raise</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">RenderError</span>, <span class="ruby-value str">&quot;Renderer type not specified!&quot;</span>, <span class="ruby-identifier">caller</span>
103:         <span class="ruby-keyword kw">end</span>
104:         
105:         <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-node">&quot;render_#{render_type.to_s}&quot;</span>)
106:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">possible_code_renderer</span>.<span class="ruby-identifier">nil?</span>
107:             <span class="ruby-identifier">raise</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">RenderError</span>, <span class="ruby-node">&quot;#{render_type} renderer not present ! please require 'capcode/render/#{render_type}'&quot;</span>, <span class="ruby-identifier">caller</span>
108:           <span class="ruby-keyword kw">else</span>
109:             <span class="ruby-identifier">code</span> = <span class="ruby-identifier">possible_code_renderer</span>
110:             <span class="ruby-identifier">body</span> = <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">possible_code_renderer</span>)
111:             <span class="ruby-identifier">header</span> = {}
112:             <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
113:               <span class="ruby-identifier">k</span> = <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/_/</span>).<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">capitalize</span>}.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;-&quot;</span>)
114:               <span class="ruby-identifier">header</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
115:             <span class="ruby-keyword kw">end</span>
116:             
117:             [<span class="ruby-identifier">code</span>, <span class="ruby-identifier">header</span>, <span class="ruby-identifier">body</span>]
118:           <span class="ruby-keyword kw">end</span>
119:         <span class="ruby-keyword kw">else</span>
120:           <span class="ruby-identifier">render_name</span> = <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">render_type</span>)
121:           <span class="ruby-identifier">content_type</span> = <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:content_type</span>)
122:           <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">content_type</span>.<span class="ruby-identifier">nil?</span>
123:             <span class="ruby-ivar">@response</span>[<span class="ruby-value str">'Content-Type'</span>] = <span class="ruby-identifier">content_type</span>
124:           <span class="ruby-keyword kw">end</span>
125:           
126:           <span class="ruby-keyword kw">begin</span>
127:             <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>( <span class="ruby-node">&quot;render_#{render_type.to_s}&quot;</span>, <span class="ruby-identifier">render_name</span>, <span class="ruby-identifier">hash</span> )
128:           <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
129:             <span class="ruby-identifier">raise</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">RenderError</span>, <span class="ruby-node">&quot;Error rendering `#{render_type.to_s}' : #{e.message}&quot;</span>, <span class="ruby-identifier">caller</span>
130:           <span class="ruby-keyword kw">end</span>
131:         <span class="ruby-keyword kw">end</span>
132:       <span class="ruby-keyword kw">else</span>
133:         <span class="ruby-identifier">render</span>( <span class="ruby-identifier">:text</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">hash</span> )
134:       <span class="ruby-keyword kw">end</span>
135:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000021" class="method-detail">
        <a name="M000021"></a>

        <div class="method-heading">
          <a href="#M000021" class="method-signature">
          <span class="method-name">static</span><span class="method-args">()</span>
          </a>
        </div>
      
        <div class="method-description">
          <p>
Return information about the <a href="Helpers.html#M000021">static</a>
directory
</p>
<ul>
<li><tt><a href="Helpers.html#M000021">static</a>[:uri]</tt> give the <a
href="Helpers.html#M000021">static</a> URI

</li>
<li><tt><a href="Helpers.html#M000021">static</a>[:path]</tt> give the path to
the <a href="Helpers.html#M000021">static</a> directory on the server

</li>
</ul>
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000021-source">
<pre>
     <span class="ruby-comment cmt"># File lib/capcode.rb, line 283</span>
283:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">static</span>
284:       { 
285:         <span class="ruby-identifier">:uri</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">static</span>,
286:         <span class="ruby-identifier">:path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>( <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:root</span>), <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:static</span>) ) )
287:       }
288:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>


    </div>


  </div>


<div id="validator-badges">
  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
</div>

</body>
</html>