nitro 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. data/AUTHORS +3 -0
  2. data/ChangeLog +83 -0
  3. data/LICENCE +8 -8
  4. data/README +5 -1
  5. data/RELEASES +9 -0
  6. data/Rakefile +43 -23
  7. data/bin/cluster.rb +15 -12
  8. data/examples/ndb/README +5 -0
  9. data/examples/ndb/run.rb +271 -0
  10. data/examples/simple/README +27 -0
  11. data/examples/simple/app.rb +2 -2
  12. data/examples/simple/conf/config.rb +3 -8
  13. data/examples/simple/conf/debug-config.rb +6 -7
  14. data/examples/simple/conf/live-config.rb +2 -4
  15. data/examples/simple/conf/requires.rb +2 -10
  16. data/examples/simple/ctl +1 -1
  17. data/examples/simple/env.rb +2 -2
  18. data/examples/simple/root/article-form.ss +1 -1
  19. data/examples/simple/root/comments-form.ss +1 -1
  20. data/examples/tiny/README +15 -0
  21. data/examples/tiny/app.rb +2 -2
  22. data/examples/tiny/conf/config.rb +8 -13
  23. data/examples/tiny/conf/requires.rb +2 -8
  24. data/examples/tiny/ctl +2 -17
  25. data/examples/tiny/root/index.sx +1 -1
  26. data/lib/n/app/cluster.rb +15 -12
  27. data/lib/n/app/cookie.rb +10 -9
  28. data/lib/n/app/filters/autologin.rb +5 -4
  29. data/lib/n/app/fragment.rb +13 -10
  30. data/lib/n/app/handlers.rb +29 -22
  31. data/lib/n/app/handlers/code-handler.rb +2 -4
  32. data/lib/n/app/handlers/page-handler.rb +3 -5
  33. data/lib/n/app/request-part.rb +2 -7
  34. data/lib/n/app/request.rb +27 -22
  35. data/lib/n/app/script.rb +4 -15
  36. data/lib/n/app/server.rb +11 -7
  37. data/lib/n/app/session.rb +7 -11
  38. data/lib/n/app/user.rb +10 -11
  39. data/lib/n/app/webrick-servlet.rb +23 -10
  40. data/lib/n/app/webrick.rb +13 -10
  41. data/lib/n/application.rb +13 -6
  42. data/lib/n/config.rb +18 -7
  43. data/lib/n/db.rb +56 -40
  44. data/lib/n/db/connection.rb +18 -22
  45. data/lib/n/db/managed.rb +6 -8
  46. data/lib/n/db/mixins.rb +4 -7
  47. data/lib/n/db/mysql.rb +6 -3
  48. data/lib/n/db/psql.rb +15 -10
  49. data/lib/n/db/tools.rb +5 -9
  50. data/lib/n/db/utils.rb +11 -8
  51. data/lib/n/events.rb +14 -10
  52. data/lib/n/logger.rb +8 -2
  53. data/lib/n/macros.rb +5 -2
  54. data/lib/n/parts.rb +13 -10
  55. data/lib/n/properties.rb +17 -12
  56. data/lib/n/server.rb +3 -2
  57. data/lib/n/server/filter.rb +2 -4
  58. data/lib/n/shaders.rb +11 -13
  59. data/lib/n/sitemap.rb +23 -20
  60. data/lib/n/std.rb +15 -4
  61. data/lib/n/sync/clc.rb +4 -2
  62. data/lib/n/sync/handler.rb +20 -12
  63. data/lib/n/sync/server.rb +24 -18
  64. data/lib/n/ui/date-select.rb +2 -4
  65. data/lib/n/ui/pager.rb +10 -8
  66. data/lib/n/ui/popup.rb +5 -4
  67. data/lib/n/ui/select.rb +3 -4
  68. data/lib/n/ui/tabs.rb +3 -4
  69. data/lib/n/utils/array.rb +6 -14
  70. data/lib/n/utils/cache.rb +3 -7
  71. data/lib/n/utils/gfx.rb +5 -6
  72. data/lib/n/utils/hash.rb +7 -12
  73. data/lib/n/utils/html.rb +8 -4
  74. data/lib/n/utils/http.rb +10 -6
  75. data/lib/n/utils/mail.rb +6 -6
  76. data/lib/n/utils/number.rb +3 -4
  77. data/lib/n/utils/pool.rb +5 -8
  78. data/lib/n/utils/string.rb +12 -10
  79. data/lib/n/utils/template.rb +3 -5
  80. data/lib/n/utils/time.rb +7 -5
  81. data/lib/n/utils/uri.rb +5 -4
  82. data/lib/p/README +1 -0
  83. data/lib/xsl/xforms.xsl +2 -0
  84. data/test/n/app/tc_cookie.rb +34 -0
  85. data/test/n/app/tc_request.rb +70 -0
  86. data/test/n/app/tc_requestpart.rb +28 -0
  87. data/test/n/app/tc_session.rb +34 -0
  88. data/test/n/tc_db.rb +223 -0
  89. data/test/n/tc_db_mysql.rb +241 -0
  90. data/test/n/tc_events.rb +44 -0
  91. data/test/n/tc_properties.rb +68 -0
  92. data/test/n/tc_sitemap.rb +37 -0
  93. data/test/n/ui/tc_pager.rb +52 -0
  94. data/test/n/utils/tc_cache.rb +47 -0
  95. data/test/n/utils/tc_hash.rb +39 -0
  96. data/test/n/utils/tc_html.rb +79 -0
  97. data/test/n/utils/tc_http.rb +18 -0
  98. data/test/n/utils/tc_number.rb +21 -0
  99. data/test/n/utils/tc_strings.rb +149 -0
  100. data/test/n/utils/tc_uri.rb +100 -0
  101. metadata +49 -22
  102. data/doc/css.txt +0 -20
  103. data/doc/ideas.txt +0 -120
  104. data/doc/pg.txt +0 -47
  105. data/doc/svn.txt +0 -82
  106. data/doc/todo.txt +0 -30
  107. data/examples/simple/conf/overrides.rb +0 -9
  108. data/examples/simple/logs/access_log +0 -2
  109. data/examples/simple/logs/apache.log +0 -3
  110. data/examples/simple/logs/app.log +0 -1
  111. data/examples/simple/logs/events.log +0 -1
  112. data/examples/tiny/conf/apache.conf +0 -100
  113. data/examples/tiny/logs/access_log +0 -9
  114. data/examples/tiny/logs/apache.log +0 -9
  115. data/lib/n/db/make-release.sh +0 -26
  116. data/lib/n/tools/README +0 -11
  117. data/lib/xsl/ce.xsl +0 -30
  118. data/lib/xsl/localization.xsl +0 -23
  119. data/test/run.rb +0 -95
