nitro 0.31.0 → 0.40.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (174) hide show
  1. data/bin/nitro +135 -37
  2. data/doc/CHANGELOG.1 +108 -108
  3. data/doc/CHANGELOG.2 +89 -89
  4. data/doc/CHANGELOG.3 +105 -105
  5. data/{CHANGELOG → doc/CHANGELOG.4} +509 -509
  6. data/doc/{AUTHORS → CONTRIBUTORS} +49 -37
  7. data/doc/LIBRARIES +13 -0
  8. data/doc/LICENSE +2 -3
  9. data/doc/MIGRATION +45 -0
  10. data/doc/RELEASES +131 -11
  11. data/doc/TODO +67 -0
  12. data/lib/glue/magick.rb +0 -3
  13. data/lib/glue/sweeper.rb +30 -15
  14. data/lib/glue/thumbnails.rb +0 -2
  15. data/lib/glue/webfile.rb +23 -11
  16. data/lib/nitro.rb +37 -44
  17. data/lib/nitro/adapter/cgi.rb +0 -3
  18. data/lib/nitro/adapter/console.rb +0 -2
  19. data/lib/nitro/adapter/fastcgi.rb +6 -3
  20. data/lib/nitro/adapter/mongrel.rb +97 -58
  21. data/lib/nitro/adapter/script.rb +4 -6
  22. data/lib/nitro/adapter/webrick.rb +33 -87
  23. data/lib/nitro/adapter/webrick/vcr.rb +85 -0
  24. data/lib/nitro/caching.rb +0 -2
  25. data/lib/nitro/caching/actions.rb +0 -2
  26. data/lib/nitro/caching/fragments.rb +0 -2
  27. data/lib/nitro/caching/output.rb +45 -16
  28. data/lib/nitro/caching/proxy.rb +49 -0
  29. data/lib/nitro/cgi.rb +3 -6
  30. data/lib/nitro/cgi/cookie.rb +0 -3
  31. data/lib/nitro/cgi/request.rb +67 -24
  32. data/lib/nitro/cgi/response.rb +0 -2
  33. data/lib/nitro/cgi/{sendfile.rb → send_file.rb} +7 -6
  34. data/lib/nitro/compiler.rb +62 -55
  35. data/lib/nitro/compiler/cleanup.rb +0 -3
  36. data/lib/nitro/compiler/elements.rb +31 -28
  37. data/lib/nitro/compiler/errors.rb +2 -5
  38. data/lib/nitro/compiler/include.rb +10 -8
  39. data/lib/nitro/compiler/layout.rb +0 -2
  40. data/lib/nitro/compiler/localization.rb +0 -2
  41. data/lib/nitro/compiler/markup.rb +14 -6
  42. data/lib/nitro/compiler/morphing.rb +1 -5
  43. data/lib/nitro/compiler/script.rb +2 -4
  44. data/lib/nitro/compiler/squeeze.rb +0 -2
  45. data/lib/nitro/compiler/xslt.rb +0 -2
  46. data/lib/nitro/context.rb +10 -5
  47. data/lib/nitro/control.rb +18 -0
  48. data/lib/nitro/control/attribute.rb +88 -0
  49. data/lib/nitro/control/attribute/checkbox.rb +19 -0
  50. data/lib/nitro/control/attribute/datetime.rb +21 -0
  51. data/lib/nitro/control/attribute/file.rb +20 -0
  52. data/lib/nitro/control/attribute/fixnum.rb +26 -0
  53. data/lib/nitro/control/attribute/float.rb +26 -0
  54. data/lib/nitro/control/attribute/options.rb +38 -0
  55. data/lib/nitro/control/attribute/password.rb +16 -0
  56. data/lib/nitro/control/attribute/text.rb +16 -0
  57. data/lib/nitro/control/attribute/textarea.rb +16 -0
  58. data/lib/nitro/control/none.rb +16 -0
  59. data/lib/nitro/control/relation.rb +53 -0
  60. data/lib/nitro/control/relation/belongs_to.rb +0 -0
  61. data/lib/nitro/control/relation/has_many.rb +97 -0
  62. data/lib/nitro/control/relation/joins_many.rb +0 -0
  63. data/lib/nitro/control/relation/many_to_many.rb +0 -0
  64. data/lib/nitro/control/relation/refers_to.rb +29 -0
  65. data/lib/nitro/controller.rb +7 -296
  66. data/lib/nitro/dispatcher.rb +72 -34
  67. data/lib/nitro/element.rb +36 -10
  68. data/lib/nitro/element/javascript.rb +0 -2
  69. data/lib/nitro/flash.rb +23 -10
  70. data/lib/nitro/global.rb +36 -11
  71. data/lib/nitro/helper.rb +22 -8
  72. data/lib/nitro/helper/benchmark.rb +0 -2
  73. data/lib/nitro/helper/buffer.rb +0 -3
  74. data/lib/nitro/helper/css.rb +12 -0
  75. data/lib/nitro/helper/debug.rb +1 -3
  76. data/lib/nitro/helper/default.rb +1 -0
  77. data/lib/nitro/helper/feed.rb +400 -386
  78. data/lib/nitro/helper/form.rb +246 -116
  79. data/lib/nitro/helper/javascript.rb +28 -2
  80. data/lib/nitro/helper/javascript/morphing.rb +0 -2
  81. data/lib/nitro/helper/javascript/prototype.rb +0 -2
  82. data/lib/nitro/helper/javascript/scriptaculous.rb +0 -1
  83. data/lib/nitro/helper/layout.rb +0 -2
  84. data/lib/nitro/helper/navigation.rb +87 -0
  85. data/lib/nitro/helper/pager.rb +11 -22
  86. data/lib/nitro/helper/table.rb +9 -32
  87. data/lib/nitro/helper/url.rb +104 -0
  88. data/lib/nitro/helper/xhtml.rb +20 -4
  89. data/lib/nitro/helper/xml.rb +0 -2
  90. data/lib/nitro/markup.rb +131 -0
  91. data/lib/nitro/part.rb +52 -7
  92. data/lib/nitro/publishable.rb +328 -0
  93. data/lib/nitro/render.rb +30 -61
  94. data/lib/nitro/router.rb +12 -4
  95. data/lib/nitro/sanitize.rb +48 -0
  96. data/lib/nitro/scaffold.rb +9 -11
  97. data/lib/nitro/scaffold/controller.rb +25 -0
  98. data/lib/nitro/scaffold/model.rb +150 -0
  99. data/lib/nitro/scaffolding.rb +1 -3
  100. data/lib/nitro/server.rb +57 -32
  101. data/lib/nitro/server/drb.rb +16 -2
  102. data/lib/nitro/server/runner.rb +80 -102
  103. data/lib/nitro/service.rb +0 -1
  104. data/lib/nitro/service/xmlrpc.rb +0 -2
  105. data/lib/nitro/session.rb +26 -18
  106. data/lib/nitro/session/drb.rb +2 -16
  107. data/lib/nitro/session/memory.rb +0 -2
  108. data/lib/nitro/template.rb +219 -0
  109. data/lib/nitro/test/assertions.rb +1 -3
  110. data/lib/nitro/test/context.rb +0 -1
  111. data/lib/nitro/test/testcase.rb +0 -1
  112. data/lib/nitro/version.rb +6 -0
  113. data/lib/part/admin.rb +16 -0
  114. data/lib/part/admin/controller.rb +19 -0
  115. data/lib/part/admin/helper.rb +30 -0
  116. data/lib/part/admin/og/controller.rb +114 -0
  117. data/lib/part/admin/og/customize.rb +4 -0
  118. data/lib/part/admin/og/template/index.xhtml +27 -0
  119. data/lib/part/admin/og/template/list.xhtml +38 -0
  120. data/lib/part/admin/og/template/search.xhtml +20 -0
  121. data/lib/part/admin/og/template/update.xhtml +25 -0
  122. data/lib/part/admin/skin.rb +207 -0
  123. data/lib/part/admin/template/denied.xhtml +13 -0
  124. data/lib/part/admin/template/index.xhtml +12 -0
  125. data/lib/part/admin/todo.txt +2 -0
  126. data/proto/public/error.xhtml +4 -2
  127. data/proto/run.rb +0 -2
  128. data/test/glue/tc_webfile.rb +1 -0
  129. data/test/nitro/cgi/tc_request.rb +23 -0
  130. data/test/nitro/helper/tc_feed.rb +0 -3
  131. data/test/nitro/helper/tc_navbar.rb +74 -0
  132. data/test/nitro/helper/tc_table.rb +2 -0
  133. data/test/nitro/tc_cgi.rb +72 -19
  134. data/test/nitro/tc_controller.rb +35 -26
  135. data/test/nitro/tc_controller_aspect.rb +1 -0
  136. data/test/nitro/tc_controller_params.rb +864 -0
  137. data/test/nitro/tc_dispatcher.rb +2 -2
  138. data/test/nitro/tc_element.rb +16 -16
  139. data/test/nitro/tc_flash.rb +3 -3
  140. data/test/nitro/tc_markup.rb +31 -0
  141. data/test/nitro/tc_render.rb +12 -14
  142. data/test/nitro/tc_session.rb +9 -7
  143. data/test/nitro/tc_template.rb +34 -0
  144. metadata +217 -198
  145. data/INSTALL +0 -121
  146. data/ProjectInfo +0 -74
  147. data/README +0 -555
  148. data/doc/apache.txt +0 -9
  149. data/doc/config.txt +0 -28
  150. data/doc/faq.txt +0 -7
  151. data/doc/lhttpd.txt +0 -7
  152. data/lib/nitro/adapter/scgi.rb +0 -239
  153. data/lib/nitro/helper/form/builder.rb +0 -144
  154. data/lib/nitro/helper/form/controls.rb +0 -389
  155. data/lib/nitro/helper/rss.rb +0 -72
  156. data/proto/conf/apache.conf +0 -51
  157. data/proto/public/scaffold/advanced_search.xhtml +0 -30
  158. data/proto/public/scaffold/edit.xhtml +0 -11
  159. data/proto/public/scaffold/form.xhtml +0 -1
  160. data/proto/public/scaffold/index.xhtml +0 -20
  161. data/proto/public/scaffold/list.xhtml +0 -32
  162. data/proto/public/scaffold/new.xhtml +0 -11
  163. data/proto/public/scaffold/search.xhtml +0 -29
  164. data/proto/public/scaffold/view.xhtml +0 -8
  165. data/proto/script/scgi_ctl +0 -221
  166. data/proto/script/scgi_service +0 -128
  167. data/setup.rb +0 -1585
  168. data/src/part/admin.rb +0 -16
  169. data/src/part/admin/controller.rb +0 -81
  170. data/src/part/admin/skin.rb +0 -21
  171. data/src/part/admin/system.css +0 -135
  172. data/src/part/admin/template/denied.xhtml +0 -1
  173. data/src/part/admin/template/index.xhtml +0 -43
  174. data/test/nitro/helper/tc_rss.rb +0 -24
