nitro 0.31.0 → 0.40.0
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|