nitro 0.10.0 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. data/AUTHORS +4 -1
  2. data/ChangeLog +290 -7
  3. data/README +3 -3
  4. data/RELEASES +94 -0
  5. data/Rakefile +7 -7
  6. data/benchmark/og/bench.rb +11 -10
  7. data/{ChangeLog.1 → doc/ChangeLog.1} +0 -0
  8. data/doc/apache.txt +9 -0
  9. data/doc/architecture.txt +1 -27
  10. data/doc/bugs.txt +11 -4
  11. data/doc/config.txt +22 -0
  12. data/doc/og_config.txt +35 -0
  13. data/doc/og_tutorial.txt +595 -0
  14. data/doc/tutorial.txt +22 -0
  15. data/examples/blog/conf/apache.conf +30 -0
  16. data/examples/blog/conf/lhttpd.conf +2 -2
  17. data/examples/blog/lib/blog/controller.rb +11 -2
  18. data/examples/blog/log/apache.error_log +5528 -0
  19. data/examples/blog/root/fcgi.rb +1 -1
  20. data/examples/blog/run.rb +9 -3
  21. data/examples/flash/run.rb +2 -2
  22. data/examples/no_xsl_blog/conf/apache.conf +30 -0
  23. data/examples/no_xsl_blog/conf/lhttpd.conf +1 -1
  24. data/examples/no_xsl_blog/lib/blog/controller.rb +2 -2
  25. data/examples/no_xsl_blog/log/apache.error_log +68 -0
  26. data/examples/no_xsl_blog/root/fcgi.rb +2 -2
  27. data/examples/no_xsl_blog/run.rb +3 -3
  28. data/examples/og/run.rb +1 -1
  29. data/examples/tiny/conf/apache.conf +29 -4
  30. data/examples/tiny/conf/lhttpd.conf +1 -1
  31. data/examples/tiny/log/apache.error_log +30 -0
  32. data/examples/tiny/root/fcgi.rb +2 -2
  33. data/examples/tiny/root/index.xhtml +1 -1
  34. data/examples/tiny/run.rb +3 -2
  35. data/examples/wee_style/run.rb +7 -9
  36. data/examples/why_wiki/README +5 -0
  37. data/examples/why_wiki/run.rb +57 -0
  38. data/examples/why_wiki/wiki.yml +6 -0
  39. data/examples/wiki.yml +1 -0
  40. data/lib/glue/array.rb +14 -33
  41. data/lib/glue/hash.rb +32 -53
  42. data/lib/glue/pool.rb +9 -12
  43. data/lib/glue/property.rb +31 -9
  44. data/lib/nitro.rb +30 -8
  45. data/lib/nitro/adapters/cgi.rb +23 -3
  46. data/lib/nitro/adapters/webrick.rb +9 -3
  47. data/lib/nitro/builders/form.rb +21 -13
  48. data/lib/nitro/builders/rss.rb +20 -9
  49. data/lib/nitro/builders/table.rb +69 -10
  50. data/lib/nitro/builders/xhtml.rb +13 -4
  51. data/lib/nitro/component.rb +15 -0
  52. data/lib/nitro/conf.rb +4 -3
  53. data/lib/nitro/context.rb +22 -14
  54. data/lib/nitro/controller.rb +63 -5
  55. data/lib/nitro/dispatcher.rb +11 -6
  56. data/lib/nitro/output.rb +28 -0
  57. data/lib/nitro/render.rb +78 -59
  58. data/lib/nitro/request.rb +5 -1
  59. data/lib/nitro/runner.rb +20 -6
  60. data/lib/nitro/session.rb +89 -18
  61. data/lib/nitro/session/drb.rb +31 -0
  62. data/lib/nitro/session/drbserver.rb +71 -0
  63. data/lib/nitro/session/memory.rb +13 -0
  64. data/lib/nitro/simple.rb +7 -0
  65. data/lib/nitro/ui/date-select.rb +2 -5
  66. data/lib/nitro/ui/pager.rb +4 -4
  67. data/lib/nitro/ui/tabs.rb +2 -4
  68. data/lib/nitro/uri.rb +7 -4
  69. data/lib/og.rb +20 -12
  70. data/lib/og/adapter.rb +40 -13
  71. data/lib/og/adapters/filesys.rb +121 -0
  72. data/lib/og/adapters/mysql.rb +10 -5
  73. data/lib/og/adapters/oracle.rb +374 -0
  74. data/lib/og/adapters/psql.rb +10 -23
  75. data/lib/og/adapters/sqlite.rb +3 -3
  76. data/lib/og/backend.rb +2 -2
  77. data/lib/og/connection.rb +6 -6
  78. data/lib/og/database.rb +5 -5
  79. data/lib/og/enchant.rb +6 -2
  80. data/lib/og/meta.rb +56 -26
  81. data/lib/og/mock.rb +1 -1
  82. data/lib/og/typemacros.rb +23 -0
  83. data/lib/parts/content.rb +4 -10
  84. data/test/nitro/adapters/tc_cgi.rb +1 -1
  85. data/test/nitro/builders/tc_rss.rb +1 -1
  86. data/test/nitro/builders/tc_table.rb +30 -0
  87. data/test/nitro/tc_context.rb +4 -0
  88. data/test/nitro/tc_controller.rb +9 -2
  89. data/test/og/tc_filesys.rb +83 -0
  90. data/test/og/tc_meta.rb +55 -0
  91. data/test/tc_og.rb +115 -36
  92. data/vendor/README +11 -5
  93. data/vendor/breakpoint.rb +35 -38
  94. data/vendor/breakpoint_client.rb +119 -80
  95. data/vendor/composite_sexp_processor.rb +43 -0
  96. data/vendor/parse_tree.rb +745 -0
  97. data/vendor/sexp_processor.rb +453 -0
  98. metadata +34 -7
  99. data/examples/no_xsl_blog/conf/app.conf.rb +0 -47
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env ruby
1
+ #!/usr/local/bin/ruby
2
2
 
3
3
  ENV['NITRO_INVOKE'] = 'fcgi_proc'
4
4
  require File.join(File.dirname(__FILE__), '..', 'run.rb')
@@ -1,6 +1,8 @@
1
1
  # * George Moschovitis <gm@navel.gr>
2
2
  # (c) 2004-2005 Navel, all rights reserved.
3
- # $Id: run.rb 260 2005-02-15 08:58:04Z gmosx $
3
+ # $Id: run.rb 266 2005-02-28 14:50:48Z gmosx $
4
+
5
+ # $:.unshift '/home/gmosx/navel/nitro/lib'
4
6
 
5
7
  Dir.chdir File.dirname(__FILE__)
6
8
 
@@ -9,6 +11,10 @@ require 'og'
9
11
 
10
12
  require 'lib/blog'
11
13
 
14
+ # Nitro.resolve_action_arguments = true
15
+ # Og.create_schema = false
16
+ # Session.store_type = :drb
17
+
12
18
  runner = Runner.new.setup
13
19
 
14
20
  db = Og::Database.new(
@@ -32,8 +38,8 @@ Rendering.shader = XSLTShader.new("#{dispatcher.root}/style.xsl",
32
38
 
33
39
  conf = Conf.new(
34
40
  :name => 'Nitro Blog',
35
- :host => 'localhost',
36
- :port => 8069,
41
+ :host => '127.0.0.1',
42
+ :port => 9999,
37
43
  :dispatcher => dispatcher,
38
44
  :db => db
39
45
  )
@@ -1,9 +1,9 @@
1
1
  # * George Moschovitis <gm@navel.gr>
2
2
  # (c) 2004-2005 Navel, all rights reserved.
3
- # $Id: run.rb 260 2005-02-15 08:58:04Z gmosx $
3
+ # $Id: run.rb 266 2005-02-28 14:50:48Z gmosx $
4
4
 
5
5
  Dir.chdir File.dirname(__FILE__)
6
6
 
7
7
  require 'nitro'
8
8
 
9
- N::Runner.run(:host => 'localhost', :port => 8069)
9
+ N::Runner.run(:host => '127.0.0.1', :port => 9999)
@@ -0,0 +1,30 @@
1
+ # Apache configuration file.
2
+ # Change as appropriate for your apache configuration.
3
+ # $Id$
4
+
5
+ Listen 9999
6
+
7
+ PidFile /var/tmp/httpd.pid
8
+ TypesConfig /etc/mime.types
9
+ DocumentRoot /home/gmosx/navel/nitro/examples/no_xsl_blog/root
10
+
11
+ # The error log.
12
+ ErrorLog log/apache.error_log
13
+ CustomLog log/access_log combined
14
+
15
+ # Load dynamic modules.
16
+ LoadModule fastcgi_module /usr/local/apache2/modules/mod_fastcgi.so
17
+ # LoadModule rewrite_module /usr/local/apache2/modules/mod_rewrite.so
18
+
19
+ FastCgiIpcDir /var/tmp/fcgi
20
+ # gmosx: if you have installed the distribution the -I is not needed.
21
+ FastCgiConfig -initial-env 'RUBYOPT=-rubygems -I/home/gmosx/navel/nitro/lib'
22
+ AddHandler fastcgi-script fcgi rb
23
+ Options +FollowSymLinks +ExecCGI
24
+
25
+ RewriteEngine On
26
+ RewriteRule ^/([\/\-_a-zA-Z0-9]+)?$ /fcgi.rb [QSA,L]
27
+ RewriteRule ^/([\/\-_a-zA-Z0-9]+)?\?([\-_a-zA-Z0-9=;&%]*)$ /fcgi.rb?$2 [QSA,L]
28
+
29
+ # You can also point these error messages to a controller/action
30
+ # ErrorDocument 500 /500.html
@@ -104,7 +104,7 @@ url.access-deny = ( "~", ".inc" )
104
104
  ######### Options that are good to be but not neccesary to be changed #######
105
105
 
106
106
  ## bind to port (default: 80)
107
- server.port = 8069
107
+ server.port = 9999
108
108
 
109
109
  ## bind to localhost (default: all interfaces)
110
110
  #server.bind = "grisu.home.kneschke.de"
@@ -41,7 +41,7 @@ class BlogController < N::Controller
41
41
  # example of generated view
42
42
 
43
43
  def list_entry__xml
44
- @out << RssBuilder.render(@entries, :description => 'Blog entries', :link => context.host_url)
44
+ @out.build_rss(@entries, :description => 'Blog entries', :link => context.host_url)
45
45
  end
46
46
 
47
47
  def new_comment
@@ -58,7 +58,7 @@ class BlogController < N::Controller
58
58
  # example of generated view
59
59
 
60
60
  def list_comment__xml
61
- @out << RssBuilder.render(@comments, :description => 'Blog comments', :link => context.host_url)
61
+ @out.build_rss(@comments, :description => 'Blog comments', :link => context.host_url)
62
62
  end
63
63
 
64
64
  def login
@@ -0,0 +1,68 @@
1
+ [Sun Feb 27 14:41:24 2005] [notice] Digest: generating secret for digest authentication ...
2
+ [Sun Feb 27 14:41:24 2005] [notice] Digest: done
3
+ [Sun Feb 27 14:41:25 2005] [notice] FastCGI: process manager initialized (pid 4716)
4
+ [Sun Feb 27 14:41:25 2005] [notice] Apache/2.0.53 (Unix) DAV/2 mod_fastcgi/2.4.2 configured -- resuming normal operations
5
+ [Sun Feb 27 14:41:31 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" started (pid 4722)
6
+ /usr/bin/env: ruby: No such file or directory
7
+ [Sun Feb 27 14:41:32 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" (pid 4722) terminated by calling exit with status '127'
8
+ /usr/bin/env: ruby: No such file or directory
9
+ [Sun Feb 27 14:41:36 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" restarted (pid 4724)
10
+ [Sun Feb 27 14:41:36 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" (pid 4724) terminated by calling exit with status '127'
11
+ [Sun Feb 27 14:41:41 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" restarted (pid 4725)
12
+ /usr/bin/env: ruby: No such file or directory
13
+ [Sun Feb 27 14:41:41 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" (pid 4725) terminated by calling exit with status '127'
14
+ [Sun Feb 27 14:41:46 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" restarted (pid 4726)
15
+ /usr/bin/env: ruby: No such file or directory
16
+ [Sun Feb 27 14:41:46 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" (pid 4726) terminated by calling exit with status '127'
17
+ [Sun Feb 27 14:41:46 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
18
+ [Sun Feb 27 14:41:47 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
19
+ [Sun Feb 27 14:41:50 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
20
+ [Sun Feb 27 14:41:53 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
21
+ [Sun Feb 27 14:41:56 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
22
+ [Sun Feb 27 14:41:59 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
23
+ [Sun Feb 27 14:42:02 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
24
+ [Sun Feb 27 14:42:05 2005] [error] [client 127.0.0.1] FastCGI: comm with (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" aborted: (first read) idle timeout (30 sec), referer: http://0.0.0.0:9999/
25
+ [Sun Feb 27 14:42:05 2005] [error] [client 127.0.0.1] FastCGI: incomplete headers (0 bytes) received from server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb", referer: http://0.0.0.0:9999/
26
+ [Sun Feb 27 14:42:05 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
27
+ [Sun Feb 27 14:42:52 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
28
+ [Sun Feb 27 14:42:56 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
29
+ [Sun Feb 27 14:42:59 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
30
+ [Sun Feb 27 14:43:02 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
31
+ [Sun Feb 27 14:43:05 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
32
+ [Sun Feb 27 14:43:08 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
33
+ [Sun Feb 27 14:43:11 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
34
+ [Sun Feb 27 14:43:12 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
35
+ [Sun Feb 27 14:43:12 2005] [notice] caught SIGTERM, shutting down
36
+ [Sun Feb 27 14:43:21 2005] [notice] Digest: generating secret for digest authentication ...
37
+ [Sun Feb 27 14:43:21 2005] [notice] Digest: done
38
+ [Sun Feb 27 14:43:22 2005] [notice] FastCGI: process manager initialized (pid 4736)
39
+ [Sun Feb 27 14:43:22 2005] [notice] Apache/2.0.53 (Unix) DAV/2 mod_fastcgi/2.4.2 configured -- resuming normal operations
40
+ [Sun Feb 27 14:43:25 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/no_xsl_blog/root/fcgi.rb" started (pid 4742)
41
+ INFO: Connecting to database 'blog' using the 'mysql' adapter.
42
+ DEBUG: Og auto manages the following classes:
43
+ DEBUG: [BlogEntry, N::Category, Comment]
44
+ DEBUG: Rendering '/'.
45
+ DEBUG: Compiling action 'root/index'
46
+ DEBUG: Transforming 'root/index.xhtml'
47
+ DEBUG: SELECT * FROM og_blogentry ORDER BY oid DESC LIMIT 3
48
+ DEBUG: SELECT COUNT(*) FROM og_blogentry
49
+ DEBUG: Rendering '/'.
50
+ DEBUG: Compiling action 'root/index'
51
+ DEBUG: Transforming 'root/index.xhtml'
52
+ DEBUG: SELECT * FROM og_blogentry ORDER BY oid DESC LIMIT 3
53
+ DEBUG: SELECT COUNT(*) FROM og_blogentry
54
+ DEBUG: Rendering '/login'.
55
+ DEBUG: Compiling action 'root/login'
56
+ DEBUG: Transforming 'root/login.xhtml'
57
+ DEBUG: Rendering '/login'.
58
+ DEBUG: Compiling action 'root/login'
59
+ DEBUG: Transforming 'root/login.xhtml'
60
+ DEBUG: Rendering '/'.
61
+ DEBUG: Compiling action 'root/index'
62
+ DEBUG: Transforming 'root/index.xhtml'
63
+ DEBUG: SELECT * FROM og_blogentry ORDER BY oid DESC LIMIT 3
64
+ DEBUG: SELECT COUNT(*) FROM og_blogentry
65
+ DEBUG: Rendering '/entry_form'.
66
+ DEBUG: Compiling action 'root/entry_form'
67
+ DEBUG: Transforming 'root/entry_form.xhtml'
68
+ [Sun Feb 27 14:44:37 2005] [notice] caught SIGTERM, shutting down
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env ruby
1
+ #!/usr/local/bin/ruby
2
2
 
3
- ARGV << '--fcgi-proc'
3
+ ENV['NITRO_INVOKE'] = 'fcgi_proc'
4
4
  require File.join(File.dirname(__FILE__), '..', 'run.rb')
@@ -1,6 +1,6 @@
1
1
  # * George Moschovitis <gm@navel.gr>
2
2
  # (c) 2004-2005 Navel, all rights reserved.
3
- # $Id: run.rb 260 2005-02-15 08:58:04Z gmosx $
3
+ # $Id: run.rb 266 2005-02-28 14:50:48Z gmosx $
4
4
 
5
5
  Dir.chdir File.dirname(__FILE__)
6
6
 
@@ -29,8 +29,8 @@ Rendering.shader = RubyShader.new(CompressShader.new)
29
29
 
30
30
  conf = Conf.new(
31
31
  :name => 'Blog sans XSLT',
32
- :host => 'localhost',
33
- :port => 8069,
32
+ :host => '127.0.0.1',
33
+ :port => 9999,
34
34
  :dispatcher => dispatcher,
35
35
  :db => db
36
36
  )
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # * George Moschovitis <gm@navel.gr>
4
4
  # (c) 2004 Navel, all rights reserved.
5
- # $Id: run.rb 256 2005-02-11 16:22:33Z gmosx $
5
+ # $Id: run.rb 263 2005-02-23 13:45:08Z gmosx $
6
6
 
7
7
  require 'og'
8
8
 
@@ -1,5 +1,30 @@
1
- # Nitro: Apache-FastCGI configuration.
2
- #
3
- # * George Moschovitis <gm@navel.gr>
4
- # (c) 2005 Navel, all rights reserved.
1
+ # Apache configuration file.
2
+ # Change as appropriate for your apache configuration.
5
3
  # $Id$
4
+
5
+ Listen 9999
6
+
7
+ PidFile /var/tmp/httpd.pid
8
+ TypesConfig /etc/mime.types
9
+ DocumentRoot /home/gmosx/navel/nitro/examples/tiny/root
10
+
11
+ # The error log.
12
+ ErrorLog log/apache.error_log
13
+ CustomLog log/access_log combined
14
+
15
+ # Load dynamic modules.
16
+ LoadModule fastcgi_module /usr/local/apache2/modules/mod_fastcgi.so
17
+ # LoadModule rewrite_module /usr/local/apache2/modules/mod_rewrite.so
18
+
19
+ FastCgiIpcDir /var/tmp/fcgi
20
+ # gmosx: if you have installed the distribution the -I is not needed.
21
+ FastCgiConfig -initial-env 'RUBYOPT=-rubygems -I/home/gmosx/navel/nitro/lib'
22
+ AddHandler fastcgi-script fcgi rb
23
+ Options +FollowSymLinks +ExecCGI
24
+
25
+ RewriteEngine On
26
+ RewriteRule ^/([\/\-_a-zA-Z0-9]+)?$ /fcgi.rb [QSA,L]
27
+ RewriteRule ^/([\/\-_a-zA-Z0-9]+)?\?([\-_a-zA-Z0-9=;&%]*)$ /fcgi.rb?$2 [QSA,L]
28
+
29
+ # You can also point these error messages to a controller/action
30
+ # ErrorDocument 500 /500.html
@@ -104,7 +104,7 @@ url.access-deny = ( "~", ".inc" )
104
104
  ######### Options that are good to be but not neccesary to be changed #######
105
105
 
106
106
  ## bind to port (default: 80)
107
- server.port = 8069
107
+ server.port = 9999
108
108
 
109
109
  ## bind to localhost (default: all interfaces)
110
110
  #server.bind = "grisu.home.kneschke.de"
@@ -0,0 +1,30 @@
1
+ [Sun Feb 27 14:59:50 2005] [notice] Digest: generating secret for digest authentication ...
2
+ [Sun Feb 27 14:59:50 2005] [notice] Digest: done
3
+ [Sun Feb 27 14:59:51 2005] [notice] FastCGI: process manager initialized (pid 4783)
4
+ [Sun Feb 27 14:59:51 2005] [notice] Apache/2.0.53 (Unix) DAV/2 mod_fastcgi/2.4.2 configured -- resuming normal operations
5
+ [Sun Feb 27 14:59:52 2005] [warn] FastCGI: (dynamic) server "/home/gmosx/navel/nitro/examples/tiny/root/fcgi.rb" started (pid 4789)
6
+ DEBUG: Rendering '/'.
7
+ DEBUG: Compiling action 'root/index'
8
+ DEBUG: Transforming 'root/index.xhtml'
9
+ DEBUG: Rendering '/include'.
10
+ DEBUG: Compiling action 'root/include'
11
+ DEBUG: Transforming 'root/include.xhtml'
12
+ DEBUG: Rendering '/'.
13
+ DEBUG: Rendering '/include'.
14
+ DEBUG: Rendering '/'.
15
+ DEBUG: Rendering '/include'.
16
+ DEBUG: Rendering '/'.
17
+ DEBUG: Rendering '/include'.
18
+ DEBUG: Rendering '/'.
19
+ DEBUG: Rendering '/include'.
20
+ DEBUG: Rendering '/'.
21
+ DEBUG: Rendering '/include'.
22
+ DEBUG: Rendering '/'.
23
+ DEBUG: Rendering '/include'.
24
+ DEBUG: Rendering '/'.
25
+ DEBUG: Rendering '/include'.
26
+ DEBUG: Rendering '/'.
27
+ DEBUG: Rendering '/include'.
28
+ DEBUG: Rendering '/'.
29
+ DEBUG: Rendering '/include'.
30
+ [Sun Feb 27 15:00:15 2005] [notice] caught SIGTERM, shutting down
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env ruby
1
+ #!/usr/local/bin/ruby
2
2
 
3
- ARGV << '--fcgi-proc'
3
+ ENV['NITRO_INVOKE'] = 'fcgi_proc'
4
4
  require File.join(File.dirname(__FILE__), '..', 'run.rb')
@@ -20,7 +20,7 @@
20
20
  </p>
21
21
 
22
22
 
23
- <strong>#{Rendering.reload} Hello #{name}</strong>
23
+ <strong>Hello #{name}</strong>
24
24
  <p>
25
25
  <form id="my_form">
26
26
  <strong>Enter your name:</strong>
@@ -1,9 +1,10 @@
1
1
  # * George Moschovitis <gm@navel.gr>
2
2
  # (c) 2004-2005 Navel, all rights reserved.
3
- # $Id: run.rb 260 2005-02-15 08:58:04Z gmosx $
3
+ # $Id: run.rb 266 2005-02-28 14:50:48Z gmosx $
4
4
 
5
5
  Dir.chdir File.dirname(__FILE__)
6
6
 
7
7
  require 'nitro'
8
8
 
9
- N::Runner.run(:host => 'localhost', :port => 8069)
9
+ N::Rendering.reload = false
10
+ N::Runner.run(:host => '127.0.0.1', :port => 9999)
@@ -1,18 +1,16 @@
1
1
  # * George Moschovitis <gm@navel.gr>
2
2
  # (c) 2004-2005 Navel, all rights reserved.
3
- # $Id: run.rb 260 2005-02-15 08:58:04Z gmosx $
3
+ # $Id: run.rb 266 2005-02-28 14:50:48Z gmosx $
4
4
 
5
- require 'nitro'
5
+ require 'nitro'; include N
6
6
  require 'nitro/adapters/webrick'
7
7
 
8
- include N
9
-
10
- class Wee < Controller
8
+ class Wee < Component
11
9
 
12
10
  def index
13
11
  counter = session[:counter] || 0
14
12
 
15
- (o = @out).html {
13
+ o.html {
16
14
  o.comment 'This is a comment!'
17
15
  o.h1 'Hello world'
18
16
  o.text 'This is '
@@ -22,7 +20,7 @@ class Wee < Controller
22
20
  o.br.br
23
21
  o.p "Here is the counter: #{counter}"
24
22
  o.p {
25
- o.a('Increase', :href => 'inc_counter').text(' the counter.')
23
+ o.a('Increase', :href => :inc_counter).text(' the counter.')
26
24
  }
27
25
  o.p '<a href="reset_counter">Reset</a> the counter.'
28
26
  o.hr
@@ -42,8 +40,8 @@ class Wee < Controller
42
40
  end
43
41
 
44
42
  conf = {
45
- :host => 'localhost',
46
- :port => 8069,
43
+ :host => '127.0.0.1',
44
+ :port => 9999,
47
45
  :dispatcher => Dispatcher.new(Wee)
48
46
  }
49
47
 
@@ -0,0 +1,5 @@
1
+ = Why's wiki
2
+
3
+ Original example from Why's excellent Blog,
4
+ http://redhanded.hobix.com
5
+
@@ -0,0 +1,57 @@
1
+ # * George Moschovitis <gm@navel.gr>
2
+ # $Id: run.rb 267 2005-02-28 14:52:41Z gmosx $
3
+
4
+ require 'cgi'
5
+ require 'redcloth'
6
+ require 'yaml/store'
7
+
8
+ require 'nitro'; include N
9
+
10
+ # A simple wiki. A straight conversion of the redhanded.hobix.com
11
+ # example. Original code by why the lucky stiff.
12
+ # This is just a cool example, not the preffered way to write
13
+ # Nitro applications.
14
+
15
+ class Wiki < Component
16
+ HP = 'HomePage'
17
+ WIKI = YAML::Store.new('wiki.yml')
18
+
19
+ def index
20
+ request['p'] = HP
21
+ show
22
+ end
23
+
24
+ def show
25
+ p = request['p'].to_s
26
+ o.h1(p)
27
+ o.a(HP, :href => '/') unless p == HP
28
+ WIKI.transaction do
29
+ if WIKI[p]
30
+ o << RedCloth.new(WIKI[p]).to_html.gsub(/([A-Z]\w+){2}/) { "<a href='show?p=#$&'>#$&</a>" }
31
+ o.a 'Edit', :href => "edit?p=#{p}"
32
+ else
33
+ o.p("No page #{p}. ").a('Create?', :href => "edit?p=#{p}")
34
+ end
35
+ end
36
+ end
37
+
38
+ def edit
39
+ p = request['p'].to_s
40
+ if c = request['c']
41
+ WIKI.transaction { WIKI[p] = c.to_s }
42
+ redirect "show?p=#{p}"
43
+ end
44
+ WIKI.transaction do
45
+ o.h1 "Editing #{p}"
46
+ o.a('Show', :href => "show?p=#{p}").br.br
47
+ o.form(:method => 'post') {
48
+ o.input :type => 'hidden', :name => 'p', :value => p
49
+ o.textarea WIKI[p].to_s, :name => 'c', :style => 'width: 90%; height: 200px'
50
+ o.br.br.submit
51
+ }
52
+ end
53
+ end
54
+ end
55
+
56
+ require 'nitro/adapters/webrick'
57
+ Webrick.start(:dispatcher => Dispatcher.new(Wiki))
@@ -0,0 +1,6 @@
1
+ ---
2
+ HomePage: "fasfdasfdfsadfdsa\\]\r
3
+
4
+ \r
5
+
6
+ fas AmigaRule"
@@ -0,0 +1 @@
1
+ --- {}
@@ -1,15 +1,14 @@
1
1
  # * George Moschovitis <gm@navel.gr>
2
2
  # (c) 2002-2005 Navel, all rights reserved.
3
- # $Id: array.rb 259 2005-02-15 08:54:54Z gmosx $
3
+ # $Id: array.rb 266 2005-02-28 14:50:48Z gmosx $
4
4
 
5
5
  require 'sync'
6
6
 
7
7
  module N
8
8
 
9
- # A thread-safe array. We use a sync object instead of a mutex,
10
- # because it is re-entrant.
11
- # An exclusive lock is needed when writing, a shared lock IS NEEDED
12
- # when reading
9
+ # A thread-safe array. We use a sync object instead of a
10
+ # mutex, because it is re-entrant. An exclusive lock is
11
+ # needed when writing, a shared lock IS NEEDED when reading.
13
12
 
14
13
  class SafeArray < Array
15
14
 
@@ -18,61 +17,43 @@ class SafeArray < Array
18
17
  # gmosx: delegator is not used.
19
18
 
20
19
  def initialize(delegator = nil)
21
- @sync = ::Sync.new()
20
+ @sync = Sync.new()
22
21
  end
23
22
 
24
23
  def << (value)
25
- return @sync.synchronize(::Sync::SH) {
26
- super
27
- }
24
+ return @sync.synchronize(Sync::SH) { super }
28
25
  end
29
26
 
30
27
  def delete_if(&block)
31
- return @sync.synchronize(::Sync::SH) {
32
- super
33
- }
28
+ return @sync.synchronize(Sync::SH) { super }
34
29
  end
35
30
 
36
31
  def [](key)
37
- return @sync.synchronize(::Sync::SH) {
38
- super
39
- }
32
+ return @sync.synchronize(Sync::SH) { super }
40
33
  end
41
34
 
42
35
  def []=(key, value)
43
- return @sync.synchronize(::Sync::EX) {
44
- super
45
- }
36
+ return @sync.synchronize(Sync::EX) { super }
46
37
  end
47
38
 
48
39
  def delete(key)
49
- return @sync.synchronize(::Sync::EX) {
50
- super
51
- }
40
+ return @sync.synchronize(Sync::EX) { super }
52
41
  end
53
42
 
54
43
  def clear
55
- @sync.synchronize(::Sync::EX) {
56
- super
57
- }
44
+ @sync.synchronize(Sync::EX) { super }
58
45
  end
59
46
 
60
47
  def size
61
- return @sync.synchronize(::Sync::SH) {
62
- super
63
- }
48
+ return @sync.synchronize(Sync::SH) { super }
64
49
  end
65
50
 
66
51
  def shift
67
- return @sync.synchronize(::Sync::EX) {
68
- super
69
- }
52
+ return @sync.synchronize(::Sync::EX) { super }
70
53
  end
71
54
 
72
55
  def unshift(el)
73
- return @sync.synchronize(::Sync::EX) {
74
- super
75
- }
56
+ return @sync.synchronize(::Sync::EX) { super }
76
57
  end
77
58
 
78
59
  end