@@ -0,0 +1,39 @@
1
+ # :nodoc: all
2
+
3
+ require "test/unit"
4
+ require "n/utils/cache"
5
+
6
+ class TC_N2_Utils_Cache < Test::Unit::TestCase
7
+ # :nodoc: all
8
+ include N
9
+
10
+ def setup
11
+ @safe_cache = SafeHash.new(Hash.new)
12
+ end
13
+
14
+ def teardown
15
+ @safe_cache = nil
16
+ end
17
+
18
+ def test_safe_cache
19
+ assert_equal(nil, @safe_cache["no_item"])
20
+ item1 = "item1"
21
+ @safe_cache["key1"] = item1
22
+ assert_equal(item1, @safe_cache["key1"])
23
+
24
+ @safe_cache["rem1"] = item1
25
+ @safe_cache.delete("rem1")
26
+ assert_equal(nil, @safe_cache["rem1"])
27
+
28
+ @safe_cache.clear()
29
+ assert_equal(0, @safe_cache.size)
30
+
31
+ @safe_cache["i1"] = "i1"
32
+ @safe_cache["i2"] = "i1"
33
+ @safe_cache["i3"] = "i1"
34
+ assert_equal(3, @safe_cache.size)
35
+
36
+ assert_equal(3, @safe_cache.values.size)
37
+ end
38
+
39
+ end
@@ -0,0 +1,79 @@
1
+
2
+ require "test/unit"
3
+ require "n/utils/html"
4
+
5
+ include N
6
+
7
+ class TC_HtmlUtils < Test::Unit::TestCase
8
+ # :nodoc: all
9
+
10
+ def test_escape
11
+ assert_equal("&lt;b&gt;test&lt;/b&gt;", HtmlUtils::escape("<b>test</b>"))
12
+ assert_equal("&lt;p&gt;test", HtmlUtils::escape("<p>test"))
13
+ assert_equal("", HtmlUtils::escape(""))
14
+ assert_equal(nil, HtmlUtils::escape(nil))
15
+ end
16
+
17
+ def test_expand_urls
18
+ s = "visit http://www.navel.gr"
19
+ r = "visit <a href='http://www.navel.gr'>http://www.navel.gr</a>"
20
+ assert_equal(r, HtmlUtils::expand_urls(s))
21
+
22
+ s = "visit www.navel.gr"
23
+ r = "visit <a href='http://www.navel.gr'>http://www.navel.gr</a>"
24
+ assert_equal(r, HtmlUtils::expand_urls(s))
25
+
26
+ assert_equal(nil, HtmlUtils::expand_urls(nil))
27
+
28
+ s = "visit: www.navel.gr"
29
+ r = "visit: <a href='http://www.navel.gr'>http://www.navel.gr</a>"
30
+ assert_equal(r, HtmlUtils::expand_urls(s))
31
+ end
32
+
33
+ def test_only_safe_tags
34
+ s = "<table>lala</table>"
35
+ r = "&lt;table&gt;lala&lt;/table&gt;"
36
+ assert_equal(r, HtmlUtils::only_safe_tags(s))
37
+
38
+ # bug: img is NOT A SAFE tag, fucks up layout
39
+ s = "<a href='lala'<img src='koko'><table>"
40
+ # lala is quoted because it belongs in an open tag!
41
+ r = "<a href=&#39;lala&#39;>&lt;img src=&#39;koko&#39;&gt;&lt;table&gt;"
42
+ assert_equal(r, HtmlUtils::only_safe_tags(s))
43
+
44
+ s = "<a href='lala'><img src='koko'><table>"
45
+ # lala is not quoted because it belongs in a valid tag!
46
+ r = "<a href=&#39;lala&#39;>&lt;img src=&#39;koko&#39;&gt;&lt;table&gt;"
47
+ assert_equal(r, HtmlUtils::only_safe_tags(s))
48
+
49
+ s = "<a href='lala'<table<bar<koko"
50
+ # lala is quoted because it belongs in an open tag!
51
+ r = "<a href=&#39;lala&#39;>&lt;table&gt;&lt;bar&gt;&lt;koko"
52
+ assert_equal(r, HtmlUtils::only_safe_tags(s))
53
+
54
+ s = "<a href='lala'<foo>text<bar<koko"
55
+ # lala is quoted because it belongs in an open tag!
56
+ r = "<a href=&#39;lala&#39;>&lt;foo&gt;text&lt;bar&gt;&lt;koko"
57
+ assert_equal(r, HtmlUtils::only_safe_tags(s))
58
+
59
+ # bug: open ' quotes fuckup the html
60
+ s = "<tr><td><a href='koko</td></tr>"
61
+ r = "&lt;tr&gt;&lt;td&gt;<a href=&#39;koko>&lt;/td&gt;&lt;/tr&gt;"
62
+ assert_equal(r, HtmlUtils::only_safe_tags(s))
63
+
64
+ # open quotes on valid tag
65
+ s = "<a href='koko>kokok</a>"
66
+ r = "<a href=&#39;koko>kokok</a>"
67
+ assert_equal(r, HtmlUtils::only_safe_tags(s))
68
+
69
+ assert_equal(nil, HtmlUtils::only_safe_tags(nil))
70
+ end
71
+
72
+ def test_convert_newlines
73
+ # bug:
74
+
75
+ assert_equal(nil, HtmlUtils::convert_newlines(nil))
76
+ assert_equal(nil, HtmlUtils::convert_newlines(""))
77
+ end
78
+
79
+ end
@@ -0,0 +1,18 @@
1
+ require "test/unit"
2
+ require "n/utils/http"
3
+
4
+ class TC_HttpUtils < Test::Unit::TestCase
5
+ # :nodoc: all
6
+
7
+ def setup
8
+ end
9
+
10
+ def teardown
11
+ end
12
+
13
+ def test_time_to_string
14
+ r = N::HttpUtils.time_to_string(Time.now)
15
+ assert_match(/GMT/, r)
16
+ end
17
+
18
+ end
@@ -0,0 +1,21 @@
1
+ # :nodoc: all
2
+
3
+ require "test/unit"
4
+ require "n/utils/number"
5
+
6
+ class TC_N_NumberUtils < Test::Unit::TestCase
7
+ # :nodoc: all
8
+ include N
9
+
10
+ def setup
11
+ end
12
+
13
+ def teardown
14
+ end
15
+
16
+ def test_ceil_multiple
17
+ assert_equal(20, NumberUtils.ceil_multiple(15, 10))
18
+ assert_equal(10, NumberUtils.ceil_multiple(1, 10))
19
+ end
20
+
21
+ end
@@ -0,0 +1,149 @@
1
+ # :nodoc: all
2
+
3
+ require "test/unit"
4
+ require "n/utils/string"
5
+
6
+ class TC_StringUtilsUtils < Test::Unit::TestCase
7
+ # :nodoc: all
8
+ include N
9
+
10
+ def setup
11
+ @s = "this is any cool test"
12
+ end
13
+
14
+ def test_valid?
15
+ assert_equal(true, StringUtils.valid?("test"))
16
+ assert_equal(false, StringUtils.valid?(""))
17
+ assert_equal(false, StringUtils.valid?(nil))
18
+ end
19
+
20
+ def test_head
21
+ assert_equal(nil, StringUtils.head(nil))
22
+ assert_equal("this...", StringUtils.head(@s, 3))
23
+ assert_equal("this+++", StringUtils.head(@s, 3, false, "+++"))
24
+ assert_equal("thi...", StringUtils.head(@s, 3, true))
25
+ assert_equal("this is...", StringUtils.head(@s, 8))
26
+ assert_equal(nil, StringUtils.head(@s, 0))
27
+ assert_equal(nil, StringUtils.head(@s, 0, true))
28
+ assert_equal("this is...", StringUtils.head(@s, 8, true))
29
+ end
30
+
31
+ def test_rewrite
32
+ rules = [
33
+ [/\/\$/, "../n1"],
34
+ [/\$/, "../n1"],
35
+ [/^games/, "../../games"],
36
+ [/^tmp/, "/n/theseas/var/tmp"],
37
+ ]
38
+ string = StringUtils.rewrite("games/arkanoid.html", rules)
39
+ assert_equal("../../games/arkanoid.html", string)
40
+ string = StringUtils.rewrite("tmp/garbage.html", rules)
41
+ assert_equal("/n/theseas/var/tmp/garbage.html", string)
42
+ string = StringUtils.rewrite("root/index.html", rules)
43
+ assert_equal("root/index.html", string)
44
+ assert_equal(nil, StringUtils.rewrite(nil, rules))
45
+ assert_equal("", StringUtils.rewrite("", rules))
46
+
47
+ assert_raises(ArgumentError) {
48
+ assert_equal("koko", StringUtils.rewrite("koko", nil))
49
+ }
50
+
51
+ # bug: should keep order
52
+ s = StringUtils.rewrite("/$/koko.html", rules)
53
+ assert_equal("../n1/koko.html", s)
54
+ end
55
+
56
+ def test_wrap
57
+ s = "1234567890abcdefghijklmnopqrstu"
58
+ r = "1234 5678 90ab cdef ghij klmn opqr stu"
59
+ assert_equal(r, StringUtils::wrap(s, 4, " "))
60
+
61
+ s = "111111111111111111111111111111111111111111111111"
62
+ r = "1111111111 1111111111 1111111111 1111111111 11111111"
63
+ assert_equal(r, StringUtils::wrap(s, 10, " "))
64
+
65
+ s = "jackdaws love my big sphinx of quartz"
66
+ r = "jackdaws love my big sphinx of quartz"
67
+ assert_equal(r, StringUtils::wrap(s, 10, " "))
68
+
69
+ s = "jackdaws love my big sphinx of quartz"
70
+ r = "jack daws love my big sphi nx of quar tz"
71
+ assert_equal(r, StringUtils::wrap(s, 4, " "))
72
+
73
+ s = "jack.daws love my big sphinx of quartz"
74
+ r = "jack .daw s love my big sphi nx of quar tz"
75
+ assert_equal(r, StringUtils::wrap(s, 4, " "))
76
+
77
+ assert_equal("", StringUtils::wrap("", 4, " "))
78
+ assert_equal(nil, StringUtils::wrap(nil, 4, " "))
79
+ end
80
+
81
+ def test_extension_from_path
82
+ assert_equal(nil, StringUtils.extension_from_path(nil))
83
+ assert_equal(nil, StringUtils.extension_from_path("this is a dymy text!"))
84
+ assert_equal("gif", StringUtils.extension_from_path("gmosx.gif"))
85
+ assert_equal("gif", StringUtils.extension_from_path("/n/images/gmosx.gif"))
86
+ assert_equal(nil, StringUtils.extension_from_path("/n/images/gmosx."))
87
+ assert_equal("rx", StringUtils.extension_from_path("/n/images/gmosx.gif.rx"))
88
+ assert_equal("rx", StringUtils.extension_from_path("*parts/polls/poll-box.rx"))
89
+ assert_equal("rx", StringUtils.extension_from_path("../n1/web/parts/polls/poll-box.rx"))
90
+ end
91
+
92
+ def test_filename_from_path
93
+ assert_equal("gmosx", StringUtils.filename_from_path("gmosx.gif"))
94
+ filename = StringUtils.filename_from_path("/n/images/gmosx.gif")
95
+ assert_equal("/n/images/gmosx", filename)
96
+ filename = StringUtils.filename_from_path(nil)
97
+ assert_equal("", filename)
98
+ filename = StringUtils.filename_from_path("/n/images/gmosx")
99
+ assert_equal("/n/images/gmosx", filename)
100
+ end
101
+
102
+ def test_file_from_path
103
+ file = StringUtils.file_from_path("/n/images/gmosx.gif")
104
+ assert_equal("gmosx.gif", file)
105
+ file = StringUtils.file_from_path(nil)
106
+ assert_equal("", file)
107
+ file = StringUtils.file_from_path("/n/images/gmosx")
108
+ assert_equal("gmosx", file)
109
+ end
110
+
111
+ def test_directory_from_path
112
+ directory = StringUtils.directory_from_path("/n/images/gmosx.gif")
113
+ assert_equal("/n/images", directory)
114
+ directory = StringUtils.directory_from_path(nil)
115
+ assert_equal("", directory)
116
+ directory = StringUtils.directory_from_path("/n/images/gmosx")
117
+ assert_equal("/n/images", directory)
118
+ end
119
+
120
+ def test_rationalize_filename
121
+ filename = StringUtils.rationalize_filename("hello my friend!.gif")
122
+ assert_equal("hello-my-friend.gif", filename)
123
+ filename = StringUtils.rationalize_filename("���� ����.gif")
124
+ assert_equal("pame-pali.gif", filename)
125
+ filename = StringUtils.rationalize_filename("�� ���.gif")
126
+ assert_equal("ti-les.gif", filename)
127
+
128
+ # bug:
129
+ filename = StringUtils.rationalize_filename("image-(10).gif")
130
+ assert_equal("image-10.gif", filename)
131
+ end
132
+
133
+ def test_random_string
134
+ s1 = StringUtils.random()
135
+ s2 = StringUtils.random()
136
+ assert_not_equal(s1, s2)
137
+ assert(s1.size == s2.size)
138
+ end
139
+
140
+ def test_unicode_to_iso88597
141
+ # check that dup works.
142
+ s = "Original"
143
+ assert_equal("Original", StringUtils.unicode_to_iso88597(s))
144
+ end
145
+
146
+ def teardown
147
+ @s = nil
148
+ end
149
+ end
@@ -0,0 +1,100 @@
1
+ require "test/unit"
2
+ require "n/utils/uri"
3
+
4
+ include N
5
+
6
+ class Dummy
7
+ # :nodoc: all
8
+ attr_accessor :test1, :test2
9
+ end
10
+
11
+ class TC_Uri < Test::Unit::TestCase
12
+ # :nodoc: all
13
+
14
+ def test_query_string_to_hash
15
+ # bad query string
16
+
17
+ assert_equal(0, UriUtils.query_string_to_hash("").length)
18
+ assert_equal(0, UriUtils.query_string_to_hash(nil).length)
19
+
20
+ # single valued
21
+
22
+ parameters = UriUtils.query_string_to_hash("koko=2&lala=3")
23
+ assert_equal("2", parameters["koko"])
24
+ assert_equal("3", parameters["lala"])
25
+
26
+ parameters = UriUtils.query_string_to_hash("koko=2;lala=3")
27
+ assert_equal("2", parameters["koko"])
28
+ assert_equal("3", parameters["lala"])
29
+
30
+ # multivalued
31
+
32
+ parameters = UriUtils.query_string_to_hash("koko=2;lala=3&koko=5")
33
+ assert_equal(2, parameters["koko"].length)
34
+ assert_equal("2", parameters["koko"][0])
35
+ assert_equal("3", parameters["lala"])
36
+ assert_equal("5", parameters["koko"][1])
37
+
38
+ # non existing value
39
+ assert_equal(nil, parameters["non-existing-value"])
40
+ end
41
+
42
+ def test_hash_to_query_string
43
+ hash = { "koko" => 1, "lala" => 2}
44
+ qs = "koko=1;lala=2"
45
+ assert_equal(qs, UriUtils.hash_to_query_string(hash))
46
+
47
+ assert_equal(nil, UriUtils.hash_to_query_string(nil))
48
+
49
+ # bug: dont encode complex objects
50
+ hash = { "a" => 2, "b" => 3, "c" => Dummy.new }
51
+ qs = "a=2;b=3"
52
+ assert_equal(qs, UriUtils.hash_to_query_string(hash))
53
+ end
54
+
55
+ def test_get_query_string
56
+ uri = "people/gmosx.sx?koko=1;lala=2"
57
+ assert_equal("koko=1;lala=2", UriUtils.get_query_string(uri))
58
+
59
+ uri = "http://www.navel.gr/people/gmosx.sx?koko=1&lala=2"
60
+ assert_equal("koko=1&lala=2", UriUtils.get_query_string(uri))
61
+
62
+ uri = "http://www.navel.gr:8080/people/gmosx.sx?koko=1;lala=2"
63
+ assert_equal("koko=1;lala=2", UriUtils.get_query_string(uri))
64
+ end
65
+
66
+ def test_chomp_query_string
67
+ uri = "people/gmosx.sx"
68
+ assert_equal("people/gmosx.sx", UriUtils.chomp_query_string(uri))
69
+
70
+ uri = "people/gmosx.sx?koko=1;lala=2"
71
+ assert_equal("people/gmosx.sx", UriUtils.chomp_query_string(uri))
72
+
73
+ uri = "http://www.navel.gr/people/gmosx.sx?koko=1&lala=2"
74
+ assert_equal("http://www.navel.gr/people/gmosx.sx", UriUtils.chomp_query_string(uri))
75
+
76
+ uri = "http://www.navel.gr:8080/people/gmosx.sx?koko=1;lala=2"
77
+ assert_equal("http://www.navel.gr:8080/people/gmosx.sx", UriUtils.chomp_query_string(uri))
78
+
79
+ assert_equal(nil, UriUtils.chomp_query_string(nil))
80
+ end
81
+
82
+ def test_update_query_string
83
+ uri = "ko/index.sx?koko=1"
84
+ hash = {"lala" => 2, "kaka" => 3}
85
+ assert_equal("ko/index.sx?koko=1;lala=2;kaka=3", UriUtils.update_query_string(uri, hash))
86
+
87
+ uri = "http://www.navel.gr:8080/ko/index.sx?koko=1"
88
+ hash = {"lala" => 2, "kaka" => 3}
89
+ assert_equal("http://www.navel.gr:8080/ko/index.sx?koko=1;lala=2;kaka=3", UriUtils.update_query_string(uri, hash))
90
+
91
+ uri = "http://www.navel.gr"
92
+ hash = {"lala" => 2, "kaka" => 3}
93
+ assert_equal("http://www.navel.gr?lala=2;kaka=3", UriUtils.update_query_string(uri, hash))
94
+
95
+ # bug: no ? when passed an empty hash
96
+ uri = "http://www.navel.gr"
97
+ assert_equal("http://www.navel.gr", UriUtils.update_query_string(uri, {}))
98
+ end
99
+
100
+ end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.1
3
3
  specification_version: 1