@@ -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>
@@ -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
- # FIXME: Rename/Reimplement this class.
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
- self.class.mode = :debug
80
+ Configuration.mode = :debug
117
81
  end
118
82
 
119
83
  opts.on('-T', '--stage', 'Run application in stage mode.') do
120
- self.class.mode = :stage
84
+ Configuration.mode = :stage
121
85
  end
122
86
 
123
87
  opts.on('-L', '--live', 'Run application in live mode.') do
124
- self.class.mode = :live
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
- @server = :webrick
104
+ Nitro.adapter = :webrick
137
105
  end
138
106
 
139
107
  opts.on('-m', '--mongrel', 'Use the Mongrel Ruby server.') do
140
- @server = :mongrel
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
- @server = :lhttpd
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
- @server = :lhttpd_scgi
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
- @server = :apache
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
- @server = :cgi
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
- @server = :scgi
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
- @server = :webrick
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
- @server = :webrick
142
+ Nitro.adapter = :webrick
189
143
  @spider = :render
190
144
  end
191
145
 
192
- opts.on('--record FILENAME', 'Record the application server session to the given file.') do |filename|
193
- @server = :webrick
194
- $record_session_filename = filename || 'vcrsession.yaml'
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.on('--playback FILENAME', 'Playback a previously recorded session from the given file.') do |filename|
198
- @server = :webrick
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.on_tail('-v', '--version', 'Show version.') do
203
- puts "Nitro #{Nitro::Version}"
204
- exit
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.on_tail('-h', '--help', 'Show this message.') do
208
- puts opts
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 self.class.mode
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 ||= Runner.adapter
312
+ @server = Nitro.adapter
333
313
 
334
- puts "\n==> Setup for #{self.class.mode} mode"
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
- puts "==> Listening at #{server.address}:#{server.port}. [WEBRICK]"
340
- puts "==> Press Ctrl-C to shutdown; Run with --help for options.\n\n"
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
- puts "==> Listening at #{server.address}:#{server.port}. [MONGREL]"
346
- puts "==> Press Ctrl-C to shutdown; Run with --help for options.\n\n"
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>
@@ -22,4 +22,3 @@ end
22
22
 
23
23
  end
24
24
 
25
- # * George Moschovitis <gm@navel.gr>
@@ -39,5 +39,3 @@ class XmlRpcService < Service
39
39
  end
40
40
 
41
41
  end
42
-
43
- # * George Moschovitis <gm@navel.gr>
@@ -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
- # Set the session cache. The generalized caching system in
65
- # Glue is used. The following options are available:
66
- #
67
- # * :memory [default]
68
- # * :drb
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/' + cache_type.to_s
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>