nitro 0.29.0 → 0.30.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.
Files changed (93) hide show
  1. data/CHANGELOG +410 -0
  2. data/ProjectInfo +36 -44
  3. data/README +5 -5
  4. data/doc/AUTHORS +6 -0
  5. data/doc/RELEASES +159 -2
  6. data/lib/glue/sweeper.rb +2 -2
  7. data/lib/glue/webfile.rb +14 -1
  8. data/lib/nitro.rb +6 -9
  9. data/lib/nitro/adapter/mongrel.rb +36 -43
  10. data/lib/nitro/adapter/scgi.rb +1 -1
  11. data/lib/nitro/adapter/webrick.rb +96 -24
  12. data/lib/nitro/caching/actions.rb +2 -1
  13. data/lib/nitro/caching/fragments.rb +1 -8
  14. data/lib/nitro/caching/output.rb +14 -4
  15. data/lib/nitro/cgi.rb +19 -21
  16. data/lib/nitro/cgi/cookie.rb +5 -1
  17. data/lib/nitro/cgi/request.rb +20 -4
  18. data/lib/nitro/compiler.rb +74 -28
  19. data/lib/nitro/compiler/cleanup.rb +1 -1
  20. data/lib/nitro/compiler/elements.rb +1 -2
  21. data/lib/nitro/compiler/localization.rb +1 -1
  22. data/lib/nitro/compiler/markup.rb +1 -1
  23. data/lib/nitro/compiler/script.rb +52 -44
  24. data/lib/nitro/compiler/squeeze.rb +4 -3
  25. data/lib/nitro/compiler/xslt.rb +7 -6
  26. data/lib/nitro/context.rb +39 -20
  27. data/lib/nitro/controller.rb +24 -5
  28. data/lib/nitro/dispatcher.rb +13 -5
  29. data/lib/nitro/global.rb +63 -0
  30. data/lib/nitro/helper/feed.rb +432 -0
  31. data/lib/nitro/helper/form.rb +11 -3
  32. data/lib/nitro/helper/form/builder.rb +140 -0
  33. data/lib/nitro/helper/form/controls.rb +2 -1
  34. data/lib/nitro/helper/javascript.rb +6 -0
  35. data/lib/nitro/helper/javascript/morphing.rb +13 -6
  36. data/lib/nitro/helper/xhtml.rb +42 -6
  37. data/lib/nitro/helper/xml.rb +3 -0
  38. data/lib/nitro/part.rb +2 -2
  39. data/lib/nitro/render.rb +7 -2
  40. data/lib/nitro/router.rb +57 -16
  41. data/lib/nitro/scaffolding.rb +29 -20
  42. data/lib/nitro/server.rb +4 -10
  43. data/lib/nitro/server/drb.rb +1 -1
  44. data/lib/nitro/server/runner.rb +10 -0
  45. data/lib/nitro/session.rb +31 -12
  46. data/lib/nitro/session/drb.rb +13 -1
  47. data/lib/nitro/session/file.rb +1 -1
  48. data/lib/nitro/session/memcached.rb +1 -1
  49. data/lib/nitro/session/memory.rb +1 -1
  50. data/lib/nitro/session/og.rb +1 -1
  51. data/lib/nitro/test/testcase.rb +3 -0
  52. data/proto/public/error.xhtml +5 -5
  53. data/proto/public/js/controls.js +2 -2
  54. data/proto/public/js/dragdrop.js +320 -79
  55. data/proto/public/js/effects.js +200 -152
  56. data/proto/public/js/prototype.js +284 -63
  57. data/proto/public/js/scriptaculous.js +7 -5
  58. data/proto/public/js/unittest.js +11 -0
  59. data/proto/public/scaffold/advanced_search.xhtml +30 -0
  60. data/proto/public/scaffold/list.xhtml +8 -1
  61. data/proto/public/scaffold/search.xhtml +2 -1
  62. data/proto/script/scgi_service +1 -1
  63. data/src/part/admin/controller.rb +1 -1
  64. data/src/part/admin/skin.rb +1 -1
  65. data/test/nitro/CONFIG.rb +3 -0
  66. data/test/nitro/adapter/tc_webrick.rb +1 -1
  67. data/test/nitro/cgi/tc_cookie.rb +1 -1
  68. data/test/nitro/cgi/tc_request.rb +5 -5
  69. data/test/nitro/compiler/tc_client_morpher.rb +47 -0
  70. data/test/nitro/compiler/tc_compiler.rb +2 -0
  71. data/test/nitro/helper/tc_feed.rb +138 -0
  72. data/test/nitro/helper/tc_pager.rb +1 -1
  73. data/test/nitro/helper/tc_rss.rb +1 -1
  74. data/test/nitro/helper/tc_table.rb +1 -1
  75. data/test/nitro/helper/tc_xhtml.rb +1 -1
  76. data/test/nitro/tc_caching.rb +1 -1
  77. data/test/nitro/tc_cgi.rb +1 -1
  78. data/test/nitro/tc_context.rb +1 -1
  79. data/test/nitro/tc_controller.rb +31 -3
  80. data/test/nitro/tc_controller_aspect.rb +1 -1
  81. data/test/nitro/tc_dispatcher.rb +1 -1
  82. data/test/nitro/tc_element.rb +1 -1
  83. data/test/nitro/tc_flash.rb +1 -1
  84. data/test/nitro/tc_helper.rb +1 -1
  85. data/test/nitro/tc_render.rb +6 -6
  86. data/test/nitro/tc_router.rb +8 -4
  87. data/test/nitro/tc_server.rb +1 -3
  88. data/test/nitro/tc_session.rb +1 -3
  89. metadata +107 -104
  90. data/Rakefile +0 -232
  91. data/lib/nitro/adapter/acgi.rb +0 -237
  92. data/proto/public/Makefile.acgi +0 -40
  93. data/proto/public/acgi.c +0 -138