4
4
  name: nitro
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.2
7
- date: 2004-10-21
6
+ version: 0.2.0
7
+ date: 2004-10-25
8
8
  summary: Web Engine
9
9
  require_paths:
10
10
  - lib
@@ -36,16 +36,15 @@ files:
36
36
  - etc/new-project.rb
37
37
  - examples/tiny
38
38
  - examples/simple
39
+ - examples/ndb
39
40
  - examples/tiny/conf
40
41
  - examples/tiny/app.rb
41
42
  - examples/tiny/logs
42
43
  - examples/tiny/root
44
+ - examples/tiny/README
43
45
  - examples/tiny/ctl
44
46
  - examples/tiny/conf/requires.rb
45
- - examples/tiny/conf/apache.conf
46
47
  - examples/tiny/conf/config.rb
47
- - examples/tiny/logs/apache.log
48
- - examples/tiny/logs/access_log
49
48
  - examples/tiny/root/index.sx
50
49
  - examples/simple/conf
51
50
  - examples/simple/app.rb
@@ -56,16 +55,11 @@ files:
56
55
  - examples/simple/README
57
56
  - examples/simple/ctl
58
57
  - examples/simple/lib
59
- - examples/simple/conf/overrides.rb
60
58
  - examples/simple/conf/requires.rb
