<?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> <a href="#M000014">args</a> <a href="#M000015">args=</a> <a href="#M000020">content_for</a> <a href="#M000017">json</a> <a href="#M000018">redirect</a> <a href="#M000016">render</a> <a href="#M000021">static</a> </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 < Route '/hello/(.*)' ... end end </pre> <p> then </p> <pre> URL( Capcode::Hello, "you" ) # => /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">""</span> ).<span class="ruby-identifier">gsub</span>( <span class="ruby-regexp re">/\\\)/</span>, <span class="ruby-value str">""</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">""</span> 223: <span class="ruby-identifier">cpath</span> = <span class="ruby-identifier">cpath</span> <span class="ruby-operator">+</span> <span class="ruby-node">"/#{data.shift}"</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">"/#{r}"</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">"/"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">join</span>( <span class="ruby-value str">"/"</span> )).<span class="ruby-identifier">gsub</span>( <span class="ruby-regexp re">/\/\//</span>, <span class="ruby-value str">"/"</span> ).<span class="ruby-identifier">gsub</span>( <span class="ruby-regexp re">/\/$/</span>, <span class="ruby-value str">""</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 < Route '/' def get render( :markaby => :page, :layout => :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 "This is the title!" end content_for :content do p "this is the content!" 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 < Route '/json/([^\/]*)/(.*)' def get( arg1, arg2 ) json( { :1 => arg1, :2 => 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> => 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">"json is deprecated and will be removed in version 1.0, please use `render( :json => ... )'"</span> ) 150: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:json</span> =<span class="ruby-operator">></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 < 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( "/path/to/my/resource" ) </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">></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>‘s parameter can be a Hash or a string. Passing a string is equivalent to do </p> <pre> render( :text => string ) </pre> <p> If you want to use a specific renderer, use one of this options : </p> <ul> <li>:markaby => :my_func : :my_func must be defined in <a href="Views.html">Capcode::Views</a> </li> <li>:erb => :my_erb_file : this suppose that‘s my_erb_file.rhtml exist in erb_path </li> <li>:haml => :my_haml_file : this suppose that‘s my_haml_file.haml exist in haml_path </li> <li>:sass => :my_sass_file : this suppose that‘s my_sass_file.sass exist in sass_path </li> <li>:text => "my text" </li> <li>:<a href="Helpers.html#M000017">json</a> => MyObject : this suppose that‘s MyObject respond to .to_json </li> <li>:<a href="Helpers.html#M000021">static</a> => "my_file.xxx" : this suppose that‘s my_file.xxx exist in the <a href="Helpers.html#M000021">static</a> directory </li> <li>:xml => :my_func : :my_func must be defined in <a href="Views.html">Capcode::Views</a> </li> <li>:webdav => /path/to/root </li> </ul> <p> Or you can use a "HTTP code" renderer : </p> <pre> render 200 => "Ok", :server => "Capcode #{Capcode::CAPCOD_VERION}", ... </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">"capcode-render-#{key.to_s}"</span> 82: <span class="ruby-identifier">require</span> <span class="ruby-node">"capcode/render/#{key.to_s}"</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">"Hum... The #{key} renderer is malformated! Please try to install a new version or use an other renderer!"</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">"render_#{key.to_s}"</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">"Can't use multiple renderer (`#{render_type}' and `#{key}') !"</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">"Renderer type not specified!"</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">"render_#{render_type.to_s}"</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">"#{render_type} renderer not present ! please require 'capcode/render/#{render_type}'"</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">"-"</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">"render_#{render_type.to_s}"</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">></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">"Error rendering `#{render_type.to_s}' : #{e.message}"</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">></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">></span> <span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">static</span>, 286: <span class="ruby-identifier">:path</span> =<span class="ruby-operator">></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>