Capcode 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +58 -2
- data/doc/rdoc/classes/Capcode.html +224 -223
- data/doc/rdoc/classes/Capcode/HTTPError.html +2 -0
- data/doc/rdoc/classes/Capcode/Helpers.html +55 -35
- data/doc/rdoc/classes/Capcode/{RouteError.html → Views.html} +7 -26
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/AUTHORS.html +1 -0
- data/doc/rdoc/files/COPYING.html +1 -0
- data/doc/rdoc/files/README.html +65 -3
- data/doc/rdoc/files/lib/capcode_rb.html +2 -1
- data/examples/sample.rb +11 -3
- data/lib/capcode.rb +12 -8
- data/lib/capcode/version.rb +1 -1
- metadata +3 -4
- data/doc/rdoc/classes/Capcode/ParameterError.html +0 -126
    
        data/README
    CHANGED
    
    | @@ -10,6 +10,10 @@ Capcode is a web microframework | |
| 10 10 |  | 
| 11 11 | 
             
            == FEATURES/PROBLEMS:
         | 
| 12 12 |  | 
| 13 | 
            +
            === 0.4.0
         | 
| 14 | 
            +
            * Major bug correction !
         | 
| 15 | 
            +
            * Add views...
         | 
| 16 | 
            +
             | 
| 13 17 | 
             
            === 0.3.0
         | 
| 14 18 | 
             
            * Work with Rack 1.0.0
         | 
| 15 19 |  | 
| @@ -38,12 +42,12 @@ Capcode is a web microframework | |
| 38 42 |  | 
| 39 43 | 
             
            	Capcode.run( )
         | 
| 40 44 |  | 
| 41 | 
            -
             | 
| 45 | 
            +
            === Running Capcode Apps
         | 
| 42 46 |  | 
| 43 47 | 
             
            * Run: <tt>ruby sample.rb</tt>
         | 
| 44 48 | 
             
            * Visit http://localhost:3000/
         | 
| 45 49 |  | 
| 46 | 
            -
             | 
| 50 | 
            +
            === Create model
         | 
| 47 51 |  | 
| 48 52 | 
             
            	require 'rubygems'
         | 
| 49 53 | 
             
            	require 'capcode'
         | 
| @@ -60,6 +64,58 @@ Capcode is a web microframework | |
| 60 64 |  | 
| 61 65 | 
             
            See <tt>examples/blog-dm.rb</tt> and/or <tt>examples/blog-couchdb.rb</tt> for complete examples.
         | 
| 62 66 |  | 
| 67 | 
            +
            === Create View
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            	# file: sample.rb
         | 
| 70 | 
            +
            	require 'rubygems'
         | 
| 71 | 
            +
            	require 'capcode'
         | 
| 72 | 
            +
            	
         | 
| 73 | 
            +
            	module Capcode
         | 
| 74 | 
            +
            	  class Hello < Route '/hello'
         | 
| 75 | 
            +
            	    def get
         | 
| 76 | 
            +
            	      @t = Time.now
         | 
| 77 | 
            +
            	      render :time
         | 
| 78 | 
            +
            	    end
         | 
| 79 | 
            +
            	  end
         | 
| 80 | 
            +
            	end
         | 
| 81 | 
            +
            	
         | 
| 82 | 
            +
            	module Capcode::Views
         | 
| 83 | 
            +
            	  def time
         | 
| 84 | 
            +
            	    "Hello world #{@t}"
         | 
| 85 | 
            +
            	  end
         | 
| 86 | 
            +
            	end
         | 
| 87 | 
            +
            	
         | 
| 88 | 
            +
            	Capcode.run( )
         | 
| 89 | 
            +
             | 
| 90 | 
            +
            === Create Helper
         | 
| 91 | 
            +
             | 
| 92 | 
            +
            	# file: sample.rb
         | 
| 93 | 
            +
            	require 'rubygems'
         | 
| 94 | 
            +
            	require 'capcode'
         | 
| 95 | 
            +
            	
         | 
| 96 | 
            +
            	module Capcode
         | 
| 97 | 
            +
            	  class Hello < Route '/hello'
         | 
| 98 | 
            +
            	    def get
         | 
| 99 | 
            +
            	      @t = Time.now
         | 
| 100 | 
            +
            	      render :time
         | 
| 101 | 
            +
            	    end
         | 
| 102 | 
            +
            	  end
         | 
| 103 | 
            +
            	end
         | 
| 104 | 
            +
            	
         | 
| 105 | 
            +
            	module Capcode::Helpers
         | 
| 106 | 
            +
            	  def bold( &b )
         | 
| 107 | 
            +
            	    "<b>"+yield+"</b>"
         | 
| 108 | 
            +
            	  end
         | 
| 109 | 
            +
            	end
         | 
| 110 | 
            +
            	
         | 
| 111 | 
            +
            	module Capcode::Views
         | 
| 112 | 
            +
            	  def time
         | 
| 113 | 
            +
            	    "Hello world " + bold { @t }
         | 
| 114 | 
            +
            	  end
         | 
| 115 | 
            +
            	end
         | 
| 116 | 
            +
            	
         | 
| 117 | 
            +
            	Capcode.run( )
         | 
| 118 | 
            +
             | 
| 63 119 | 
             
            == REQUIREMENTS:
         | 
| 64 120 |  | 
| 65 121 | 
             
            * rack
         | 
| @@ -66,6 +66,7 @@ | |
| 66 66 | 
             
            "<a href="../files/lib/capcode_rb.html" value="File: capcode.rb">lib/capcode.rb</a>", 
         | 
| 67 67 | 
             
            <a href="http://greg.rubyfr.net">nil</a>].each do<br /> 
         | 
| 68 68 | 
             
            <a href="../classes/Capcode.html" title="Module: Capcode">Capcode</a>.view_html<br />
         | 