61
59
  - examples/simple/conf/apache.conf
62
60
  - examples/simple/conf/live-config.rb
63
61
  - examples/simple/conf/config.rb
64
62
  - examples/simple/conf/debug-config.rb
65
- - examples/simple/logs/events.log
66
- - examples/simple/logs/apache.log
67
- - examples/simple/logs/access_log
68
- - examples/simple/logs/app.log
69
63
  - examples/simple/root/comments-form.ss
70
64
  - examples/simple/root/view-article.sx
71
65
  - examples/simple/root/comments.si
@@ -81,12 +75,9 @@ files:
81
75
  - examples/simple/lib/articles/part.rb
82
76
  - examples/simple/lib/articles/entities.rb
83
77
  - examples/simple/lib/articles/methods.rb
84
- - doc/todo.txt
78
+ - examples/ndb/run.rb
79
+ - examples/ndb/README
85
80
  - doc/bugs.txt
86
- - doc/css.txt
87
- - doc/ideas.txt
88
- - doc/pg.txt
89
- - doc/svn.txt
90
81
  - doc/architecture.txt
91
82
  - lib/n
92
83
  - lib/xsl
@@ -105,7 +96,6 @@ files:
105
96
  - lib/n/events.rb
106
97
  - lib/n/mixins.rb