@@ -1,40 +0,0 @@
1
- ruby=ruby
2
-
3
- all : acgi.cgi ipc
4
-
5
- acgi.cgi: acgi
6
- mv ./acgi ./acgi.cgi
7
- chmod 755 ./acgi.cgi
8
-
9
- ipc:
10
- mkdir /tmp/acgi_ipc/ > /dev/null 2>&1 || true
11
- chmod 777 /tmp/acgi_ipc/ > /dev/null 2>&1 || true
12
- mkfifo /tmp/acgi_ipc/server.commands > /dev/null 2>&1 || true
13
- mkfifo /tmp/acgi_ipc/server.environment > /dev/null 2>&1 || true
14
- mkfifo /tmp/acgi_ipc/server.stdin > /dev/null 2>&1 || true
15
- mkfifo /tmp/acgi_ipc/server.stdout > /dev/null 2>&1 || true
16
- mkfifo /tmp/acgi_ipc/server.stderr > /dev/null 2>&1 || true
17
- touch /tmp/acgi_ipc/client.lock > /dev/null 2>&1 || true
18
- touch /tmp/acgi_ipc/server.lock > /dev/null 2>&1 || true
19
- chmod 777 /tmp/acgi_ipc/* > /dev/null 2>&1 || true
20
- chmod 777 /tmp/acgi_ipc/ > /dev/null 2>&1 || true
21
- chmod 777 . > /dev/null 2>&1 || true
22
-
23
- clean:
24
- rm -f acgi.cgi
25
- rm -rf /tmp/acgi_ipc
26
-
27
- start:
28
- server.cgi start
29
-
30
- stop:
31
- server.cgi stop
32
-
33
- restart:
34
- server.cgi restart
35
-
36
- pid:
37
- server.cgi pid
38
-
39
- status:
40
- server.cgi status
@@ -1,138 +0,0 @@
1
- #include <stdlib.h>
2
- #include <stdio.h>
3
- #include <fcntl.h>
4
- #include <unistd.h>
5
-
6
-
7
- #define BUF_SIZE 8192
8
- //#define STRING(str) #str
9
- //#define BUF_FILL_FORMAT "%" STRING(BUF_SIZE) "c"
10
- #define BUF_FILL_FORMAT "%8192c"
11
-
12
- #define IPC_DIR "/tmp/acgi_ipc"
13
- #define PATH_SEPARATOR "/"
14
-
15
- #define CLIENT_LOCK_PATH IPC_DIR PATH_SEPARATOR "client.lock"
16
- #define SERVER_LOCK_PATH IPC_DIR PATH_SEPARATOR "server.lock"
17
- #define SERVER_ENVIRONMENT_PATH IPC_DIR PATH_SEPARATOR "server.environment"
18
- #define SERVER_STDIN_PATH IPC_DIR PATH_SEPARATOR "server.stdin"
19
- #define SERVER_STDOUT_PATH IPC_DIR PATH_SEPARATOR "server.stdout"
20
- #define SERVER_STDERR_PATH IPC_DIR PATH_SEPARATOR "server.stderr"
21
-
22
- //#define SERVER_RB "nohup ruby ../run.rb </dev/null >/dev/null 2>&1 &"
23
- #define SERVER_RB "ruby ../run.rb"
24
-
25
- static int argc;
26
- static char **argv;
27
- static char **env;
28
- static FILE *fs_client_lock;
29
- static FILE *fs_server_lock;
30
- static FILE *fs_environment;
31
- static FILE *fs_stdin;
32
- static FILE *fs_stderr;
33
- static FILE *fs_stdout;
34
- static struct flock lock;
35
- static char **e;
36
- static char buf[BUF_SIZE];
37
- static int n;
38
-
39
- static void
40
- ensure_server_running ()
41
- {
42
- int ret;
43
- char *cmd;
44
- fs_server_lock = fopen (SERVER_LOCK_PATH, "w");
45
- lock.l_type = F_WRLCK;
46
- if(fcntl (fileno (fs_server_lock), F_SETLK, &lock) == 0)
47
- {
48
- cmd = SERVER_RB;
49
- system (cmd);
50
- lock.l_type = F_UNLCK;
51
- fcntl (fileno (fs_server_lock), F_SETLKW, &lock);
52
- flock(fileno(fs_server_lock), (LOCK_UN|LOCK_NB));
53
- }
54
- }
55
- static void
56
- aquire_lock ()
57
- {
58
- fs_client_lock = fopen (CLIENT_LOCK_PATH, "w");
59
- lock.l_type = F_WRLCK;
60
- fcntl (fileno (fs_client_lock), F_SETLKW, &lock);
61
- }
62
- static void
63
- send_env ()
64
- {
65
- fs_environment = fopen (SERVER_ENVIRONMENT_PATH, "w");
66
- for (e = env; *e; e++)
67
- {
68
- fprintf (fs_environment, "%s%c", *e, '\0');
69
- }
70
- fclose (fs_environment);
71
- }
72
- static void
73
- send_stdin ()
74
- {
75
- buf[0] = n = 0;
76
- fs_stdin = fopen (SERVER_STDIN_PATH, "w");
77
- while ((n = fscanf (stdin, BUF_FILL_FORMAT, &buf[0])) > 0)
78
- {
79
- fprintf (fs_stdin, "%*s", n, buf);
80
- }
81
- fclose (fs_stdin);
82
- }
83
- static void
84
- open_stdout_and_stderr ()
85
- {
86
- fs_stdout = fopen (SERVER_STDOUT_PATH, "r");
87
- fs_stderr = fopen (SERVER_STDERR_PATH, "r");
88
- }
89
- static void
90
- receive_stdout ()
91
- {
92
- buf[0] = n = 0;
93
- while ((n = fscanf (fs_stdout, BUF_FILL_FORMAT, &buf[0])) > 0)
94
- {
95
- fprintf (stdout, "%*s", n, buf);
96
- }
97
- fclose (fs_stdout);
98
- }
99
- static void
100
- receive_stderr ()
101
- {
102
- buf[0] = n = 0;
103
- while ((n = fscanf (fs_stderr, BUF_FILL_FORMAT, &buf[0])) > 0)
104
- {
105
- fprintf (stderr, "%*s", n, buf);
106
- }
107
- fclose (fs_stderr);
108
- }
109
- static void
110
- release_lock ()
111
- {
112
- lock.l_type = F_UNLCK;
113
- fcntl (fileno (fs_client_lock), F_SETLK, &lock);
114
- }
115
-
116
- int
117
- main (__argc, __argv, __env)
118
- int __argc;
119
- char **__argv;
120
- char **__env;
121
- {
122
- argc = __argc;
123
- argv = __argv;
124
- env = __env;
125
-
126
- putenv ("ACGI_SERVER=1");
127
- putenv ("NITRO_INVOKE=acgi_proc");
128
-
129
- ensure_server_running ();
130
- aquire_lock ();
131
- send_env ();
132
- send_stdin ();
133
- open_stdout_and_stderr ();
134
- receive_stdout ();
135
- receive_stderr ();
136
- release_lock ();
137
- return 0;
138
- }