| 69 | 
            +
            <a href="../classes/Capcode/Views.html" title="Module: Capcode::Views">Capcode::Views</a>.view_html<br />
         | 
| 69 70 | 
             
            <a href="../classes/Capcode/Helpers.html" title="Module: Capcode::Helpers">Capcode::Helpers</a>.view_html<br />
         | 
| 70 71 | 
             
            <a href="../classes/Capcode/HTTPError.html" title="Class: Capcode::HTTPError">Capcode::HTTPError</a>.view_html<br />
         | 
| 71 72 | 
             
            <a href="../classes/Capcode/RouteError.html" title="Class: Capcode::RouteError">Capcode::RouteError</a>.view_html<br />
         | 
| @@ -92,6 +93,7 @@ end</strong> | |
| 92 93 | 
             
            <ul>
         | 
| 93 94 | 
             
            <li>Rack</li>
         | 
| 94 95 | 
             
            <li><a href="Capcode/Helpers.html">Capcode::Helpers</a></li>
         | 
| 96 | 
            +
            <li><a href="Capcode/Views.html">Capcode::Views</a></li>
         | 
| 95 97 | 
             
            </ul>
         | 
| 96 98 |  | 
| 97 99 | 
             
            <h2 class="ruled">Methods</h2>
         | 
| @@ -127,120 +129,116 @@ If the regexp in the route does not match, all arguments will be | |
| 127 129 | 
             
              <p class="source-link">[ <a href="javascript:toggleSource('M000001_source')" id="l_M000001_source">show source</a> ]</p>
         | 
| 128 130 | 
             
              <div id="M000001_source" class="dyn-source">
         | 
| 129 131 | 
             
            <pre>
         | 
| 130 | 
            -
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line  | 
| 131 | 
            -
             | 
| 132 | 
            -
             | 
| 133 | 
            -
             | 
| 134 | 
            -
             | 
| 135 | 
            -
             | 
| 136 | 
            -
             | 
| 137 | 
            -
             | 
| 138 | 
            -
             | 
| 139 | 
            -
             | 
| 140 | 
            -
             | 
| 141 | 
            -
             | 
| 142 | 
            -
             | 
| 143 | 
            -
             | 
| 144 | 
            -
             | 
| 145 | 
            -
             | 
| 146 | 
            -
             | 
| 147 | 
            -
             | 
| 148 | 
            -
             | 
| 149 | 
            -
             | 
| 150 | 
            -
             | 
| 151 | 
            -
             | 
| 152 | 
            -
             | 
| 153 | 
            -
             | 
| 154 | 
            -
             | 
| 155 | 
            -
             | 
| 156 | 
            -
             | 
| 157 | 
            -
             | 
| 158 | 
            -
             | 
| 159 | 
            -
             | 
| 160 | 
            -
             | 
| 161 | 
            -
             | 
| 162 | 
            -
             | 
| 163 | 
            -
             | 
| 164 | 
            -
             | 
| 165 | 
            -
             | 
| 166 | 
            -
             | 
| 167 | 
            -
             | 
| 168 | 
            -
             | 
| 169 | 
            -
             | 
| 170 | 
            -
             | 
| 171 | 
            -
             | 
| 172 | 
            -
             | 
| 173 | 
            -
             | 
| 174 | 
            -
             | 
| 175 | 
            -
             | 
| 176 | 
            -
             | 
| 177 | 
            -
             | 
| 178 | 
            -
             | 
| 179 | 
            -
             | 
| 180 | 
            -
             | 
| 181 | 
            -
             | 
| 182 | 
            -
             | 
| 183 | 
            -
             | 
| 184 | 
            -
             | 
| 185 | 
            -
             | 
| 186 | 
            -
             | 
| 187 | 
            -
             | 
| 188 | 
            -
             | 
| 189 | 
            -
             | 
| 190 | 
            -
             | 
| 191 | 
            -
             | 
| 192 | 
            -
             | 
| 193 | 
            -
             | 
| 194 | 
            -
             | 
| 195 | 
            -
             | 
| 196 | 
            -
             | 
| 197 | 
            -
             | 
| 198 | 
            -
             | 
| 199 | 
            -
             | 
| 200 | 
            -
             | 
| 201 | 
            -
             | 
| 202 | 
            -
             | 
| 203 | 
            -
             | 
| 204 | 
            -
             | 
| 205 | 
            -
             | 
| 206 | 
            -
             | 
| 207 | 
            -
             | 
| 208 | 
            -
             | 
| 209 | 
            -
             | 
| 210 | 
            -
             | 
| 211 | 
            -
             | 
| 212 | 
            -
             | 
| 213 | 
            -
             | 
| 214 | 
            -
             | 
| 215 | 
            -
             | 
| 216 | 
            -
             | 
| 217 | 
            -
             | 
| 218 | 
            -
             | 
| 219 | 
            -
             | 
| 220 | 
            -
             | 
| 221 | 
            -
             | 
| 222 | 
            -
             | 
| 223 | 
            -
             | 
| 224 | 
            -
             | 
| 225 | 
            -
             | 
| 226 | 
            -
             | 
| 227 | 
            -
             | 
| 228 | 
            -
             | 
| 229 | 
            -
             | 
| 230 | 
            -
             | 
| 231 | 
            -
             | 
| 232 | 
            -
             | 
| 233 | 
            -
             | 
| 234 | 
            -
             | 
| 235 | 
            -
             | 
| 236 | 
            -
             | 
| 237 | 
            -
             | 
| 238 | 
            -
             | 
| 239 | 
            -
             | 
| 240 | 
            -
            239:                 
         | 
| 241 | 
            -
            240:         <span class="ruby-identifier">include</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Helpers</span>
         | 
| 242 | 
            -
            241:       }      
         | 
| 243 | 
            -
            242:     <span class="ruby-keyword kw">end</span>
         | 
| 132 | 
            +
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line 137</span>
         | 
| 133 | 
            +
            137:     <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Route</span> <span class="ruby-operator">*</span><span class="ruby-identifier">u</span>
         | 
| 134 | 
            +
            138:       <span class="ruby-constant">Class</span>.<span class="ruby-identifier">new</span> {
         | 
| 135 | 
            +
            139:         <span class="ruby-identifier">meta_def</span>(<span class="ruby-identifier">:__urls__</span>){
         | 
| 136 | 
            +
            140:           <span class="ruby-comment cmt"># < Route '/hello/world/([^\/]*)/id(\d*)', '/hello/(.*)'</span>
         | 
| 137 | 
            +
            141:           <span class="ruby-comment cmt"># # => [ {'/hello/world' => '([^\/]*)/id(\d*)', '/hello' => '(.*)'}, 2, <Capcode::Klass> ]</span>
         | 
| 138 | 
            +
            142:           <span class="ruby-identifier">h</span> = {}
         | 
| 139 | 
            +
            143:           <span class="ruby-identifier">max</span> = <span class="ruby-value">0</span>
         | 
| 140 | 
            +
            144:           <span class="ruby-identifier">u</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">_u</span><span class="ruby-operator">|</span>
         | 
| 141 | 
            +
            145:             <span class="ruby-identifier">m</span> = <span class="ruby-regexp re">/\/([^\/]*\(.*)/</span>.<span class="ruby-identifier">match</span>( <span class="ruby-identifier">_u</span> )
         | 
| 142 | 
            +
            146:             <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">nil?</span>
         | 
| 143 | 
            +
            147:               <span class="ruby-identifier">raise</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">RouteError</span>, <span class="ruby-node">"Route `#{_u}' already defined with regexp `#{h[_u]}' !"</span>, <span class="ruby-identifier">caller</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">_u</span>)
         | 
| 144 | 
            +
            148:               <span class="ruby-identifier">h</span>[<span class="ruby-identifier">_u</span>] = <span class="ruby-value str">''</span>
         | 
| 145 | 
            +
            149:             <span class="ruby-keyword kw">else</span>
         | 
| 146 | 
            +
            150:               <span class="ruby-identifier">_pre</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">pre_match</span>
         | 
| 147 | 
            +
            151:               <span class="ruby-identifier">_pre</span> = <span class="ruby-value str">"/"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">_pre</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
         | 
| 148 | 
            +
            152:               <span class="ruby-identifier">raise</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">RouteError</span>, <span class="ruby-node">"Route `#{_pre}' already defined with regexp `#{h[_pre]}' !"</span>, <span class="ruby-identifier">caller</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">_pre</span>)
         | 
| 149 | 
            +
            153:               <span class="ruby-identifier">h</span>[<span class="ruby-identifier">_pre</span>] = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-value">0</span>]
         | 
| 150 | 
            +
            154:               <span class="ruby-identifier">max</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">m</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-value">0</span>]).<span class="ruby-identifier">number_of_captures</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator"><</span> <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">m</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-value">0</span>]).<span class="ruby-identifier">number_of_captures</span>
         | 
| 151 | 
            +
            155:             <span class="ruby-keyword kw">end</span>
         | 
| 152 | 
            +
            156:           <span class="ruby-keyword kw">end</span>
         | 
| 153 | 
            +
            157:           [<span class="ruby-identifier">h</span>, <span class="ruby-identifier">max</span>, <span class="ruby-keyword kw">self</span>]
         | 
| 154 | 
            +
            158:         }
         | 
| 155 | 
            +
            159: 
         | 
| 156 | 
            +
            160:         <span class="ruby-comment cmt"># Hash containing all the request parameters (GET or POST)</span>
         | 
| 157 | 
            +
            161:         <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">params</span>
         | 
| 158 | 
            +
            162:           <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">params</span>
         | 
| 159 | 
            +
            163:         <span class="ruby-keyword kw">end</span>
         | 
| 160 | 
            +
            164:         
         | 
| 161 | 
            +
            165:         <span class="ruby-comment cmt"># Hash containing all the environment variables</span>
         | 
| 162 | 
            +
            166:         <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">env</span>
         | 
| 163 | 
            +
            167:           <span class="ruby-ivar">@env</span>
         | 
| 164 | 
            +
            168:         <span class="ruby-keyword kw">end</span>
         | 
| 165 | 
            +
            169:         
         | 
| 166 | 
            +
            170:         <span class="ruby-comment cmt"># Hash session</span>
         | 
| 167 | 
            +
            171:         <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">session</span>
         | 
| 168 | 
            +
            172:           <span class="ruby-ivar">@env</span>[<span class="ruby-value str">'rack.session'</span>]
         | 
| 169 | 
            +
            173:         <span class="ruby-keyword kw">end</span>
         | 
| 170 | 
            +
            174:         
         | 
| 171 | 
            +
            175:         <span class="ruby-comment cmt"># Return the Rack::Request object</span>
         | 
| 172 | 
            +
            176:         <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request</span>
         | 
| 173 | 
            +
            177:           <span class="ruby-ivar">@request</span>
         | 
| 174 | 
            +
            178:         <span class="ruby-keyword kw">end</span>
         | 
| 175 | 
            +
            179:         
         | 
| 176 | 
            +
            180:         <span class="ruby-comment cmt"># Return the Rack::Response object</span>
         | 
| 177 | 
            +
            181:         <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">response</span>
         | 
| 178 | 
            +
            182:           <span class="ruby-ivar">@response</span>
         | 
| 179 | 
            +
            183:         <span class="ruby-keyword kw">end</span>
         | 
| 180 | 
            +
            184:         
         | 
| 181 | 
            +
            185:         <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">call</span>( <span class="ruby-identifier">e</span> ) <span class="ruby-comment cmt">#:nodoc:</span>
         | 
| 182 | 
            +
            186:           <span class="ruby-ivar">@env</span> = <span class="ruby-identifier">e</span>
         | 
| 183 | 
            +
            187:           <span class="ruby-ivar">@response</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Response</span>.<span class="ruby-identifier">new</span>
         | 
| 184 | 
            +
            188:           <span class="ruby-ivar">@request</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Request</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@env</span>)
         | 
| 185 | 
            +
            189: 
         | 
| 186 | 
            +
            190:           <span class="ruby-identifier">r</span> = <span class="ruby-keyword kw">case</span> <span class="ruby-ivar">@env</span>[<span class="ruby-value str">"REQUEST_METHOD"</span>]
         | 
| 187 | 
            +
            191:             <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"GET"</span>
         | 
| 188 | 
            +
            192:               <span class="ruby-identifier">finalPath</span> = <span class="ruby-keyword kw">nil</span>
         | 
| 189 | 
            +
            193:               <span class="ruby-identifier">finalArgs</span> = <span class="ruby-keyword kw">nil</span>
         | 
| 190 | 
            +
            194:               <span class="ruby-identifier">finalNArgs</span> = <span class="ruby-keyword kw">nil</span>
         | 
| 191 | 
            +
            195:               
         | 
| 192 | 
            +
            196:               <span class="ruby-identifier">aPath</span> = <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">path</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-value str">"/"</span> )
         | 
| 193 | 
            +
            197:               <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</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">p</span>, <span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
         | 
| 194 | 
            +
            198:                 <span class="ruby-identifier">xPath</span> = <span class="ruby-identifier">p</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-value str">"/"</span> )
         | 
| 195 | 
            +
            199:                 <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">xPath</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">aPath</span>).<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
         | 
| 196 | 
            +
            200:                   <span class="ruby-identifier">diffArgs</span> = <span class="ruby-identifier">aPath</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">xPath</span>
         | 
| 197 | 
            +
            201:                   <span class="ruby-identifier">diffNArgs</span> = <span class="ruby-identifier">diffArgs</span>.<span class="ruby-identifier">size</span>
         | 
| 198 | 
            +
            202:                   <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">finalNArgs</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">finalNArgs</span> <span class="ruby-operator">></span> <span class="ruby-identifier">diffNArgs</span>
         | 
| 199 | 
            +
            203:                     <span class="ruby-identifier">finalPath</span> = <span class="ruby-identifier">p</span>
         | 
| 200 | 
            +
            204:                     <span class="ruby-identifier">finalNArgs</span> = <span class="ruby-identifier">diffNArgs</span>
         | 
| 201 | 
            +
            205:                     <span class="ruby-identifier">finalArgs</span> = <span class="ruby-identifier">diffArgs</span>
         | 
| 202 | 
            +
            206:                   <span class="ruby-keyword kw">end</span>
         | 
| 203 | 
            +
            207:                 <span class="ruby-keyword kw">end</span>
         | 
| 204 | 
            +
            208:                 
         | 
| 205 | 
            +
            209:               <span class="ruby-keyword kw">end</span>
         | 
| 206 | 
            +
            210: 
         | 
| 207 | 
            +
            211:               <span class="ruby-identifier">nargs</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">__urls__</span>[<span class="ruby-value">1</span>]
         | 
| 208 | 
            +
            212:               <span class="ruby-identifier">regexp</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>( <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">__urls__</span>[<span class="ruby-value">0</span>][<span class="ruby-identifier">finalPath</span>] )
         | 
| 209 | 
            +
            213:               
         | 
| 210 | 
            +
            214:               <span class="ruby-identifier">args</span> = <span class="ruby-identifier">regexp</span>.<span class="ruby-identifier">match</span>( <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Utils</span>.<span class="ruby-identifier">unescape</span>(<span class="ruby-ivar">@request</span>.<span class="ruby-identifier">path</span>).<span class="ruby-identifier">gsub</span>( <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>( <span class="ruby-node">"^#{finalPath}"</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> ) )
         | 
| 211 | 
            +
            215:               <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">nil?</span>
         | 
| 212 | 
            +
            216:                 <span class="ruby-identifier">raise</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">ParameterError</span>, <span class="ruby-node">"Path info `#{@request.path_info}' does not match route regexp `#{regexp.source}'"</span>
         | 
| 213 | 
            +
            217:               <span class="ruby-keyword kw">else</span>
         | 
| 214 | 
            +
            218:                 <span class="ruby-identifier">args</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">captures</span>
         | 
| 215 | 
            +
            219:               <span class="ruby-keyword kw">end</span>
         | 
| 216 | 
            +
            220:               
         | 
| 217 | 
            +
            221:               <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">nargs</span>
         | 
| 218 | 
            +
            222:                 <span class="ruby-identifier">args</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">nil</span>
         | 
| 219 | 
            +
            223:               <span class="ruby-keyword kw">end</span>
         | 
| 220 | 
            +
            224:                                           
         | 
| 221 | 
            +
            225:               <span class="ruby-identifier">get</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">args</span> )
         | 
| 222 | 
            +
            226:             <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"POST"</span>
         | 
| 223 | 
            +
            227:               <span class="ruby-identifier">post</span>
         | 
| 224 | 
            +
            228:           <span class="ruby-keyword kw">end</span>
         | 
| 225 | 
            +
            229:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:to_ary</span>)
         | 
| 226 | 
            +
            230:             <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">r</span>[<span class="ruby-value">0</span>]
         | 
| 227 | 
            +
            231:             <span class="ruby-identifier">r</span>[<span class="ruby-value">1</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>
         | 
| 228 | 
            +
            232:               <span class="ruby-ivar">@response</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
         | 
| 229 | 
            +
            233:             <span class="ruby-keyword kw">end</span>
         | 
| 230 | 
            +
            234:             <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">body</span> = <span class="ruby-identifier">r</span>[<span class="ruby-value">2</span>]
         | 
| 231 | 
            +
            235:           <span class="ruby-keyword kw">else</span>
         | 
| 232 | 
            +
            236:             <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">r</span>
         | 
| 233 | 
            +
            237:           <span class="ruby-keyword kw">end</span>
         | 
| 234 | 
            +
            238:           
         | 
| 235 | 
            +
            239:           <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">finish</span>
         | 
| 236 | 
            +
            240:         <span class="ruby-keyword kw">end</span>
         | 
| 237 | 
            +
            241:                 
         | 
| 238 | 
            +
            242:         <span class="ruby-identifier">include</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Helpers</span>
         | 
| 239 | 
            +
            243:         <span class="ruby-identifier">include</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Views</span>
         | 
| 240 | 
            +
            244:       }      
         | 
| 241 | 
            +
            245:     <span class="ruby-keyword kw">end</span>
         | 
| 244 242 | 
             
            </pre>
         | 
| 245 243 | 
             
              </div>
         | 
| 246 244 | 
             
            </div>
         | 
| @@ -255,10 +253,10 @@ Hash containing all the environment variables | |
| 255 253 | 
             
              <p class="source-link">[ <a href="javascript:toggleSource('M000003_source')" id="l_M000003_source">show source</a> ]</p>
         | 
| 256 254 | 
             
              <div id="M000003_source" class="dyn-source">
         | 
| 257 255 | 
             
            <pre>
         | 
| 258 | 
            -
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line  | 
| 259 | 
            -
             | 
| 260 | 
            -
             | 
| 261 | 
            -
             | 
| 256 | 
            +
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line 166</span>
         | 
| 257 | 
            +
            166:         <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">env</span>
         | 
| 258 | 
            +
            167:           <span class="ruby-ivar">@env</span>
         | 
| 259 | 
            +
            168:         <span class="ruby-keyword kw">end</span>
         | 
| 262 260 | 
             
            </pre>
         | 
| 263 261 | 
             
              </div>
         | 
| 264 262 | 
             
            </div>
         | 
| @@ -279,10 +277,10 @@ Rack or What you want Helper | |
| 279 277 | 
             
              <p class="source-link">[ <a href="javascript:toggleSource('M000007_source')" id="l_M000007_source">show source</a> ]</p>
         | 
| 280 278 | 
             
              <div id="M000007_source" class="dyn-source">
         | 
| 281 279 | 
             
            <pre>
         | 
| 282 | 
            -
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line  | 
| 283 | 
            -
             | 
| 284 | 
            -
             | 
| 285 | 
            -
             | 
| 280 | 
            +
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line 252</span>
         | 
| 281 | 
            +
            252:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">map</span>( <span class="ruby-identifier">r</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">b</span> )
         | 
| 282 | 
            +
            253:       <span class="ruby-ivar">@@__ROUTES</span>[<span class="ruby-identifier">r</span>] = <span class="ruby-keyword kw">yield</span>
         | 
| 283 | 
            +
            254:     <span class="ruby-keyword kw">end</span>
         | 
| 286 284 | 
             
            </pre>
         | 
| 287 285 | 
             
              </div>
         | 
| 288 286 | 
             
            </div>
         | 
| @@ -298,10 +296,10 @@ parameters (GET or POST) | |
| 298 296 | 
             
              <p class="source-link">[ <a href="javascript:toggleSource('M000002_source')" id="l_M000002_source">show source</a> ]</p>
         | 
| 299 297 | 
             
              <div id="M000002_source" class="dyn-source">
         | 
| 300 298 | 
             
            <pre>
         | 
| 301 | 
            -
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line  | 
| 302 | 
            -
             | 
| 303 | 
            -
             | 
| 304 | 
            -
             | 
| 299 | 
            +
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line 161</span>
         | 
| 300 | 
            +
            161:         <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">params</span>
         | 
| 301 | 
            +
            162:           <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">params</span>
         | 
| 302 | 
            +
            163:         <span class="ruby-keyword kw">end</span>
         | 
| 305 303 | 
             
            </pre>
         | 
| 306 304 | 
             
              </div>
         | 
| 307 305 | 
             
            </div>
         | 
| @@ -316,10 +314,10 @@ Return the Rack::Request object | |
| 316 314 | 
             
              <p class="source-link">[ <a href="javascript:toggleSource('M000005_source')" id="l_M000005_source">show source</a> ]</p>
         | 
| 317 315 | 
             
              <div id="M000005_source" class="dyn-source">
         | 
| 318 316 | 
             
            <pre>
         | 
| 319 | 
            -
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line  | 
| 320 | 
            -
             | 
| 321 | 
            -
             | 
| 322 | 
            -
             | 
| 317 | 
            +
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line 176</span>
         | 
| 318 | 
            +
            176:         <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request</span>
         | 
| 319 | 
            +
            177:           <span class="ruby-ivar">@request</span>
         | 
| 320 | 
            +
            178:         <span class="ruby-keyword kw">end</span>
         | 
| 323 321 | 
             
            </pre>
         | 
| 324 322 | 
             
              </div>
         | 
| 325 323 | 
             
            </div>
         | 
| @@ -334,10 +332,10 @@ Return the Rack::Response object | |
| 334 332 | 
             
              <p class="source-link">[ <a href="javascript:toggleSource('M000006_source')" id="l_M000006_source">show source</a> ]</p>
         | 
| 335 333 | 
             
              <div id="M000006_source" class="dyn-source">
         | 
| 336 334 | 
             
            <pre>
         | 
| 337 | 
            -
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line  | 
| 338 | 
            -
             | 
| 339 | 
            -
             | 
| 340 | 
            -
             | 
| 335 | 
            +
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line 181</span>
         | 
| 336 | 
            +
            181:         <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">response</span>
         | 
| 337 | 
            +
            182:           <span class="ruby-ivar">@response</span>
         | 
| 338 | 
            +
            183:         <span class="ruby-keyword kw">end</span>
         | 
| 341 339 | 
             
            </pre>
         | 
| 342 340 | 
             
              </div>
         | 
| 343 341 | 
             
            </div>
         | 
| @@ -372,6 +370,9 @@ See Rack::Session for more informations | |
| 372 370 | 
             
            </li>
         | 
| 373 371 | 
             
            <li><tt>:daemonize</tt> = Daemonize application (default: false)
         | 
| 374 372 |  | 
| 373 | 
            +
            </li>
         | 
| 374 | 
            +
            <li><tt>:db_config</tt> = database configuration file (default: database.yml)
         | 
| 375 | 
            +
             | 
| 375 376 | 
             
            </li>
         | 
| 376 377 | 
             
            </ul>
         | 
| 377 378 |  | 
| @@ -379,91 +380,91 @@ See Rack::Session for more informations | |
| 379 380 | 
             
              <p class="source-link">[ <a href="javascript:toggleSource('M000008_source')" id="l_M000008_source">show source</a> ]</p>
         | 
| 380 381 | 
             
              <div id="M000008_source" class="dyn-source">
         | 
| 381 382 | 
             
            <pre>
         | 
| 382 | 
            -
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line  | 
| 383 | 
            -
             | 
| 384 | 
            -
             | 
| 385 | 
            -
             | 
| 386 | 
            -
             | 
| 387 | 
            -
             | 
| 388 | 
            -
             | 
| 389 | 
            -
             | 
| 390 | 
            -
             | 
| 391 | 
            -
             | 
| 392 | 
            -
             | 
| 393 | 
            -
             | 
| 394 | 
            -
             | 
| 395 | 
            -
             | 
| 396 | 
            -
             | 
| 397 | 
            -
             | 
| 398 | 
            -
             | 
| 399 | 
            -
             | 
| 400 | 
            -
             | 
| 401 | 
            -
             | 
| 402 | 
            -
             | 
| 403 | 
            -
             | 
| 404 | 
            -
             | 
| 405 | 
            -
             | 
| 406 | 
            -
             | 
| 407 | 
            -
             | 
| 408 | 
            -
             | 
| 409 | 
            -
             | 
| 410 | 
            -
             | 
| 411 | 
            -
             | 
| 412 | 
            -
             | 
| 413 | 
            -
             | 
| 414 | 
            -
             | 
| 415 | 
            -
             | 
| 416 | 
            -
             | 
| 417 | 
            -
             | 
| 418 | 
            -
             | 
| 419 | 
            -
             | 
| 420 | 
            -
             | 
| 421 | 
            -
             | 
| 422 | 
            -
             | 
| 423 | 
            -
             | 
| 424 | 
            -
             | 
| 425 | 
            -
             | 
| 426 | 
            -
             | 
| 427 | 
            -
             | 
| 428 | 
            -
             | 
| 429 | 
            -
             | 
| 430 | 
            -
             | 
| 431 | 
            -
             | 
| 432 | 
            -
             | 
| 433 | 
            -
             | 
| 434 | 
            -
             | 
| 435 | 
            -
             | 
| 436 | 
            -
             | 
| 437 | 
            -
             | 
| 438 | 
            -
             | 
| 439 | 
            -
             | 
| 440 | 
            -
             | 
| 441 | 
            -
             | 
| 442 | 
            -
             | 
| 443 | 
            -
             | 
| 444 | 
            -
             | 
| 445 | 
            -
             | 
| 446 | 
            -
             | 
| 447 | 
            -
             | 
| 448 | 
            -
             | 
| 449 | 
            -
             | 
| 450 | 
            -
             | 
| 451 | 
            -
             | 
| 452 | 
            -
             | 
| 453 | 
            -
             | 
| 454 | 
            -
             | 
| 455 | 
            -
             | 
| 456 | 
            -
             | 
| 457 | 
            -
             | 
| 458 | 
            -
             | 
| 459 | 
            -
             | 
| 460 | 
            -
             | 
| 461 | 
            -
             | 
| 462 | 
            -
             | 
| 463 | 
            -
             | 
| 464 | 
            -
             | 
| 465 | 
            -
             | 
| 466 | 
            -
             | 
| 383 | 
            +
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line 267</span>
         | 
| 384 | 
            +
            267:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run</span>( <span class="ruby-identifier">args</span> = {} )
         | 
| 385 | 
            +
            268:       <span class="ruby-identifier">conf</span> = {
         | 
| 386 | 
            +
            269:         <span class="ruby-identifier">:port</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:port</span>]<span class="ruby-operator">||</span><span class="ruby-value">3000</span>, 
         | 
| 387 | 
            +
            270:         <span class="ruby-identifier">:host</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:host</span>]<span class="ruby-operator">||</span><span class="ruby-value str">"localhost"</span>,
         | 
| 388 | 
            +
            271:         <span class="ruby-identifier">:server</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:server</span>]<span class="ruby-operator">||</span><span class="ruby-keyword kw">nil</span>,
         | 
| 389 | 
            +
            272:         <span class="ruby-identifier">:log</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:log</span>]<span class="ruby-operator">||</span><span class="ruby-identifier">$stdout</span>,
         | 
| 390 | 
            +
            273:         <span class="ruby-identifier">:session</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:session</span>]<span class="ruby-operator">||</span>{},
         | 