107
98
  - lib/n/l10n.rb
108
- - lib/n/tools
109
99
  - lib/n/ui
110
100
  - lib/n/application.rb
111
101
  - lib/n/config.rb
@@ -142,7 +132,6 @@ files:
142
132
  - lib/n/utils/string.rb
143
133
  - lib/n/utils/http.rb
144
134
  - lib/n/utils/hash.rb
145
- - lib/n/db/make-release.sh
146
135
  - lib/n/db/tools.rb
147
136
  - lib/n/db/connection.rb
148
137
  - lib/n/db/psql.rb
@@ -157,17 +146,35 @@ files:
157
146
  - lib/n/server/RESEARCH.txt
158
147
  - lib/n/server/PLAYBACK.txt
159
148
  - lib/n/server/filter.rb
160
- - lib/n/tools/README
161
149
  - lib/n/ui/popup.rb
162
150
  - lib/n/ui/select.rb
163
151
  - lib/n/ui/date-select.rb
164
152
  - lib/n/ui/tabs.rb
165
153
  - lib/n/ui/pager.rb
166
- - lib/xsl/localization.xsl
167
- - lib/xsl/ce.xsl
168
154
  - lib/xsl/xforms.xsl
169
155
  - lib/xsl/base.xsl
170
- - test/run.rb
156
+ - lib/p/README
157
+ - test/n
158
+ - test/n/app
159
+ - test/n/tc_db.rb
160
+ - test/n/utils
161
+ - test/n/tc_sitemap.rb
162
+ - test/n/tc_events.rb
163
+ - test/n/ui
164
+ - test/n/tc_db_mysql.rb
165
+ - test/n/tc_properties.rb
166
+ - test/n/app/tc_requestpart.rb
167
+ - test/n/app/tc_cookie.rb
168
+ - test/n/app/tc_session.rb
169
+ - test/n/app/tc_request.rb
170
+ - test/n/utils/tc_cache.rb
171
+ - test/n/utils/tc_hash.rb
172
+ - test/n/utils/tc_http.rb
173
+ - test/n/utils/tc_strings.rb
174
+ - test/n/utils/tc_html.rb
175
+ - test/n/utils/tc_uri.rb
176
+ - test/n/utils/tc_number.rb
177
+ - test/n/ui/tc_pager.rb
171
178
  test_files: []
172
179
  rdoc_options:
173
180
  - "--main"
@@ -184,4 +191,24 @@ extra_rdoc_files:
184
191
  executables: []
185
192
  extensions: []
186
193
  requirements: []
187
- dependencies: []
194
+ dependencies:
195
+ - !ruby/object:Gem::Dependency
196
+ name: postgres
197
+ version_requirement:
198
+ version_requirements: !ruby/object:Gem::Version::Requirement
199
+ requirements:
200
+ -
201
+ - ">="
202
+ - !ruby/object:Gem::Version
203
+ version: 0.7.1
204
+ version:
205
+ - !ruby/object:Gem::Dependency
206
+ name: extensions
207
+ version_requirement:
208
+ version_requirements: !ruby/object:Gem::Version::Requirement
209
+ requirements:
210
+ -
211
+ - ">="
212
+ - !ruby/object:Gem::Version
213
+ version: "0.5"
214
+ version: