Capcode 0.8.9 → 0.9.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.rdoc +13 -1
- data/doc/rdoc/classes/Capcode.html +410 -545
- data/doc/rdoc/classes/Capcode/Configuration.html +263 -0
- data/doc/rdoc/classes/Capcode/Helpers.html +154 -345
- data/doc/rdoc/classes/Capcode/Helpers/Authorization.html +6 -6
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/README_rdoc.html +42 -2
- data/doc/rdoc/files/lib/capcode/configuration_rb.html +1 -1
- data/doc/rdoc/files/lib/capcode/render/text_rb.html +1 -1
- data/doc/rdoc/files/lib/capcode_rb.html +14 -1
- data/doc/rdoc/fr_class_index.html +1 -1
- data/doc/rdoc/fr_file_index.html +0 -13
- data/doc/rdoc/fr_method_index.html +12 -14
- data/examples/render-image.rb +1 -1
- data/examples/render-text.rb +4 -1
- data/examples/rest.rb +1 -0
- data/examples/sample.rb +5 -3
- data/examples/upload.rb +1 -0
- data/lib/capcode.rb +45 -61
- data/lib/capcode/configuration.rb +69 -34
- data/lib/capcode/render/text.rb +1 -1
- data/lib/capcode/version.rb +1 -1
- metadata +31 -106
- data/doc/rdoc/classes/Capcode/Mab.html +0 -118
- data/doc/rdoc/files/lib/capcode/render/binary_rb.html +0 -101
- data/doc/rdoc/files/lib/capcode/render/email_rb.html +0 -108
- data/doc/rdoc/files/lib/capcode/render/erb_rb.html +0 -108
- data/doc/rdoc/files/lib/capcode/render/haml_rb.html +0 -108
- data/doc/rdoc/files/lib/capcode/render/json_rb.html +0 -108
- data/doc/rdoc/files/lib/capcode/render/markaby_rb.html +0 -108
- data/doc/rdoc/files/lib/capcode/render/mustache_rb.html +0 -108
- data/doc/rdoc/files/lib/capcode/render/none_rb.html +0 -101
- data/doc/rdoc/files/lib/capcode/render/redirect_rb.html +0 -101
- data/doc/rdoc/files/lib/capcode/render/sass_rb.html +0 -108
- data/doc/rdoc/files/lib/capcode/render/static_rb.html +0 -101
- data/doc/rdoc/files/lib/capcode/render/webdav_rb.html +0 -124
- data/doc/rdoc/files/lib/capcode/render/xml_rb.html +0 -101
- data/examples/auth-webdav.rb +0 -29
- data/examples/blog-ar.rb +0 -81
- data/examples/blog-ar.yml +0 -3
- data/examples/blog-couchdb-run.rb +0 -10
- data/examples/blog-couchdb.rb +0 -314
- data/examples/blog-couchdb.ru +0 -12
- data/examples/blog-couchdb.yml +0 -2
- data/examples/blog-dm.rb +0 -63
- data/examples/blog-dm.yml +0 -2
- data/examples/blog-mongodb-run.rb +0 -10
- data/examples/blog-mongodb.rb +0 -304
- data/examples/blog-mongodb.yml +0 -3
- data/examples/blog-sq.rb +0 -82
- data/examples/blog-sq.yml +0 -3
- data/examples/mail/mail_html.rhtml +0 -1
- data/examples/mail/mail_text.rhtml +0 -1
- data/examples/mail/ok.rhtml +0 -1
- data/examples/mail/rubyfr.png +0 -0
- data/examples/mustache/with_class.mustache +0 -8
- data/examples/mustache/without_class.mustache +0 -1
- data/examples/render-binary.rb +0 -46
- data/examples/render-email.rb +0 -68
- data/examples/render-erb.rb +0 -19
- data/examples/render-haml_sass.rb +0 -26
- data/examples/render-json.rb +0 -13
- data/examples/render-markaby.rb +0 -29
- data/examples/render-mustache.rb +0 -30
- data/examples/render-redirect.rb +0 -19
- data/examples/render-static.rb +0 -21
- data/examples/render-static.ru +0 -19
- data/examples/render-use.rb +0 -32
- data/examples/render-webdav.rb +0 -26
- data/examples/render-xml.rb +0 -24
- data/examples/rss.rb +0 -48
- data/examples/static/coderay.css +0 -131
- data/examples/static/index.html +0 -24
- data/examples/test/index.html +0 -1
- data/lib/capcode/base/ar.rb +0 -54
- data/lib/capcode/base/couchdb.rb +0 -23
- data/lib/capcode/base/dm.rb +0 -33
- data/lib/capcode/base/mongodb.rb +0 -27
- data/lib/capcode/base/sq.rb +0 -58
- data/lib/capcode/render/binary.rb +0 -8
- data/lib/capcode/render/email.rb +0 -73
- data/lib/capcode/render/erb.rb +0 -59
- data/lib/capcode/render/haml.rb +0 -60
- data/lib/capcode/render/json.rb +0 -14
- data/lib/capcode/render/markaby.rb +0 -38
- data/lib/capcode/render/mustache.rb +0 -37
- data/lib/capcode/render/none.rb +0 -7
- data/lib/capcode/render/redirect.rb +0 -7
- data/lib/capcode/render/sass.rb +0 -48
- data/lib/capcode/render/static.rb +0 -14
- data/lib/capcode/render/webdav.rb +0 -49
- data/lib/capcode/render/xml.rb +0 -119
@@ -111,7 +111,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
111
111
|
<h3 class="section-bar">Methods</h3>
|
112
112
|
|
113
113
|
<div class="name-list">
|
114
|
-
<a href="#
|
114
|
+
<a href="#M000021">http_authentication</a>
|
115
115
|
</div>
|
116
116
|
</div>
|
117
117
|
|
@@ -133,11 +133,11 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
133
133
|
<div id="methods">
|
134
134
|
<h3 class="section-bar">Public Instance methods</h3>
|
135
135
|
|
136
|
-
<div id="method-
|
137
|
-
<a name="
|
136
|
+
<div id="method-M000021" class="method-detail">
|
137
|
+
<a name="M000021"></a>
|
138
138
|
|
139
139
|
<div class="method-heading">
|
140
|
-
<a href="#
|
140
|
+
<a href="#M000021" class="method-signature">
|
141
141
|
<span class="method-name">http_authentication</span><span class="method-args">( opts = {}, &b )</span>
|
142
142
|
</a>
|
143
143
|
</div>
|
@@ -173,8 +173,8 @@ The block must return a Hash of username => password like that :
|
|
173
173
|
}
|
174
174
|
</pre>
|
175
175
|
<p><a class="source-toggle" href="#"
|
176
|
-
onclick="toggleCode('
|
177
|
-
<div class="method-source-code" id="
|
176
|
+
onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
|
177
|
+
<div class="method-source-code" id="M000021-source">
|
178
178
|
<pre>
|
179
179
|
<span class="ruby-comment cmt"># File lib/capcode/helpers/auth.rb, line 105</span>
|
180
180
|
105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">http_authentication</span>( <span class="ruby-identifier">opts</span> = {}, <span class="ruby-operator">&</span><span class="ruby-identifier">b</span> )
|
data/doc/rdoc/created.rid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
Thu, 07 Jan 2010 00:27:00 +0100
|
@@ -56,7 +56,7 @@
|
|
56
56
|
</tr>
|
57
57
|
<tr class="top-aligned-row">
|
58
58
|
<td><strong>Last Update:</strong></td>
|
59
|
-
<td>
|
59
|
+
<td>Thu Jan 07 00:23:27 +0100 2010</td>
|
60
60
|
</tr>
|
61
61
|
</table>
|
62
62
|
</div>
|
@@ -91,6 +91,46 @@ href="http://www.algorithmique.net/capcode">www.algorithmique.net/capcode</a>/
|
|
91
91
|
<a href="../classes/Capcode.html">Capcode</a> is a web microframework
|
92
92
|
</p>
|
93
93
|
<h2>FEATURES/PROBLEMS:</h2>
|
94
|
+
<h3>0.9.0</h3>
|
95
|
+
<ul>
|
96
|
+
<li><b>IMPORTANT</b>
|
97
|
+
|
98
|
+
<ul>
|
99
|
+
<li>THIS VERSION IS A MAJOR ENHANCEMENT : YOU MUST UNINSTALL ALL PREVIOUS
|
100
|
+
VERSIONS !!!
|
101
|
+
|
102
|
+
</li>
|
103
|
+
</ul>
|
104
|
+
<p>
|
105
|
+
gem uninstall Capode —version ’< 0.9.0‘
|
106
|
+
</p>
|
107
|
+
<ul>
|
108
|
+
<li>Renderers and database accessors have been extracted and are now in the <a
|
109
|
+
href="http://github.com/glejeune/Capcode.more">plugins repository</a>. Each
|
110
|
+
plugin is a gem that‘s can be installed separately.
|
111
|
+
|
112
|
+
</li>
|
113
|
+
</ul>
|
114
|
+
</li>
|
115
|
+
<li><b>Important, but less!</b>
|
116
|
+
|
117
|
+
<ul>
|
118
|
+
<li>Add <a href="http://jashkenas.github.com/coffee-script/">Coffee-Script</a>
|
119
|
+
renderer
|
120
|
+
|
121
|
+
</li>
|
122
|
+
<li>Update renderers options
|
123
|
+
|
124
|
+
</li>
|
125
|
+
<li>Rewrite configuration
|
126
|
+
|
127
|
+
</li>
|
128
|
+
<li>Bug corrections in all DB modules
|
129
|
+
|
130
|
+
</li>
|
131
|
+
</ul>
|
132
|
+
</li>
|
133
|
+
</ul>
|
94
134
|
<h3>0.8.9</h3>
|
95
135
|
<ul>
|
96
136
|
<li>Add Thin support
|
@@ -556,7 +596,7 @@ for complete examples.
|
|
556
596
|
# !!! Render file from /Users/greg/temp !!!
|
557
597
|
class WebDav < Route '/temp'
|
558
598
|
def get
|
559
|
-
render :webdav => "/Users/greg"
|
599
|
+
render :webdav => "/Users/greg/temp"
|
560
600
|
end
|
561
601
|
|
562
602
|
def method_missing(id, *a, &b)
|
@@ -56,7 +56,7 @@
|
|
56
56
|
</tr>
|
57
57
|
<tr class="top-aligned-row">
|
58
58
|
<td><strong>Last Update:</strong></td>
|
59
|
-
<td>
|
59
|
+
<td>Tue Jan 05 17:03:42 +0100 2010</td>
|
60
60
|
</tr>
|
61
61
|
</table>
|
62
62
|
</div>
|
@@ -107,6 +107,19 @@ Please read the README.rdoc file !
|
|
107
107
|
|
108
108
|
|
109
109
|
|
110
|
+
<div id="aliases-list">
|
111
|
+
<h3 class="section-bar">External Aliases</h3>
|
112
|
+
|
113
|
+
<div class="name-list">
|
114
|
+
<table summary="aliases">
|
115
|
+
<tr class="top-aligned-row context-row">
|
116
|
+
<td class="context-item-name">"<<"</td>
|
117
|
+
<td>-></td>
|
118
|
+
<td class="context-item-value">write</td>
|
119
|
+
</tr>
|
120
|
+
</table>
|
121
|
+
</div>
|
122
|
+
</div>
|
110
123
|
|
111
124
|
|
112
125
|
|
@@ -22,10 +22,10 @@
|
|
22
22
|
<div id="index-entries">
|
23
23
|
<a href="classes/Capcode.html">Capcode</a><br />
|
24
24
|
<a href="classes/Capcode/Base.html">Capcode::Base</a><br />
|
25
|
+
<a href="classes/Capcode/Configuration.html">Capcode::Configuration</a><br />
|
25
26
|
<a href="classes/Capcode/HTTPError.html">Capcode::HTTPError</a><br />
|
26
27
|
<a href="classes/Capcode/Helpers.html">Capcode::Helpers</a><br />
|
27
28
|
<a href="classes/Capcode/Helpers/Authorization.html">Capcode::Helpers::Authorization</a><br />
|
28
|
-
<a href="classes/Capcode/Mab.html">Capcode::Mab</a><br />
|
29
29
|
<a href="classes/Capcode/Resource.html">Capcode::Resource</a><br />
|
30
30
|
<a href="classes/Capcode/Views.html">Capcode::Views</a><br />
|
31
31
|
</div>
|
data/doc/rdoc/fr_file_index.html
CHANGED
@@ -27,20 +27,7 @@
|
|
27
27
|
<a href="files/lib/capcode/base/db_rb.html">lib/capcode/base/db.rb</a><br />
|
28
28
|
<a href="files/lib/capcode/configuration_rb.html">lib/capcode/configuration.rb</a><br />
|
29
29
|
<a href="files/lib/capcode/helpers/auth_rb.html">lib/capcode/helpers/auth.rb</a><br />
|
30
|
-
<a href="files/lib/capcode/render/binary_rb.html">lib/capcode/render/binary.rb</a><br />
|
31
|
-
<a href="files/lib/capcode/render/email_rb.html">lib/capcode/render/email.rb</a><br />
|
32
|
-
<a href="files/lib/capcode/render/erb_rb.html">lib/capcode/render/erb.rb</a><br />
|
33
|
-
<a href="files/lib/capcode/render/haml_rb.html">lib/capcode/render/haml.rb</a><br />
|
34
|
-
<a href="files/lib/capcode/render/json_rb.html">lib/capcode/render/json.rb</a><br />
|
35
|
-
<a href="files/lib/capcode/render/markaby_rb.html">lib/capcode/render/markaby.rb</a><br />
|
36
|
-
<a href="files/lib/capcode/render/mustache_rb.html">lib/capcode/render/mustache.rb</a><br />
|
37
|
-
<a href="files/lib/capcode/render/none_rb.html">lib/capcode/render/none.rb</a><br />
|
38
|
-
<a href="files/lib/capcode/render/redirect_rb.html">lib/capcode/render/redirect.rb</a><br />
|
39
|
-
<a href="files/lib/capcode/render/sass_rb.html">lib/capcode/render/sass.rb</a><br />
|
40
|
-
<a href="files/lib/capcode/render/static_rb.html">lib/capcode/render/static.rb</a><br />
|
41
30
|
<a href="files/lib/capcode/render/text_rb.html">lib/capcode/render/text.rb</a><br />
|
42
|
-
<a href="files/lib/capcode/render/webdav_rb.html">lib/capcode/render/webdav.rb</a><br />
|
43
|
-
<a href="files/lib/capcode/render/xml_rb.html">lib/capcode/render/xml.rb</a><br />
|
44
31
|
</div>
|
45
32
|
</div>
|
46
33
|
</body>
|
@@ -21,30 +21,28 @@
|
|
21
21
|
<h1 class="section-bar">Methods</h1>
|
22
22
|
<div id="index-entries">
|
23
23
|
<a href="classes/Capcode.html#M000001">Route (Capcode)</a><br />
|
24
|
-
<a href="classes/Capcode/Helpers.html#
|
24
|
+
<a href="classes/Capcode/Helpers.html#M000018">URL (Capcode::Helpers)</a><br />
|
25
25
|
<a href="classes/Capcode.html#M000010">application (Capcode)</a><br />
|
26
|
-
<a href="classes/Capcode/Helpers.html#
|
27
|
-
<a href="classes/Capcode/Helpers.html#
|
28
|
-
<a href="classes/Capcode.html#
|
29
|
-
<a href="classes/Capcode/Helpers.html#M000020">content_for (Capcode::Helpers)</a><br />
|
26
|
+
<a href="classes/Capcode/Helpers.html#M000013">args (Capcode::Helpers)</a><br />
|
27
|
+
<a href="classes/Capcode/Helpers.html#M000014">args= (Capcode::Helpers)</a><br />
|
28
|
+
<a href="classes/Capcode/Helpers.html#M000019">content_for (Capcode::Helpers)</a><br />
|
30
29
|
<a href="classes/Capcode.html#M000003">env (Capcode)</a><br />
|
31
|
-
<a href="classes/Capcode/
|
32
|
-
<a href="classes/Capcode/Helpers.html#M000023">haml_path= (Capcode::Helpers)</a><br />
|
30
|
+
<a href="classes/Capcode/Configuration.html#M000023">get (Capcode::Configuration)</a><br />
|
33
31
|
<a href="classes/Capcode.html#M000009">http_authentication (Capcode)</a><br />
|
34
|
-
<a href="classes/Capcode/Helpers/Authorization.html#
|
35
|
-
<a href="classes/Capcode/Helpers.html#
|
32
|
+
<a href="classes/Capcode/Helpers/Authorization.html#M000021">http_authentication (Capcode::Helpers::Authorization)</a><br />
|
33
|
+
<a href="classes/Capcode/Helpers.html#M000016">json (Capcode::Helpers)</a><br />
|
36
34
|
<a href="classes/Capcode.html#M000007">map (Capcode)</a><br />
|
35
|
+
<a href="classes/Capcode/Configuration.html#M000024">options (Capcode::Configuration)</a><br />
|
37
36
|
<a href="classes/Capcode.html#M000002">params (Capcode)</a><br />
|
38
|
-
<a href="classes/Capcode/Helpers.html#
|
39
|
-
<a href="classes/Capcode/Helpers.html#
|
40
|
-
<a href="classes/Capcode/Helpers.html#M000025">render_webdav (Capcode::Helpers)</a><br />
|
37
|
+
<a href="classes/Capcode/Helpers.html#M000017">redirect (Capcode::Helpers)</a><br />
|
38
|
+
<a href="classes/Capcode/Helpers.html#M000015">render (Capcode::Helpers)</a><br />
|
41
39
|
<a href="classes/Capcode.html#M000005">request (Capcode)</a><br />
|
42
40
|
<a href="classes/Capcode.html#M000006">response (Capcode)</a><br />
|
43
41
|
<a href="classes/Capcode.html#M000011">run (Capcode)</a><br />
|
44
|
-
<a href="classes/Capcode/Helpers.html#M000024">sass_path= (Capcode::Helpers)</a><br />
|
45
42
|
<a href="classes/Capcode.html#M000004">session (Capcode)</a><br />
|
43
|
+
<a href="classes/Capcode/Configuration.html#M000022">set (Capcode::Configuration)</a><br />
|
46
44
|
<a href="classes/Capcode.html#M000012">set (Capcode)</a><br />
|
47
|
-
<a href="classes/Capcode/Helpers.html#
|
45
|
+
<a href="classes/Capcode/Helpers.html#M000020">static (Capcode::Helpers)</a><br />
|
48
46
|
<a href="classes/Capcode.html#M000008">use (Capcode)</a><br />
|
49
47
|
</div>
|
50
48
|
</div>
|
data/examples/render-image.rb
CHANGED
data/examples/render-text.rb
CHANGED
@@ -2,6 +2,9 @@ $:.unshift( "../lib" )
|
|
2
2
|
require 'capcode'
|
3
3
|
|
4
4
|
module Capcode
|
5
|
+
set :server, :webrick
|
6
|
+
set :port, 1111
|
7
|
+
|
5
8
|
class Index < Route '/'
|
6
9
|
def get
|
7
10
|
render "Hello World"
|
@@ -9,4 +12,4 @@ module Capcode
|
|
9
12
|
end
|
10
13
|
end
|
11
14
|
|
12
|
-
Capcode.run( )
|
15
|
+
Capcode.run( :port => 2222 )
|
data/examples/rest.rb
CHANGED
data/examples/sample.rb
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
$:.unshift( "../lib" )
|
2
|
-
require 'rubygems'
|
3
2
|
require 'capcode'
|
3
|
+
require 'rubygems'
|
4
4
|
require 'capcode/render/markaby'
|
5
5
|
require 'capcode/render/haml'
|
6
|
-
Capcode::Helpers.haml_path = "haml"
|
7
6
|
require 'capcode/render/json'
|
8
7
|
require 'capcode/render/erb'
|
9
|
-
Capcode::Helpers.erb_path = "erb"
|
10
8
|
|
11
9
|
module Capcode
|
12
10
|
module Helpers
|
@@ -17,6 +15,9 @@ module Capcode
|
|
17
15
|
end
|
18
16
|
|
19
17
|
module Capcode
|
18
|
+
set :haml, "haml"
|
19
|
+
set :erb, "erb"
|
20
|
+
|
20
21
|
class HTTPError
|
21
22
|
def r404(f)
|
22
23
|
"Pas glop !!! #{f} est inconnu !!!"
|
@@ -63,6 +64,7 @@ module Capcode
|
|
63
64
|
|
64
65
|
class ContentFor < Route '/cf'
|
65
66
|
def get
|
67
|
+
@time = Time.now
|
66
68
|
render( :erb => :cf, :layout => :cf_layout )
|
67
69
|
end
|
68
70
|
end
|
data/examples/upload.rb
CHANGED
data/lib/capcode.rb
CHANGED
@@ -4,6 +4,7 @@ require 'rubygems'
|
|
4
4
|
require 'rack'
|
5
5
|
require 'json' ## DELETE THIS IN 1.0.0
|
6
6
|
require 'logger'
|
7
|
+
Logger.class_eval { alias :write :"<<" } unless Logger.instance_methods.include? "write"
|
7
8
|
require 'optparse'
|
8
9
|
require 'irb'
|
9
10
|
require 'mime/types'
|
@@ -527,30 +528,13 @@ module Capcode
|
|
527
528
|
end
|
528
529
|
end
|
529
530
|
|
530
|
-
def configuration( args = {} ) #:nodoc:
|
531
|
-
{
|
532
|
-
:port => args[:port]||Capcode.get(:port)||3000,
|
533
|
-
:host => args[:host]||Capcode.get(:host)||"0.0.0.0",
|
534
|
-
:server => args[:server]||Capcode.get(:server)||nil,
|
535
|
-
:log => args[:log]||Capcode.get(:log)||$stdout,
|
536
|
-
:session => args[:session]||Capcode.get(:session)||{},
|
537
|
-
:pid => args[:pid]||Capcode.get(:pid)||"#{$0}.pid",
|
538
|
-
:daemonize => args[:daemonize]||Capcode.get(:daemonize)||false,
|
539
|
-
:db_config => File.expand_path(args[:db_config]||Capcode.get(:db_config)||"database.yml"),
|
540
|
-
:root => args[:root]||Capcode.get(:root)||File.expand_path(File.dirname($0)),
|
541
|
-
:static => args[:static]||Capcode.get(:static)||args[:root]||File.expand_path(File.dirname($0)),
|
542
|
-
:verbose => args[:verbose]||Capcode.get(:verbose)||false,
|
543
|
-
:console => false
|
544
|
-
}
|
545
|
-
end
|
546
|
-
|
547
531
|
# Return the Rack App.
|
548
532
|
#
|
549
|
-
# Options : see Capcode.set
|
533
|
+
# Options : see Capcode::Configuration.set
|
550
534
|
#
|
551
535
|
# Options set here replace the ones set globally
|
552
536
|
def application( args = {} )
|
553
|
-
|
537
|
+
Capcode::Configuration.configuration(args)
|
554
538
|
|
555
539
|
Capcode.constants.each do |k|
|
556
540
|
begin
|
@@ -570,21 +554,21 @@ module Capcode
|
|
570
554
|
|
571
555
|
# Set Static directory
|
572
556
|
#@@__STATIC_DIR = (conf[:static][0].chr == "/")?conf[:static]:"/"+conf[:static] unless conf[:static].nil?
|
573
|
-
Capcode.static = (
|
557
|
+
Capcode.static = (Capcode::Configuration.get(:static)[0].chr == "/")?Capcode::Configuration.get(:static):"/"+Capcode::Configuration.get(:static) unless Capcode::Configuration.get(:static).nil?
|
574
558
|
|
575
559
|
# Initialize Rack App
|
576
|
-
puts "** Map routes." if
|
560
|
+
puts "** Map routes." if Capcode::Configuration.get(:verbose)
|
577
561
|
#app = Rack::URLMap.new(@@__ROUTES)
|
578
562
|
app = Rack::URLMap.new(Capcode.routes)
|
579
|
-
puts "** Initialize static directory (#{
|
563
|
+
puts "** Initialize static directory (#{Capcode::Configuration.get(:static)})" if Capcode::Configuration.get(:verbose)
|
580
564
|
app = Rack::Static.new(
|
581
565
|
app,
|
582
566
|
#:urls => [@@__STATIC_DIR],
|
583
567
|
:urls => [Capcode.static],
|
584
|
-
:root => File.expand_path(
|
585
|
-
) unless
|
586
|
-
puts "** Initialize session" if
|
587
|
-
app = Rack::Session::Cookie.new( app,
|
568
|
+
:root => File.expand_path(Capcode::Configuration.get(:root))
|
569
|
+
) unless Capcode::Configuration.get(:static).nil?
|
570
|
+
puts "** Initialize session" if Capcode::Configuration.get(:verbose)
|
571
|
+
app = Rack::Session::Cookie.new( app, Capcode::Configuration.get(:session) )
|
588
572
|
app = Capcode::HTTPError.new(app)
|
589
573
|
app = Rack::ContentLength.new(app)
|
590
574
|
app = Rack::Lint.new(app)
|
@@ -594,7 +578,7 @@ module Capcode
|
|
594
578
|
|
595
579
|
middlewares.each do |mw|
|
596
580
|
middleware, args, block = mw
|
597
|
-
puts "** Load middleware #{middleware}" if
|
581
|
+
puts "** Load middleware #{middleware}" if Capcode::Configuration.get(:verbose)
|
598
582
|
if block
|
599
583
|
app = middleware.new( app, *args, &block )
|
600
584
|
else
|
@@ -604,7 +588,7 @@ module Capcode
|
|
604
588
|
|
605
589
|
# Start database
|
606
590
|
if self.methods.include? "db_connect"
|
607
|
-
db_connect(
|
591
|
+
db_connect( Capcode::Configuration.get(:db_config), Capcode::Configuration.get(:log) )
|
608
592
|
end
|
609
593
|
|
610
594
|
if block_given?
|
@@ -616,11 +600,11 @@ module Capcode
|
|
616
600
|
|
617
601
|
# Start your application.
|
618
602
|
#
|
619
|
-
# Options : see Capcode.set
|
603
|
+
# Options : see Capcode::Configuration.set
|
620
604
|
#
|
621
605
|
# Options set here replace the ones set globally
|
622
606
|
def run( args = {} )
|
623
|
-
|
607
|
+
Capcode::Configuration.configuration(args)
|
624
608
|
|
625
609
|
# Parse options
|
626
610
|
opts = OptionParser.new do |opts|
|
@@ -629,22 +613,22 @@ module Capcode
|
|
629
613
|
opts.separator "Specific options:"
|
630
614
|
|
631
615
|
opts.on( "-C", "--console", "Run in console mode with IRB (default: false)" ) {
|
632
|
-
|
616
|
+
Capcode::Configuration.set :console, true
|
633
617
|
}
|
634
|
-
opts.on( "-h", "--host HOSTNAME", "Host for web server to bind to (default: #{
|
635
|
-
|
618
|
+
opts.on( "-h", "--host HOSTNAME", "Host for web server to bind to (default: #{Capcode::Configuration.get(:host)})" ) { |h|
|
619
|
+
Capcode::Configuration.set :host, h
|
636
620
|
}
|
637
|
-
opts.on( "-p", "--port NUM", "Port for web server (default: #{
|
638
|
-
|
621
|
+
opts.on( "-p", "--port NUM", "Port for web server (default: #{Capcode::Configuration.get(:port)})" ) { |p|
|
622
|
+
Capcode::Configuration.set :port, p
|
639
623
|
}
|
640
|
-
opts.on( "-d", "--daemonize [true|false]", "Daemonize (default: #{
|
641
|
-
|
624
|
+
opts.on( "-d", "--daemonize [true|false]", "Daemonize (default: #{Capcode::Configuration.get(:daemonize)})" ) { |d|
|
625
|
+
Capcode::Configuration.set :daemonize, d
|
642
626
|
}
|
643
|
-
opts.on( "-r", "--root PATH", "Working directory (default: #{
|
644
|
-
|
627
|
+
opts.on( "-r", "--root PATH", "Working directory (default: #{Capcode::Configuration.get(:root)})" ) { |w|
|
628
|
+
Capcode::Configuration.set :root, w
|
645
629
|
}
|
646
|
-
opts.on( "-s", "--static PATH", "Static directory -- relative to the root directory (default: #{
|
647
|
-
|
630
|
+
opts.on( "-s", "--static PATH", "Static directory -- relative to the root directory (default: #{Capcode::Configuration.get(:static)})" ) { |r|
|
631
|
+
Capcode::Configuration.set :static, r
|
648
632
|
}
|
649
633
|
|
650
634
|
opts.separator ""
|
@@ -659,7 +643,7 @@ module Capcode
|
|
659
643
|
exit
|
660
644
|
end
|
661
645
|
opts.on_tail( "-V", "--verbose", "Run in verbose mode" ) do
|
662
|
-
|
646
|
+
Capcode::Configuration.set :verbose, true
|
663
647
|
end
|
664
648
|
end
|
665
649
|
|
@@ -672,22 +656,22 @@ module Capcode
|
|
672
656
|
end
|
673
657
|
|
674
658
|
# Run in the Working directory
|
675
|
-
puts "** Go on root directory (#{File.expand_path(
|
676
|
-
Dir.chdir(
|
659
|
+
puts "** Go on root directory (#{File.expand_path(Capcode::Configuration.get(:root))})" if Capcode::Configuration.get(:verbose)
|
660
|
+
Dir.chdir( Capcode::Configuration.get(:root) ) do
|
677
661
|
|
678
662
|
# Check that mongrel exists
|
679
|
-
if
|
663
|
+
if Capcode::Configuration.get(:server).nil? || Capcode::Configuration.get(:server) == "mongrel"
|
680
664
|
begin
|
681
665
|
require 'mongrel'
|
682
|
-
|
666
|
+
Capcode::Configuration.set :server, :mongrel
|
683
667
|
rescue LoadError
|
684
668
|
puts "!! could not load mongrel. Falling back to webrick."
|
685
|
-
|
669
|
+
Capcode::Configuration.set :server, :webrick
|
686
670
|
end
|
687
671
|
end
|
688
672
|
|
689
673
|
# From rackup !!!
|
690
|
-
if
|
674
|
+
if Capcode::Configuration.get(:daemonize)
|
691
675
|
if /java/.match(RUBY_PLATFORM).nil?
|
692
676
|
if RUBY_VERSION < "1.9"
|
693
677
|
exit if fork
|
@@ -705,39 +689,39 @@ module Capcode
|
|
705
689
|
puts "!! daemonize option unavailable on #{RUBY_PLATFORM} platform."
|
706
690
|
end
|
707
691
|
|
708
|
-
File.open(
|
709
|
-
at_exit { File.delete(
|
692
|
+
File.open(Capcode::Configuration.get(:pid), 'w'){ |f| f.write("#{Process.pid}") }
|
693
|
+
at_exit { File.delete(Capcode::Configuration.get(:pid)) if File.exist?(Capcode::Configuration.get(:pid)) }
|
710
694
|
end
|
711
695
|
|
712
696
|
app = nil
|
713
697
|
if block_given?
|
714
|
-
app = application(
|
698
|
+
app = application(Capcode::Configuration.get) { yield( self ) }
|
715
699
|
else
|
716
|
-
app = application(
|
700
|
+
app = application(Capcode::Configuration.get)
|
717
701
|
end
|
718
|
-
app = Rack::CommonLogger.new( app, Logger.new(
|
702
|
+
app = Rack::CommonLogger.new( app, Logger.new(Capcode::Configuration.get(:log)) )
|
719
703
|
|
720
|
-
if
|
704
|
+
if Capcode::Configuration.get(:console)
|
721
705
|
puts "Run console..."
|
722
706
|
IRB.start
|
723
707
|
exit
|
724
708
|
end
|
725
709
|
|
726
710
|
# Start server
|
727
|
-
case
|
711
|
+
case Capcode::Configuration.get(:server).to_s
|
728
712
|
when "mongrel"
|
729
|
-
puts "** Starting Mongrel on #{
|
730
|
-
Rack::Handler::Mongrel.run( app, {:Port =>
|
713
|
+
puts "** Starting Mongrel on #{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"
|
714
|
+
Rack::Handler::Mongrel.run( app, {:Port => Capcode::Configuration.get(:port), :Host => Capcode::Configuration.get(:host)} ) { |server|
|
731
715
|
trap "SIGINT", proc { server.stop }
|
732
716
|
}
|
733
717
|
when "webrick"
|
734
|
-
puts "** Starting WEBrick on #{
|
735
|
-
Rack::Handler::WEBrick.run( app, {:Port =>
|
718
|
+
puts "** Starting WEBrick on #{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"
|
719
|
+
Rack::Handler::WEBrick.run( app, {:Port => Capcode::Configuration.get(:port), :BindAddress => Capcode::Configuration.get(:host)} ) { |server|
|
736
720
|
trap "SIGINT", proc { server.shutdown }
|
737
721
|
}
|
738
722
|
when "thin"
|
739
|
-
puts "** Starting Thin on #{
|
740
|
-
Rack::Handler::Thin.run( app, {:Port =>
|
723
|
+
puts "** Starting Thin on #{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"
|
724
|
+
Rack::Handler::Thin.run( app, {:Port => Capcode::Configuration.get(:port), :Host => Capcode::Configuration.get(:host)} ) { |server|
|
741
725
|
trap "SIGINT", proc { server.stop }
|
742
726
|
}
|
743
727
|
end
|