| 391 | 
            +
            274:         <span class="ruby-identifier">:pid</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:pid</span>]<span class="ruby-operator">||</span><span class="ruby-node">"#{$0}.pid"</span>,
         | 
| 392 | 
            +
            275:         <span class="ruby-identifier">:daemonize</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:daemonize</span>]<span class="ruby-operator">||</span><span class="ruby-keyword kw">false</span>,
         | 
| 393 | 
            +
            276:         <span class="ruby-identifier">:db_config</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:db_config</span>]<span class="ruby-operator">||</span><span class="ruby-value str">"database.yml"</span>
         | 
| 394 | 
            +
            277:       }
         | 
| 395 | 
            +
            278:       
         | 
| 396 | 
            +
            279:       <span class="ruby-comment cmt"># Check that mongrel exists </span>
         | 
| 397 | 
            +
            280:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:server</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:server</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">"mongrel"</span>
         | 
| 398 | 
            +
            281:         <span class="ruby-keyword kw">begin</span>
         | 
| 399 | 
            +
            282:           <span class="ruby-identifier">require</span> <span class="ruby-value str">'mongrel'</span>
         | 
| 400 | 
            +
            283:           <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:server</span>] = <span class="ruby-value str">"mongrel"</span>
         | 
| 401 | 
            +
            284:         <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">LoadError</span> 
         | 
| 402 | 
            +
            285:           <span class="ruby-identifier">puts</span> <span class="ruby-value str">"!! could not load mongrel. Falling back to webrick."</span>
         | 
| 403 | 
            +
            286:           <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:server</span>] = <span class="ruby-value str">"webrick"</span>
         | 
| 404 | 
            +
            287:         <span class="ruby-keyword kw">end</span>
         | 
| 405 | 
            +
            288:       <span class="ruby-keyword kw">end</span>
         | 
| 406 | 
            +
            289:           
         | 
| 407 | 
            +
            290:       <span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">constants</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-operator">|</span>
         | 
| 408 | 
            +
            291:         <span class="ruby-keyword kw">begin</span>
         | 
| 409 | 
            +
            292:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">eval</span> <span class="ruby-node">"Capcode::#{k}.public_methods(true).include?( '__urls__' )"</span>
         | 
| 410 | 
            +
            293:             <span class="ruby-identifier">u</span>, <span class="ruby-identifier">m</span>, <span class="ruby-identifier">c</span> = <span class="ruby-identifier">eval</span> <span class="ruby-node">"Capcode::#{k}.__urls__"</span>
         | 
| 411 | 
            +
            294:             <span class="ruby-identifier">u</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">_u</span><span class="ruby-operator">|</span>
         | 
