nitro 0.31.0 → 0.40.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/bin/nitro +135 -37
- data/doc/CHANGELOG.1 +108 -108
- data/doc/CHANGELOG.2 +89 -89
- data/doc/CHANGELOG.3 +105 -105
- data/{CHANGELOG → doc/CHANGELOG.4} +509 -509
- data/doc/{AUTHORS → CONTRIBUTORS} +49 -37
- data/doc/LIBRARIES +13 -0
- data/doc/LICENSE +2 -3
- data/doc/MIGRATION +45 -0
- data/doc/RELEASES +131 -11
- data/doc/TODO +67 -0
- data/lib/glue/magick.rb +0 -3
- data/lib/glue/sweeper.rb +30 -15
- data/lib/glue/thumbnails.rb +0 -2
- data/lib/glue/webfile.rb +23 -11
- data/lib/nitro.rb +37 -44
- data/lib/nitro/adapter/cgi.rb +0 -3
- data/lib/nitro/adapter/console.rb +0 -2
- data/lib/nitro/adapter/fastcgi.rb +6 -3
- data/lib/nitro/adapter/mongrel.rb +97 -58
- data/lib/nitro/adapter/script.rb +4 -6
- data/lib/nitro/adapter/webrick.rb +33 -87
- data/lib/nitro/adapter/webrick/vcr.rb +85 -0
- data/lib/nitro/caching.rb +0 -2
- data/lib/nitro/caching/actions.rb +0 -2
- data/lib/nitro/caching/fragments.rb +0 -2
- data/lib/nitro/caching/output.rb +45 -16
- data/lib/nitro/caching/proxy.rb +49 -0
- data/lib/nitro/cgi.rb +3 -6
- data/lib/nitro/cgi/cookie.rb +0 -3
- data/lib/nitro/cgi/request.rb +67 -24
- data/lib/nitro/cgi/response.rb +0 -2
- data/lib/nitro/cgi/{sendfile.rb → send_file.rb} +7 -6
- data/lib/nitro/compiler.rb +62 -55
- data/lib/nitro/compiler/cleanup.rb +0 -3
- data/lib/nitro/compiler/elements.rb +31 -28
- data/lib/nitro/compiler/errors.rb +2 -5
- data/lib/nitro/compiler/include.rb +10 -8
- data/lib/nitro/compiler/layout.rb +0 -2
- data/lib/nitro/compiler/localization.rb +0 -2
- data/lib/nitro/compiler/markup.rb +14 -6
- data/lib/nitro/compiler/morphing.rb +1 -5
- data/lib/nitro/compiler/script.rb +2 -4
- data/lib/nitro/compiler/squeeze.rb +0 -2
- data/lib/nitro/compiler/xslt.rb +0 -2
- data/lib/nitro/context.rb +10 -5
- data/lib/nitro/control.rb +18 -0
- data/lib/nitro/control/attribute.rb +88 -0
- data/lib/nitro/control/attribute/checkbox.rb +19 -0
- data/lib/nitro/control/attribute/datetime.rb +21 -0
- data/lib/nitro/control/attribute/file.rb +20 -0
- data/lib/nitro/control/attribute/fixnum.rb +26 -0
- data/lib/nitro/control/attribute/float.rb +26 -0
- data/lib/nitro/control/attribute/options.rb +38 -0
- data/lib/nitro/control/attribute/password.rb +16 -0
- data/lib/nitro/control/attribute/text.rb +16 -0
- data/lib/nitro/control/attribute/textarea.rb +16 -0
- data/lib/nitro/control/none.rb +16 -0
- data/lib/nitro/control/relation.rb +53 -0
- data/lib/nitro/control/relation/belongs_to.rb +0 -0
- data/lib/nitro/control/relation/has_many.rb +97 -0
- data/lib/nitro/control/relation/joins_many.rb +0 -0
- data/lib/nitro/control/relation/many_to_many.rb +0 -0
- data/lib/nitro/control/relation/refers_to.rb +29 -0
- data/lib/nitro/controller.rb +7 -296
- data/lib/nitro/dispatcher.rb +72 -34
- data/lib/nitro/element.rb +36 -10
- data/lib/nitro/element/javascript.rb +0 -2
- data/lib/nitro/flash.rb +23 -10
- data/lib/nitro/global.rb +36 -11
- data/lib/nitro/helper.rb +22 -8
- data/lib/nitro/helper/benchmark.rb +0 -2
- data/lib/nitro/helper/buffer.rb +0 -3
- data/lib/nitro/helper/css.rb +12 -0
- data/lib/nitro/helper/debug.rb +1 -3
- data/lib/nitro/helper/default.rb +1 -0
- data/lib/nitro/helper/feed.rb +400 -386
- data/lib/nitro/helper/form.rb +246 -116
- data/lib/nitro/helper/javascript.rb +28 -2
- data/lib/nitro/helper/javascript/morphing.rb +0 -2
- data/lib/nitro/helper/javascript/prototype.rb +0 -2
- data/lib/nitro/helper/javascript/scriptaculous.rb +0 -1
- data/lib/nitro/helper/layout.rb +0 -2
- data/lib/nitro/helper/navigation.rb +87 -0
- data/lib/nitro/helper/pager.rb +11 -22
- data/lib/nitro/helper/table.rb +9 -32
- data/lib/nitro/helper/url.rb +104 -0
- data/lib/nitro/helper/xhtml.rb +20 -4
- data/lib/nitro/helper/xml.rb +0 -2
- data/lib/nitro/markup.rb +131 -0
- data/lib/nitro/part.rb +52 -7
- data/lib/nitro/publishable.rb +328 -0
- data/lib/nitro/render.rb +30 -61
- data/lib/nitro/router.rb +12 -4
- data/lib/nitro/sanitize.rb +48 -0
- data/lib/nitro/scaffold.rb +9 -11
- data/lib/nitro/scaffold/controller.rb +25 -0
- data/lib/nitro/scaffold/model.rb +150 -0
- data/lib/nitro/scaffolding.rb +1 -3
- data/lib/nitro/server.rb +57 -32
- data/lib/nitro/server/drb.rb +16 -2
- data/lib/nitro/server/runner.rb +80 -102
- data/lib/nitro/service.rb +0 -1
- data/lib/nitro/service/xmlrpc.rb +0 -2
- data/lib/nitro/session.rb +26 -18
- data/lib/nitro/session/drb.rb +2 -16
- data/lib/nitro/session/memory.rb +0 -2
- data/lib/nitro/template.rb +219 -0
- data/lib/nitro/test/assertions.rb +1 -3
- data/lib/nitro/test/context.rb +0 -1
- data/lib/nitro/test/testcase.rb +0 -1
- data/lib/nitro/version.rb +6 -0
- data/lib/part/admin.rb +16 -0
- data/lib/part/admin/controller.rb +19 -0
- data/lib/part/admin/helper.rb +30 -0
- data/lib/part/admin/og/controller.rb +114 -0
- data/lib/part/admin/og/customize.rb +4 -0
- data/lib/part/admin/og/template/index.xhtml +27 -0
- data/lib/part/admin/og/template/list.xhtml +38 -0
- data/lib/part/admin/og/template/search.xhtml +20 -0
- data/lib/part/admin/og/template/update.xhtml +25 -0
- data/lib/part/admin/skin.rb +207 -0
- data/lib/part/admin/template/denied.xhtml +13 -0
- data/lib/part/admin/template/index.xhtml +12 -0
- data/lib/part/admin/todo.txt +2 -0
- data/proto/public/error.xhtml +4 -2
- data/proto/run.rb +0 -2
- data/test/glue/tc_webfile.rb +1 -0
- data/test/nitro/cgi/tc_request.rb +23 -0
- data/test/nitro/helper/tc_feed.rb +0 -3
- data/test/nitro/helper/tc_navbar.rb +74 -0
- data/test/nitro/helper/tc_table.rb +2 -0
- data/test/nitro/tc_cgi.rb +72 -19
- data/test/nitro/tc_controller.rb +35 -26
- data/test/nitro/tc_controller_aspect.rb +1 -0
- data/test/nitro/tc_controller_params.rb +864 -0
- data/test/nitro/tc_dispatcher.rb +2 -2
- data/test/nitro/tc_element.rb +16 -16
- data/test/nitro/tc_flash.rb +3 -3
- data/test/nitro/tc_markup.rb +31 -0
- data/test/nitro/tc_render.rb +12 -14
- data/test/nitro/tc_session.rb +9 -7
- data/test/nitro/tc_template.rb +34 -0
- metadata +217 -198
- data/INSTALL +0 -121
- data/ProjectInfo +0 -74
- data/README +0 -555
- data/doc/apache.txt +0 -9
- data/doc/config.txt +0 -28
- data/doc/faq.txt +0 -7
- data/doc/lhttpd.txt +0 -7
- data/lib/nitro/adapter/scgi.rb +0 -239
- data/lib/nitro/helper/form/builder.rb +0 -144
- data/lib/nitro/helper/form/controls.rb +0 -389
- data/lib/nitro/helper/rss.rb +0 -72
- data/proto/conf/apache.conf +0 -51
- data/proto/public/scaffold/advanced_search.xhtml +0 -30
- data/proto/public/scaffold/edit.xhtml +0 -11
- data/proto/public/scaffold/form.xhtml +0 -1
- data/proto/public/scaffold/index.xhtml +0 -20
- data/proto/public/scaffold/list.xhtml +0 -32
- data/proto/public/scaffold/new.xhtml +0 -11
- data/proto/public/scaffold/search.xhtml +0 -29
- data/proto/public/scaffold/view.xhtml +0 -8
- data/proto/script/scgi_ctl +0 -221
- data/proto/script/scgi_service +0 -128
- data/setup.rb +0 -1585
- data/src/part/admin.rb +0 -16
- data/src/part/admin/controller.rb +0 -81
- data/src/part/admin/skin.rb +0 -21
- data/src/part/admin/system.css +0 -135
- data/src/part/admin/template/denied.xhtml +0 -1
- data/src/part/admin/template/index.xhtml +0 -43
- data/test/nitro/helper/tc_rss.rb +0 -24
data/lib/nitro/server/drb.rb
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require 'drb'
|
|
4
4
|
require 'optparse'
|
|
5
|
+
require 'fileutils'
|
|
5
6
|
|
|
6
7
|
require 'facet/synchash'
|
|
7
8
|
|
|
@@ -80,12 +81,26 @@ class DrbServer
|
|
|
80
81
|
end
|
|
81
82
|
|
|
82
83
|
# Start the DRb server.
|
|
83
|
-
|
|
84
|
+
#--
|
|
85
|
+
# TODO: refactor with runner code.
|
|
86
|
+
#++
|
|
87
|
+
|
|
84
88
|
def start
|
|
85
89
|
parse_options
|
|
90
|
+
|
|
86
91
|
if @daemon
|
|
87
92
|
require 'daemons/daemonize'
|
|
93
|
+
pwd = Dir.pwd
|
|
94
|
+
|
|
88
95
|
Daemonize.daemonize()
|
|
96
|
+
|
|
97
|
+
# Restore the original pwd (daemonize sets the
|
|
98
|
+
# pwd to '/').
|
|
99
|
+
|
|
100
|
+
Dir.chdir(pwd)
|
|
101
|
+
|
|
102
|
+
# Save a process sentinel file.
|
|
103
|
+
FileUtils.touch ".d#{Process.pid}.pid"
|
|
89
104
|
end
|
|
90
105
|
setup_drb()
|
|
91
106
|
end
|
|
@@ -103,4 +118,3 @@ DrbServer.start if __FILE__ == $0
|
|
|
103
118
|
|
|
104
119
|
end
|
|
105
120
|
|
|
106
|
-
# * George Moschovitis <gm@navel.gr>
|
data/lib/nitro/server/runner.rb
CHANGED
|
@@ -15,41 +15,14 @@ module Nitro
|
|
|
15
15
|
# The runner provides default parsing of command line
|
|
16
16
|
# and environment parameters.
|
|
17
17
|
#
|
|
18
|
-
# The default execution modes are:
|
|
19
|
-
#
|
|
20
|
-
# :debug, :stage, :live
|
|
21
|
-
#
|
|
22
18
|
# You can implement your own, custom version of the Runner
|
|
23
19
|
# to run your custom web applications.
|
|
24
20
|
#--
|
|
25
|
-
#
|
|
21
|
+
# WARNING: this class will be deprecated!
|
|
22
|
+
# FIXME: Trim this class, most functionality goes to bin/nitro.
|
|
26
23
|
#++
|
|
27
24
|
|
|
28
25
|
class Runner
|
|
29
|
-
|
|
30
|
-
# The adapter used.
|
|
31
|
-
|
|
32
|
-
setting :adapter, :default => :webrick, :doc => 'The web adapter'
|
|
33
|
-
|
|
34
|
-
# Execution mode = (:debug, :stage, :live)
|
|
35
|
-
#
|
|
36
|
-
# [:debug]
|
|
37
|
-
# useful when debugging, extra debug information
|
|
38
|
-
# is emmited, actions, templates and shaders are
|
|
39
|
-
# reloaded, etc. The execution speed of the application
|
|
40
|
-
# is impaired.
|
|
41
|
-
#
|
|
42
|
-
# [:stage]
|
|
43
|
-
# test the application with live parameters
|
|
44
|
-
# (typically on a staging server).
|
|
45
|
-
#
|
|
46
|
-
# [:live]
|
|
47
|
-
# use the parameters for the live (production)
|
|
48
|
-
# server. Optimized for speed.
|
|
49
|
-
#
|
|
50
|
-
# The default mode is :debug
|
|
51
|
-
|
|
52
|
-
setting :mode, :default => :debug, :doc => 'The execution mode'
|
|
53
26
|
|
|
54
27
|
# :start, :stop, :restart
|
|
55
28
|
|
|
@@ -76,18 +49,9 @@ class Runner
|
|
|
76
49
|
|
|
77
50
|
def setup_options
|
|
78
51
|
@action ||= :start
|
|
79
|
-
@server ||= :webrick
|
|
80
52
|
@daemon = false
|
|
81
53
|
@spider = false
|
|
82
54
|
|
|
83
|
-
# Setup from environment
|
|
84
|
-
|
|
85
|
-
if mode = ENV['NITRO_MODE']
|
|
86
|
-
self.class.mode = mode.to_sym
|
|
87
|
-
else
|
|
88
|
-
self.class.mode ||= :debug
|
|
89
|
-
end
|
|
90
|
-
|
|
91
55
|
# Setup from command line arguments.
|
|
92
56
|
|
|
93
57
|
parser = OptionParser.new do |opts|
|
|
@@ -113,15 +77,15 @@ class Runner
|
|
|
113
77
|
end
|
|
114
78
|
|
|
115
79
|
opts.on('-D', '--debug', 'Run application in debug mode.') do
|
|
116
|
-
|
|
80
|
+
Configuration.mode = :debug
|
|
117
81
|
end
|
|
118
82
|
|
|
119
83
|
opts.on('-T', '--stage', 'Run application in stage mode.') do
|
|
120
|
-
|
|
84
|
+
Configuration.mode = :stage
|
|
121
85
|
end
|
|
122
86
|
|
|
123
87
|
opts.on('-L', '--live', 'Run application in live mode.') do
|
|
124
|
-
|
|
88
|
+
Configuration.mode = :live
|
|
125
89
|
end
|
|
126
90
|
|
|
127
91
|
opts.on('--address IP', 'Force the server to run on this address.') do |a|
|
|
@@ -132,83 +96,96 @@ class Runner
|
|
|
132
96
|
@server_port = p.to_i
|
|
133
97
|
end
|
|
134
98
|
|
|
99
|
+
opts.on('--port_offset PORT', 'The port offset in the cluster.') do |o|
|
|
100
|
+
@server_port_offset = o.to_i
|
|
101
|
+
end
|
|
102
|
+
|
|
135
103
|
opts.on('-w', '--webrick', 'Use a webrick server [default].') do
|
|
136
|
-
|
|
104
|
+
Nitro.adapter = :webrick
|
|
137
105
|
end
|
|
138
106
|
|
|
139
107
|
opts.on('-m', '--mongrel', 'Use the Mongrel Ruby server.') do
|
|
140
|
-
|
|
108
|
+
Nitro.adapter = :mongrel
|
|
141
109
|
# FIXME: handle logging.
|
|
142
110
|
end
|
|
143
111
|
|
|
144
112
|
opts.on('-l', '--lhttpd', 'Use a lighttpd server (FastCGI).') do
|
|
145
|
-
|
|
113
|
+
Nitro.adapter = :lhttpd
|
|
146
114
|
Logger.set(Logger.new('log/app.log'))
|
|
147
115
|
end
|
|
148
116
|
|
|
149
117
|
opts.on('-l', '--lhttpd-scgi', 'Use the SCGI adapter (Lighttpd).') do
|
|
150
|
-
|
|
118
|
+
Nitro.adapter = :lhttpd_scgi
|
|
151
119
|
Logger.set(Logger.new('log/app.log'))
|
|
152
120
|
end
|
|
153
121
|
|
|
154
122
|
opts.on('-a', '--apache', 'Use an apache server.') do
|
|
155
|
-
|
|
123
|
+
Nitro.adapter = :apache
|
|
156
124
|
Logger.set(Logger.new('log/app.log'))
|
|
157
125
|
end
|
|
158
126
|
|
|
159
127
|
opts.on('--apache-cgi', 'Use the CGI adapter (Apache)') do
|
|
160
|
-
|
|
128
|
+
Nitro.adapter = :cgi
|
|
161
129
|
Logger.set(Logger.new('log/app.log'))
|
|
162
130
|
end
|
|
163
131
|
|
|
164
132
|
opts.on('--scgi', 'Use the generic SCGI adapter') do
|
|
165
|
-
|
|
133
|
+
Nitro.adapter = :scgi
|
|
166
134
|
end
|
|
167
135
|
|
|
168
|
-
opts.on('-C', '--console', 'Start a console attached to an instance of the application.') do
|
|
169
|
-
if RUBY_PLATFORM =~ /mswin32/
|
|
170
|
-
irb_name = 'irb.bat'
|
|
171
|
-
else
|
|
172
|
-
irb_name = 'irb'
|
|
173
|
-
end
|
|
174
|
-
ENV['NITRO_INVOKE'] = 'irb'
|
|
175
|
-
$NITRO_NO_INVOKE = true
|
|
176
|
-
@server = :console
|
|
177
|
-
conf_file = File.basename(caller.last.split(':').first)
|
|
178
|
-
exec "#{irb_name} -r #{conf_file} -r irb/completion --noinspect"
|
|
179
|
-
exit
|
|
180
|
-
end
|
|
181
|
-
|
|
182
136
|
opts.on('--crawl', 'Crawl the application.') do
|
|
183
|
-
|
|
137
|
+
Nitro.adapter = :webrick
|
|
184
138
|
@spider = :crawl
|
|
185
139
|
end
|
|
186
140
|
|
|
187
141
|
opts.on('--render', 'Crawl the application and render all pages as static html files.') do
|
|
188
|
-
|
|
142
|
+
Nitro.adapter = :webrick
|
|
189
143
|
@spider = :render
|
|
190
144
|
end
|
|
191
145
|
|
|
192
|
-
opts.
|
|
193
|
-
|
|
194
|
-
|
|
146
|
+
opts.on_tail('-h', '--help', 'Show this message.') do
|
|
147
|
+
puts opts
|
|
148
|
+
exit
|
|
195
149
|
end
|
|
150
|
+
|
|
151
|
+
# Hack fix for bin/nitro.
|
|
196
152
|
|
|
197
|
-
opts.
|
|
198
|
-
|
|
199
|
-
$playback_session_filename = filename || 'vcrsession.yaml'
|
|
153
|
+
opts.on_tail('-v', '--verbose', 'Verbose mode') do
|
|
154
|
+
# nop, hack fix.
|
|
200
155
|
end
|
|
201
156
|
|
|
202
|
-
opts.
|
|
203
|
-
|
|
204
|
-
|
|
157
|
+
opts.on('--destroy') do
|
|
158
|
+
# nop, hack fix.
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
opts.on('-C', '--console', 'Start a console attached to an instance of the application.') do
|
|
162
|
+
# nop, hack fix.
|
|
205
163
|
end
|
|
206
164
|
|
|
207
|
-
opts.
|
|
208
|
-
|
|
209
|
-
exit
|
|
165
|
+
opts.on('--app', 'The application name') do |adapter|
|
|
166
|
+
# nop, hack fix.
|
|
210
167
|
end
|
|
211
|
-
|
|
168
|
+
|
|
169
|
+
opts.on('--mode', 'Set the execution mode') do |adapter|
|
|
170
|
+
# nop, hack fix.
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
opts.on('--adapter', 'Set the adapter to use') do |adapter|
|
|
174
|
+
# nop, hack fix.
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
opts.on('--record', 'Record the application server session to the given file.') do |filename|
|
|
178
|
+
# nop, hack fix.
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
opts.on('--playback', 'Playback a previously recorded session from the given file.') do |filename|
|
|
182
|
+
# nop, hack fix.
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
opts.on('--cluster', 'Setup a cluster.') do |ic|
|
|
186
|
+
# nop, hack fix.
|
|
187
|
+
end
|
|
188
|
+
|
|
212
189
|
end
|
|
213
190
|
|
|
214
191
|
parser.parse!(ARGV)
|
|
@@ -220,7 +197,7 @@ class Runner
|
|
|
220
197
|
# using the passed configuration parameters.
|
|
221
198
|
|
|
222
199
|
def setup_mode
|
|
223
|
-
case
|
|
200
|
+
case Configuration.mode
|
|
224
201
|
when :debug
|
|
225
202
|
setup_debug
|
|
226
203
|
|
|
@@ -249,7 +226,7 @@ class Runner
|
|
|
249
226
|
autoreload(3)
|
|
250
227
|
Caching.caching_enabled = false
|
|
251
228
|
|
|
252
|
-
load_external_configuration(:debug)
|
|
229
|
+
# load_external_configuration(:debug)
|
|
253
230
|
end
|
|
254
231
|
|
|
255
232
|
def setup_stage
|
|
@@ -258,7 +235,7 @@ class Runner
|
|
|
258
235
|
autoreload(3)
|
|
259
236
|
Logger.set(Logger.new('log/app.log'))
|
|
260
237
|
|
|
261
|
-
load_external_configuration(:stage)
|
|
238
|
+
# load_external_configuration(:stage)
|
|
262
239
|
end
|
|
263
240
|
|
|
264
241
|
def setup_live
|
|
@@ -273,8 +250,8 @@ class Runner
|
|
|
273
250
|
autoreload(2 * 60)
|
|
274
251
|
Logger.set(Logger.new('log/app.log'))
|
|
275
252
|
|
|
276
|
-
load_external_configuration(:live)
|
|
277
|
-
load_external_configuration(:production)
|
|
253
|
+
# load_external_configuration(:live)
|
|
254
|
+
# load_external_configuration(:production)
|
|
278
255
|
end
|
|
279
256
|
alias_method :setup_production, :setup_live
|
|
280
257
|
|
|
@@ -296,8 +273,10 @@ class Runner
|
|
|
296
273
|
|
|
297
274
|
when 'irb'
|
|
298
275
|
require 'nitro/adapter/console'
|
|
276
|
+
require 'nitro/caching/proxy'
|
|
299
277
|
$server = server
|
|
300
278
|
$app = ConsoleAdapter.new(server)
|
|
279
|
+
$cache = Caching::Proxy
|
|
301
280
|
|
|
302
281
|
else
|
|
303
282
|
invoke_server(server)
|
|
@@ -312,6 +291,7 @@ class Runner
|
|
|
312
291
|
# FIXME refactor !
|
|
313
292
|
server.address = @server_address if @server_address
|
|
314
293
|
server.port = @server_port if @server_port
|
|
294
|
+
server.port += @server_port_offset if @server_port_offset
|
|
315
295
|
|
|
316
296
|
case @action
|
|
317
297
|
when :start
|
|
@@ -329,22 +309,24 @@ class Runner
|
|
|
329
309
|
end
|
|
330
310
|
end
|
|
331
311
|
|
|
332
|
-
@server
|
|
312
|
+
@server = Nitro.adapter
|
|
333
313
|
|
|
334
|
-
|
|
314
|
+
Logger.info ""
|
|
315
|
+
Logger.info "Setup for #{Configuration.mode} mode."
|
|
335
316
|
|
|
336
317
|
case @server
|
|
337
318
|
when :webrick
|
|
338
319
|
require 'nitro/adapter/webrick'
|
|
339
|
-
|
|
340
|
-
|
|
320
|
+
Logger.info "Starting Webrick on #{server.address}:#{server.port}"
|
|
321
|
+
Logger.info "Press Ctrl-C to shutdown; Run with --help for options."
|
|
322
|
+
Logger.info ""
|
|
341
323
|
Webrick.start(server)
|
|
342
324
|
|
|
343
325
|
when :mongrel
|
|
344
326
|
require 'nitro/adapter/mongrel'
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
327
|
+
Logger.info "Starting Mongrel on #{server.address}:#{server.port}"
|
|
328
|
+
Logger.info "Press Ctrl-C to shutdown; Run with --help for options."
|
|
329
|
+
Logger.info ""
|
|
348
330
|
Mongrel.start(server)
|
|
349
331
|
|
|
350
332
|
when :lhttpd
|
|
@@ -352,11 +334,6 @@ class Runner
|
|
|
352
334
|
puts "==> Launching lighttpd (FastCGI)."
|
|
353
335
|
`lighttpd -f conf/lhttpd_fcgi.conf`
|
|
354
336
|
|
|
355
|
-
when :lhttpd_scgi
|
|
356
|
-
require 'nitro/adapter/scgi'
|
|
357
|
-
puts "==> Launching lighttpd (SCGI)."
|
|
358
|
-
`lighttpd -f conf/lhttpd_scgi.conf`
|
|
359
|
-
|
|
360
337
|
when :apache
|
|
361
338
|
require 'nitro/adapter/fastcgi'
|
|
362
339
|
puts "==> Launching apache (FastCGI)."
|
|
@@ -366,11 +343,6 @@ class Runner
|
|
|
366
343
|
require 'nitro/adapter/cgi'
|
|
367
344
|
puts "==> Using standard CGI. Please look into using Fast/Scgi"
|
|
368
345
|
|
|
369
|
-
|
|
370
|
-
when :scgi
|
|
371
|
-
require 'nitro/adapter/scgi'
|
|
372
|
-
SCGI.start(server)
|
|
373
|
-
|
|
374
346
|
end
|
|
375
347
|
|
|
376
348
|
when :stop
|
|
@@ -394,13 +366,22 @@ class Runner
|
|
|
394
366
|
|
|
395
367
|
def daemonize
|
|
396
368
|
require 'daemons/daemonize'
|
|
369
|
+
|
|
397
370
|
pwd = Dir.pwd
|
|
398
371
|
Daemonize.daemonize(File.join(pwd, 'log/app.log'))
|
|
372
|
+
|
|
399
373
|
# Restore the original pwd (daemonize sets the
|
|
400
374
|
# pwd to '/').
|
|
375
|
+
|
|
401
376
|
Dir.chdir(pwd)
|
|
377
|
+
|
|
378
|
+
# Save a process sentinel file.
|
|
379
|
+
|
|
380
|
+
FileUtils.touch ".a#{Process.pid}.pid"
|
|
381
|
+
|
|
402
382
|
# Set the logger to a file (daemonize closes the
|
|
403
383
|
# std streams).
|
|
384
|
+
|
|
404
385
|
Logger.set(Logger.new('log/app.log'))
|
|
405
386
|
end
|
|
406
387
|
|
|
@@ -429,6 +410,3 @@ end
|
|
|
429
410
|
Run = Runner
|
|
430
411
|
|
|
431
412
|
end
|
|
432
|
-
|
|
433
|
-
# * George Moschovitis <gm@navel.gr>
|
|
434
|
-
# * James Britt <james_b@neurogami.com>
|
data/lib/nitro/service.rb
CHANGED
data/lib/nitro/service/xmlrpc.rb
CHANGED
data/lib/nitro/session.rb
CHANGED
|
@@ -55,28 +55,39 @@ class Session < Hash
|
|
|
55
55
|
|
|
56
56
|
setting :keepalive, :default => 30.minutes, :doc => 'The session keepalive time'
|
|
57
57
|
|
|
58
|
+
# The type of the session cache. The generalized caching
|
|
59
|
+
# system in Glue is used. The following options are available:
|
|
60
|
+
#
|
|
61
|
+
# * :memory [default]
|
|
62
|
+
# * :drb
|
|
63
|
+
# * :og
|
|
64
|
+
# * :file
|
|
65
|
+
# * :memcached
|
|
66
|
+
|
|
67
|
+
setting :cache_type, :default => :memory, :doc => 'The type of session cache'
|
|
68
|
+
|
|
69
|
+
# The address of the cache store.
|
|
70
|
+
|
|
71
|
+
setting :cache_address, :default => '127.0.0.1', :doc => 'The address of the cache store'
|
|
72
|
+
|
|
73
|
+
# The port of the cache store.
|
|
74
|
+
|
|
75
|
+
setting :cache_port, :default => 9069, :doc => 'The port of the cache store'
|
|
76
|
+
|
|
58
77
|
class << self
|
|
59
78
|
|
|
60
79
|
# The sessions cache (store).
|
|
61
80
|
|
|
62
81
|
attr_accessor :cache
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
#
|
|
66
|
-
#
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
# * :og
|
|
70
|
-
# * :file
|
|
71
|
-
# * :memcached
|
|
72
|
-
|
|
73
|
-
def cache_type=(cache_type)
|
|
82
|
+
alias store cache
|
|
83
|
+
|
|
84
|
+
# Load the correct Session specialization according to the
|
|
85
|
+
# cache type.
|
|
86
|
+
|
|
87
|
+
def setup(type = Session.cache_type)
|
|
74
88
|
# gmosx: RDoc friendly.
|
|
75
|
-
require 'nitro/session/' +
|
|
89
|
+
require 'nitro/session/' + type.to_s
|
|
76
90
|
end
|
|
77
|
-
alias_method :set_cache_type, :cache_type=
|
|
78
|
-
alias_method :store_type=, :cache_type=
|
|
79
|
-
alias_method :set_store_type, :cache_type=
|
|
80
91
|
|
|
81
92
|
# Lookup the session in the cache by using the session
|
|
82
93
|
# cookie value as a key. If the session does not exist
|
|
@@ -188,6 +199,3 @@ protected
|
|
|
188
199
|
end
|
|
189
200
|
|
|
190
201
|
end
|
|
191
|
-
|
|
192
|
-
# * George Moschovitis <gm@navel.gr>
|
|
193
|
-
# * Guillaume Pierronnet <guillaume.pierronnet@gmail.com>
|