| 412 | 
            +
            295:               <span class="ruby-identifier">raise</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">RouteError</span>, <span class="ruby-node">"Route `#{_u}' already define !"</span>, <span class="ruby-identifier">caller</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@@__ROUTES</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">_u</span>)
         | 
| 413 | 
            +
            296:               <span class="ruby-ivar">@@__ROUTES</span>[<span class="ruby-identifier">_u</span>] = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">new</span>
         | 
| 414 | 
            +
            297:             <span class="ruby-keyword kw">end</span>
         | 
| 415 | 
            +
            298:           <span class="ruby-keyword kw">end</span>
         | 
| 416 | 
            +
            299:         <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
         | 
| 417 | 
            +
            300:           <span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>
         | 
| 418 | 
            +
            301:         <span class="ruby-keyword kw">end</span>
         | 
| 419 | 
            +
            302:       <span class="ruby-keyword kw">end</span>
         | 
| 420 | 
            +
            303:       
         | 
| 421 | 
            +
            304:       <span class="ruby-identifier">app</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">URLMap</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@@__ROUTES</span>)
         | 
| 422 | 
            +
            305:       <span class="ruby-identifier">app</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Session</span><span class="ruby-operator">::</span><span class="ruby-constant">Cookie</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">app</span>, <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:session</span>] )
         | 
| 423 | 
            +
            306:       <span class="ruby-identifier">app</span> = <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">app</span>)
         | 
| 424 | 
            +
            307:       <span class="ruby-identifier">app</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">ContentLength</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">app</span>)
         | 
| 425 | 
            +
            308:       <span class="ruby-identifier">app</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Lint</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">app</span>)
         | 
| 426 | 
            +
            309:       <span class="ruby-identifier">app</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">ShowExceptions</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">app</span>)
         | 
| 427 | 
            +
            310: <span class="ruby-comment cmt">#      app = Rack::Reloader.new(app) ## -- NE RELOAD QUE capcode.rb -- So !!!</span>
         | 
| 428 | 
            +
            311:       <span class="ruby-identifier">app</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">CommonLogger</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">app</span>, <span class="ruby-constant">Logger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:log</span>]) )
         | 
| 429 | 
            +
            312:       
         | 
| 430 | 
            +
            313:       <span class="ruby-comment cmt"># From rackup !!!</span>
         | 
| 431 | 
            +
            314:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:daemonize</span>]
         | 
| 432 | 
            +
            315:         <span class="ruby-keyword kw">if</span> <span class="ruby-constant">RUBY_VERSION</span> <span class="ruby-operator"><</span> <span class="ruby-value str">"1.9"</span>
         | 
| 433 | 
            +
            316:           <span class="ruby-identifier">exit</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fork</span>
         | 
| 434 | 
            +
            317:           <span class="ruby-constant">Process</span>.<span class="ruby-identifier">setsid</span>
         | 
| 435 | 
            +
            318:           <span class="ruby-identifier">exit</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fork</span>
         | 
| 436 | 
            +
            319:           <span class="ruby-comment cmt"># Dir.chdir "/"</span>
         | 
| 437 | 
            +
            320:           <span class="ruby-constant">File</span>.<span class="ruby-identifier">umask</span> <span class="ruby-value">0000</span>
         | 
| 438 | 
            +
            321:           <span class="ruby-constant">STDIN</span>.<span class="ruby-identifier">reopen</span> <span class="ruby-value str">"/dev/null"</span>
         | 
| 439 | 
            +
            322:           <span class="ruby-constant">STDOUT</span>.<span class="ruby-identifier">reopen</span> <span class="ruby-value str">"/dev/null"</span>, <span class="ruby-value str">"a"</span>
         | 
| 440 | 
            +
            323:           <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">reopen</span> <span class="ruby-value str">"/dev/null"</span>, <span class="ruby-value str">"a"</span>
         | 
| 441 | 
            +
            324:         <span class="ruby-keyword kw">else</span>
         | 
| 442 | 
            +
            325:           <span class="ruby-constant">Process</span>.<span class="ruby-identifier">daemon</span>
         | 
| 443 | 
            +
            326:         <span class="ruby-keyword kw">end</span>
         | 
| 444 | 
            +
            327: 
         | 
| 445 | 
            +
            328:         <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:pid</span>], <span class="ruby-value str">'w'</span>){ <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">write</span>(<span class="ruby-node">"#{Process.pid}"</span>) }
         | 
| 446 | 
            +
            329:         <span class="ruby-identifier">at_exit</span> { <span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:pid</span>]) <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:pid</span>]) }
         | 
| 447 | 
            +
            330:       <span class="ruby-keyword kw">end</span>
         | 
| 448 | 
            +
            331:       
         | 
| 449 | 
            +
            332:       <span class="ruby-comment cmt"># Start database</span>
         | 
| 450 | 
            +
            333:       <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">methods</span>.<span class="ruby-identifier">include?</span> <span class="ruby-value str">"db_connect"</span>
         | 
| 451 | 
            +
            334:         <span class="ruby-identifier">db_connect</span>( <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:db_config</span>], <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:log</span>] )
         | 
| 452 | 
            +
            335:       <span class="ruby-keyword kw">end</span>
         | 
| 453 | 
            +
            336:       
         | 
| 454 | 
            +
            337:       <span class="ruby-comment cmt"># Start server</span>
         | 
| 455 | 
            +
            338:       <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:server</span>]
         | 
| 456 | 
            +
            339:       <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"mongrel"</span>
         | 
| 457 | 
            +
            340:         <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting Mongrel on #{conf[:host]}:#{conf[:port]}"</span>
         | 
| 458 | 
            +
            341:         <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Handler</span><span class="ruby-operator">::</span><span class="ruby-constant">Mongrel</span>.<span class="ruby-identifier">run</span>( <span class="ruby-identifier">app</span>, {<span class="ruby-identifier">:Port</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:port</span>], <span class="ruby-identifier">:Host</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:host</span>]} ) { <span class="ruby-operator">|</span><span class="ruby-identifier">server</span><span class="ruby-operator">|</span>
         | 
| 459 | 
            +
            342:           <span class="ruby-identifier">trap</span> <span class="ruby-value str">"SIGINT"</span>, <span class="ruby-identifier">proc</span> { <span class="ruby-identifier">server</span>.<span class="ruby-identifier">stop</span> }
         | 
| 460 | 
            +
            343:         }
         | 
| 461 | 
            +
            344:       <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"webrick"</span>
         | 
| 462 | 
            +
            345:         <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting WEBrick on #{conf[:host]}:#{conf[:port]}"</span>
         | 
| 463 | 
            +
            346:         <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Handler</span><span class="ruby-operator">::</span><span class="ruby-constant">WEBrick</span>.<span class="ruby-identifier">run</span>( <span class="ruby-identifier">app</span>, {<span class="ruby-identifier">:Port</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:port</span>], <span class="ruby-identifier">:BindAddress</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:host</span>]} ) { <span class="ruby-operator">|</span><span class="ruby-identifier">server</span><span class="ruby-operator">|</span>
         | 
| 464 | 
            +
            347:           <span class="ruby-identifier">trap</span> <span class="ruby-value str">"SIGINT"</span>, <span class="ruby-identifier">proc</span> { <span class="ruby-identifier">server</span>.<span class="ruby-identifier">shutdown</span> }
         | 
| 465 | 
            +
            348:         }
         | 
| 466 | 
            +
            349:       <span class="ruby-keyword kw">end</span>
         | 
| 467 | 
            +
            350:     <span class="ruby-keyword kw">end</span>
         | 
| 467 468 | 
             
            </pre>
         | 
| 468 469 | 
             
              </div>
         | 
| 469 470 | 
             
            </div>
         | 
| @@ -478,10 +479,10 @@ Hash <a href="Capcode.html#M000004">session</a> | |
| 478 479 | 
             
              <p class="source-link">[ <a href="javascript:toggleSource('M000004_source')" id="l_M000004_source">show source</a> ]</p>
         | 
| 479 480 | 
             
              <div id="M000004_source" class="dyn-source">
         | 
| 480 481 | 
             
            <pre>
         | 
| 481 | 
            -
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line  | 
| 482 | 
            -
             | 
| 483 | 
            -
             | 
| 484 | 
            -
             | 
| 482 | 
            +
                 <span class="ruby-comment cmt"># File lib/capcode.rb, line 171</span>
         | 
| 483 | 
            +
            171:         <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">session</span>
         | 
| 484 | 
            +
            172:           <span class="ruby-ivar">@env</span>[<span class="ruby-value str">'rack.session'</span>]
         | 
| 485 | 
            +
            173:         <span class="ruby-keyword kw">end</span>
         | 
| 485 486 | 
             
            </pre>
         | 
| 486 487 | 
             
              </div>
         | 
| 487 488 | 
             
            </div>
         |