nitro 0.3.0 → 0.4.1

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 (148) hide show
  1. data/ChangeLog +284 -0
  2. data/{LICENCE → LICENSE} +1 -1
  3. data/README +13 -17
  4. data/RELEASES +13 -1
  5. data/Rakefile +1 -9
  6. data/bin/cluster.rb +5 -5
  7. data/examples/blog/README +45 -0
  8. data/examples/blog/apache.conf +0 -0
  9. data/examples/blog/app.rb +21 -0
  10. data/examples/blog/config.rb +88 -0
  11. data/examples/blog/lib/blog.rb +104 -0
  12. data/examples/blog/log/app.log +117 -0
  13. data/examples/blog/root/comments.xhtml +38 -0
  14. data/examples/blog/root/entry_form.xhtml +18 -0
  15. data/examples/blog/root/index.xhtml +43 -0
  16. data/examples/blog/root/login.xhtml +24 -0
  17. data/examples/blog/root/m/bubbles.gif +0 -0
  18. data/examples/blog/root/m/comments_curve.gif +0 -0
  19. data/examples/blog/root/m/down.gif +0 -0
  20. data/examples/blog/root/m/footer_bg.gif +0 -0
  21. data/examples/blog/root/m/garrow.gif +0 -0
  22. data/examples/blog/root/m/gbull.gif +0 -0
  23. data/examples/blog/root/m/grbull.gif +0 -0
  24. data/examples/blog/root/m/h1_bg.gif +0 -0
  25. data/examples/blog/root/m/header_bg.gif +0 -0
  26. data/examples/blog/root/m/obull.gif +0 -0
  27. data/examples/blog/root/m/page_bg.gif +0 -0
  28. data/examples/blog/root/m/side_title_bg.gif +0 -0
  29. data/examples/blog/root/m/sidebar_bg.gif +0 -0
  30. data/examples/blog/root/recent_posts.xhtml +14 -0
  31. data/examples/blog/root/style.css +201 -0
  32. data/examples/blog/root/style.xsl +118 -0
  33. data/examples/blog/root/view_entry.xhtml +29 -0
  34. data/examples/og/run.rb +27 -29
  35. data/examples/tiny/README +3 -4
  36. data/examples/tiny/app.rb +6 -16
  37. data/examples/tiny/config.rb +30 -0
  38. data/examples/tiny/log/app.log +23 -0
  39. data/examples/tiny/root/{index.sx → index.xhtml} +3 -6
  40. data/lib/{n/std.rb → nitro.rb} +9 -4
  41. data/lib/{n → nitro}/application.rb +13 -7
  42. data/lib/{n → nitro}/config.rb +38 -8
  43. data/lib/{n → nitro}/events.rb +1 -1
  44. data/lib/{n → nitro}/l10n.rb +1 -1
  45. data/lib/{n → nitro}/logger.rb +8 -8
  46. data/lib/{n → nitro}/macros.rb +3 -3
  47. data/lib/{n → nitro}/mixins.rb +1 -1
  48. data/lib/nitro/properties.rb +301 -0
  49. data/lib/{n → nitro}/server.rb +2 -2
  50. data/lib/{n → nitro}/server/appserver.rb +14 -5
  51. data/lib/{n → nitro}/server/cluster.rb +5 -5
  52. data/lib/{n → nitro}/server/cookie.rb +1 -1
  53. data/lib/nitro/server/dispatcher.rb +66 -0
  54. data/lib/{n → nitro}/server/filters.rb +7 -7
  55. data/lib/{n → nitro}/server/filters/autologin.rb +3 -3
  56. data/lib/{n → nitro}/server/fragment.rb +3 -3
  57. data/lib/{n → nitro}/server/handlers.rb +3 -3
  58. data/lib/nitro/server/render.rb +200 -0
  59. data/lib/{n → nitro}/server/request.rb +6 -6
  60. data/lib/{n → nitro}/server/requestpart.rb +5 -5
  61. data/lib/{n → nitro}/server/script.rb +3 -3
  62. data/lib/{n → nitro}/server/server.rb +4 -4
  63. data/lib/{n → nitro}/server/session.rb +3 -3
  64. data/lib/nitro/server/shaders.rb +165 -0
  65. data/lib/{n → nitro}/server/user.rb +1 -1
  66. data/lib/nitro/server/webrick.rb +175 -0
  67. data/lib/nitro/service.rb +25 -0
  68. data/lib/{n → nitro}/sitemap.rb +2 -2
  69. data/lib/{n → nitro}/ui/date-select.rb +0 -0
  70. data/lib/{n → nitro}/ui/pager.rb +1 -1
  71. data/lib/{n → nitro}/ui/popup.rb +1 -1
  72. data/lib/{n → nitro}/ui/select.rb +1 -1
  73. data/lib/{n → nitro}/ui/tabs.rb +1 -1
  74. data/lib/{n → nitro}/utils/array.rb +1 -1
  75. data/lib/{n → nitro}/utils/cache.rb +1 -1
  76. data/lib/{n → nitro}/utils/gfx.rb +1 -1
  77. data/lib/{n → nitro}/utils/hash.rb +1 -1
  78. data/lib/{n → nitro}/utils/html.rb +1 -1
  79. data/lib/{n → nitro}/utils/http.rb +1 -1
  80. data/lib/{n → nitro}/utils/mail.rb +1 -1
  81. data/lib/{n → nitro}/utils/number.rb +1 -1
  82. data/lib/{n → nitro}/utils/pool.rb +1 -1
  83. data/lib/{n → nitro}/utils/string.rb +19 -95
  84. data/lib/{n → nitro}/utils/template.rb +0 -0
  85. data/lib/{n → nitro}/utils/time.rb +1 -1
  86. data/lib/{n → nitro}/utils/uri.rb +3 -3
  87. data/lib/nitro/version.rb +11 -0
  88. data/lib/{n/og.rb → og.rb} +61 -31
  89. data/lib/{n/og → og}/backend.rb +13 -7
  90. data/lib/{n/og → og}/backends/mysql.rb +43 -39
  91. data/lib/{n/og → og}/backends/psql.rb +42 -38
  92. data/lib/{n/og → og}/connection.rb +21 -9
  93. data/lib/{n/og → og}/meta.rb +18 -12
  94. data/lib/xsl/base.xsl +11 -88
  95. data/test/n/server/tc_cookie.rb +1 -1
  96. data/test/n/server/tc_filters.rb +1 -1
  97. data/test/n/server/tc_request.rb +3 -3
  98. data/test/n/server/tc_requestpart.rb +2 -2
  99. data/test/n/server/tc_session.rb +1 -1
  100. data/test/n/tc_events.rb +1 -1
  101. data/test/n/tc_og.rb +16 -18
  102. data/test/n/tc_properties.rb +22 -18
  103. data/test/n/tc_sitemap.rb +2 -2
  104. data/test/n/ui/tc_pager.rb +4 -4
  105. data/test/n/utils/tc_cache.rb +1 -1
  106. data/test/n/utils/tc_hash.rb +1 -1
  107. data/test/n/utils/tc_html.rb +1 -1
  108. data/test/n/utils/tc_http.rb +1 -1
  109. data/test/n/utils/tc_number.rb +1 -1
  110. data/test/n/utils/tc_strings.rb +1 -46
  111. data/test/n/utils/tc_uri.rb +1 -1
  112. metadata +101 -108
  113. data/examples/simple/README +0 -42
  114. data/examples/simple/app.rb +0 -31
  115. data/examples/simple/conf/apache.conf +0 -100
  116. data/examples/simple/conf/config.rb +0 -72
  117. data/examples/simple/conf/debug-config.rb +0 -26
  118. data/examples/simple/conf/live-config.rb +0 -26
  119. data/examples/simple/conf/requires.rb +0 -43
  120. data/examples/simple/ctl +0 -32
  121. data/examples/simple/env.rb +0 -32
  122. data/examples/simple/install.rb +0 -12
  123. data/examples/simple/lib/articles/entities.rb +0 -37
  124. data/examples/simple/lib/articles/lc-en.rb +0 -36
  125. data/examples/simple/lib/articles/methods.rb +0 -55
  126. data/examples/simple/lib/articles/part.rb +0 -57
  127. data/examples/simple/root/add-article.sx +0 -15
  128. data/examples/simple/root/article-form.ss +0 -20
  129. data/examples/simple/root/comments-form.ss +0 -16
  130. data/examples/simple/root/comments.si +0 -30
  131. data/examples/simple/root/index.sx +0 -44
  132. data/examples/simple/root/shader/shader.xsl +0 -100
  133. data/examples/simple/root/shader/style.css +0 -9
  134. data/examples/simple/root/view-article.sx +0 -29
  135. data/examples/tiny/conf/config.rb +0 -62
  136. data/examples/tiny/conf/requires.rb +0 -33
  137. data/examples/tiny/ctl +0 -16
  138. data/lib/n/parts.rb +0 -157
  139. data/lib/n/properties.rb +0 -199
  140. data/lib/n/server/dispatcher.rb +0 -55
  141. data/lib/n/server/handlers/code-handler.rb +0 -182
  142. data/lib/n/server/handlers/page-handler.rb +0 -612
  143. data/lib/n/server/webrick.rb +0 -283
  144. data/lib/n/shaders.rb +0 -166
  145. data/lib/n/sync/clc.rb +0 -110
  146. data/lib/n/sync/handler.rb +0 -229
  147. data/lib/n/sync/server.rb +0 -176
  148. data/lib/p/README +0 -1
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <span>
4
+ <h2>Recent posts</h2>
5
+ <?r if @entries ?>
6
+ <ul>
7
+ <?r for entry in @entries ?>
8
+ <li><a href="view_entry?oid=#{entry.oid}">#{entry.title}</a></li>
9
+ <?r end ?>
10
+ </ul>
11
+ <?r else ?>
12
+ no entries
13
+ <?r end ?>
14
+ </span>
@@ -0,0 +1,201 @@
1
+ body {
2
+ margin: 0;
3
+ padding: 0;
4
+ font-family: Verdana, sans-serif;
5
+ font-size: small;
6
+ color: #333;
7
+ background: #e0e0e0;
8
+ }
9
+
10
+ a:link {
11
+ color: #69c;
12
+ }
13
+
14
+ a:visited {
15
+ color: #666699;
16
+ }
17
+
18
+ a:hover {
19
+ color: #693;
20
+ }
21
+
22
+ a:active {
23
+ color: #cc3333;
24
+ text-decoration: none;
25
+ }
26
+
27
+ input, textarea {
28
+ font-family: Verdana, sans-serif;
29
+ font-size: small;
30
+ }
31
+
32
+ #page {
33
+ position: relative; top: 50%; left: 50%;
34
+ margin: 0px; margin-left: -400px;
35
+ width: 847px;
36
+ background: url(m/page_bg.gif) repeat-y;
37
+ }
38
+
39
+ #header {
40
+ margin: 0px;
41
+ color: #fff;
42
+ font-family: "Lucida Grande", "Trebuchet MS";
43
+ background: url(m/header_bg.gif) no-repeat top left;
44
+ }
45
+
46
+ #header h1 {
47
+ margin: 0px;
48
+ padding: 45px 60px 50px 160px;
49
+ background: url(m/h1_bg.gif) no-repeat bottom left;
50
+ }
51
+
52
+ #footer {
53
+ height: 40px;
54
+ color: #fff;
55
+ font-size: 80%;
56
+ background: url(m/footer_bg.gif) repeat-y;
57
+ padding-top: 15px; padding-left: 90px;
58
+ }
59
+
60
+ #footer a {
61
+ color: #fff;
62
+ }
63
+
64
+ #footer a:hover {
65
+ color: #fc0;
66
+ }
67
+
68
+ .main {
69
+ float: left;
70
+ margin: 10px; margin-left: 60px;
71
+ padding-left: 2px;
72
+ margin-bottom: 20px;
73
+ width: 460px;
74
+ }
75
+
76
+ .main li {
77
+ list-style: none;
78
+ padding-left: 14px;
79
+ margin-bottom: 3px;
80
+ background: url(m/obull.gif) no-repeat 0 6px;
81
+ }
82
+
83
+ .side {
84
+ color: #999;
85
+ margin: 0 41px 0px 547px;
86
+ padding-top: 25px; padding-left: 20px; padding-right: 20px;
87
+ font-size: 85%;
88
+ line-height: 1.4em;
89
+ background: url(m/sidebar_bg.gif) no-repeat 0 0;
90
+ }
91
+
92
+ .side h2 {
93
+ margin: 0 0 0 0;
94
+ padding: 25px 0 0 30px;
95
+ color: #666;
96
+ height: 32px !important;
97
+ height /**/:57px; /* for IE5/Win */
98
+ font-family: "Lucida Grande", "Trebuchet MS";
99
+ font-size: 130%;
100
+ background: url(m/side_title_bg.gif) no-repeat 0px 15px;
101
+ }
102
+
103
+ .side ul {
104
+ margin-top: 0px;
105
+ padding: 0px;
106
+ }
107
+
108
+ .side li {
109
+ list-style: none;
110
+ margin-left: 0px; margin-bottom: 3px;
111
+ padding-left: 14px;
112
+ background: url(m/gbull.gif) no-repeat 0 6px;
113
+ }
114
+
115
+ .entry {
116
+ border-bottom: 1px solid #eee;
117
+ margin-top: 15px; margin-bottom: 15px;
118
+ }
119
+
120
+ .full-entry {
121
+ margin-top: 15px; margin-bottom: 15px;
122
+ }
123
+
124
+ h2.date {
125
+ margin-top: 0;
126
+ padding-left: 14px;
127
+ font-size: 90%;
128
+ color: #f93;
129
+ background: url(m/down.gif) no-repeat 0 50%;
130
+ }
131
+
132
+ .post {
133
+ padding-left: 15px;
134
+ padding-bottom: 15px;
135
+ }
136
+
137
+ .post h3.title {
138
+ margin-top: 0;
139
+ font-family: "Lucida Grande", "Trebuchet MS";
140
+ font-size: 130%;
141
+ letter-spacing: -1px;
142
+ color: #f63;
143
+ }
144
+
145
+ .post .footer {
146
+ margin: 0; margin-top: 10px;
147
+ padding: 0 0 0 14px;
148
+ font-size: 88%;
149
+ color: #999;
150
+ background: url(m/grbull.gif) no-repeat 0 6px;
151
+ }
152
+
153
+ #comments {
154
+ margin-top: 30px;
155
+ padding-top: 10px;
156
+ font-size: 85%;
157
+ line-height: 1.5em;
158
+ color: #666;
159
+ background: #eee url(m/comments_curve.gif) no-repeat top left;
160
+ }
161
+
162
+ #comments h2 {
163
+ margin: 20px 0 15px 0;
164
+ padding: 8px 0 0 40px;
165
+ font-family: "Lucida Grande", "Trebuchet MS";
166
+ font-size: 130%;
167
+ color: #666;
168
+ background: url(m/bubbles.gif) no-repeat 10px 0;
169
+ height: 29px !important; /* for most browsers */
170
+ height /**/:37px; /* for IE5/Win */
171
+ }
172
+
173
+ #comments form {
174
+ margin: 10px;
175
+ padding-bottom: 10px;
176
+ }
177
+
178
+ .comment {
179
+ padding: 10px;
180
+ border-bottom: 1px solid #ddd;
181
+ }
182
+
183
+ .comment .footer {
184
+ margin: 4px 0 0 0;
185
+ padding: 0 0 0 60px;
186
+ color: #999;
187
+ background: url(m/garrow.gif) no-repeat 44px 2px;
188
+ }
189
+
190
+ .error {
191
+ color: #f00;
192
+ }
193
+
194
+ .clear {
195
+ clear: both;
196
+ height: 0px;
197
+ line-height: 0px;
198
+ font-size: 0px;
199
+ overflow: hidden;
200
+ background-color: #f00;
201
+ }
@@ -0,0 +1,118 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <!--
4
+ A Simple Shader
5
+
6
+ code:
7
+ * George Moschovitis <gm@navel.gr>
8
+
9
+ (c) 2004 Navel, all rights reserved.
10
+ $Id: style.xsl 149 2004-11-13 19:52:32Z gmosx $
11
+ -->
12
+
13
+ <!DOCTYPE shader
14
+ [
15
+ <!ENTITY nbsp "<![CDATA[&nbsp;]]>">
16
+ <!ENTITY copy "<![CDATA[&copy;]]>">
17
+ <!ENTITY euro "<![CDATA[&euro;]]>">
18
+ <!ENTITY laquo "<![CDATA[&laquo;]]>">
19
+ <!ENTITY raquo "<![CDATA[&raquo;]]>">
20
+ ]>
21
+
22
+ <xsl:stylesheet
23
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
24
+ xmlns:xl="http://www.w3.org/1999/xlink"
25
+ xmlns:x="http://www.navel.gr/xml/shader.xsd" version="1.0"
26
+ exclude-result-prefixes="x xl">
27
+
28
+ <xsl:include href="../../lib/xsl/base.xsl" />
29
+
30
+ <xsl:output method="xml" indent="yes" encoding="iso-8859-1" />
31
+
32
+ <xsl:template name="x:head">
33
+ <head>
34
+ <title>#$name</title>
35
+ <meta name="title" content="Blog" />
36
+ <meta name="description" content="Example" />
37
+ <meta name="keywords" content="nitro, example, blog" />
38
+ <meta name="category" content="example" />
39
+ <meta name="robots" content="index, follow" />
40
+ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
41
+
42
+ <xsl:apply-templates select="x:block[@id='meta']"/>
43
+
44
+ <base href="#$srv_url/" />
45
+ <link href="/style.css" rel="stylesheet" type="text/css" media="screen" />
46
+
47
+ <xsl:apply-templates select="x:cell[@id='head']"/>
48
+ </head>
49
+ </xsl:template>
50
+
51
+ <xsl:template name="x:header">
52
+ <div id="header">
53
+ <h1>#$name</h1>
54
+ </div>
55
+ </xsl:template>
56
+
57
+ <xsl:template name="x:footer">
58
+ <div id="footer">
59
+ </div>
60
+ </xsl:template>
61
+
62
+ <!--
63
+ can only include x:blocks, all other templates are ignored
64
+ -->
65
+ <xsl:template match="x:page">
66
+ <html>
67
+ <xsl:call-template name="x:head" />
68
+ <body>
69
+ <div id="page">
70
+
71
+ <xsl:call-template name="x:header" />
72
+
73
+ <xsl:apply-templates select="x:cell[@id='top']" />
74
+
75
+ <div class="block main">
76
+ <xsl:apply-templates select="x:cell[@id='main']" />
77
+ </div>
78
+
79
+ <div class="block side">
80
+ <h2>About</h2>
81
+ This is a simple blog powered by <a href="http://www.navel.gr/nitro">
82
+ Nitro</a> Web Engine. Have a look at the source code and enjoy
83
+ the power of Ruby.
84
+ <ruby>unless session['owner']</ruby>
85
+ <p><a href="login">Login</a> as owner.</p>
86
+ <ruby>else</ruby>
87
+ <p><a href="logout">Logout</a>.</p>
88
+ <ruby>end</ruby>
89
+
90
+ <xsl:apply-templates select="x:cell[@id='side']" />
91
+
92
+ <h2>Linkage</h2>
93
+ <ul>
94
+ <li><a target="_new" href="http://www.navel.gr">Navel Ltd</a></li>
95
+ <li><a target="_new" href="http://www.navel.gr/nitro">Nitro Web Engine</a></li>
96
+ <li><a target="_new" href="http://www.ruby-lang.org">Ruby</a></li>
97
+ <li><a target="_new" href="http://www.blogger.com">Blogger</a></li>
98
+ <li><a target="_new" href="http://www.w3c.org">W3 Consortium</a></li>
99
+ </ul>
100
+
101
+ <br />
102
+ <p>
103
+ powered by <b><a href="http://www.navel.gr/nitro">Nitro</a></b>,
104
+ Skin from <a href="http://www.blogger.com">Blogger.com</a>.
105
+ </p>
106
+ </div>
107
+
108
+ <div class="clear">.</div>
109
+
110
+ <xsl:apply-templates select="x:cell[@id='bottom']" />
111
+
112
+ <xsl:call-template name="x:footer" />
113
+ </div>
114
+ </body>
115
+ </html>
116
+ </xsl:template>
117
+
118
+ </xsl:stylesheet>
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <x:page xmlns:x="http://www.navel.gr/xml/shader.xsd">
4
+
5
+ <x:cell id="main">
6
+
7
+ <div class="full-@entry">
8
+ <h2 class="date">#{@entry.create_time.strftime('%B %e, %G')}</h2>
9
+ <div class="post">
10
+ <h3 class="title">#{@entry.title}</h3>
11
+ #{@entry.body}
12
+ <div class="footer">
13
+ posted by gmosx at #{@entry.create_time.strftime('%R %p')}
14
+ <?r if session['owner'] ?>
15
+ [<a href="del_entry?oid=#{@entry.oid}">del</a>]
16
+ <?r end ?>
17
+ </div>
18
+ </div>
19
+ </div>
20
+
21
+ <div id="comments">
22
+ <include href="comments" />
23
+ </div>
24
+
25
+ <p><a href="/">Home</a></p>
26
+ </x:cell>
27
+
28
+ </x:page>
29
+
@@ -6,13 +6,13 @@
6
6
  # * George Moschovitis <gm@navel.gr>
7
7
  #
8
8
  # (c) 2004 Navel, all rights reserved.
9
- # $Id: run.rb 124 2004-11-01 12:34:17Z gmosx $
9
+ # $Id: run.rb 155 2004-11-13 20:32:12Z gmosx $
10
10
 
11
11
  $:.unshift "../../lib"
12
12
 
13
- require "n/std"
14
- require "n/logger"
15
- require "n/og"
13
+ require "nitro"
14
+ require "nitro/logger"
15
+ require "og"
16
16
 
17
17
  # Full debug information.
18
18
  $DBG = true
@@ -20,7 +20,7 @@ $DBG = true
20
20
  # = A child class
21
21
  #
22
22
  class Comment
23
- prop_accessor String, :body
23
+ prop_accessor :body, String
24
24
 
25
25
  def initialize(body = nil)
26
26
  @body = body
@@ -43,9 +43,9 @@ class Part; end
43
43
  # = A Parent class
44
44
  #
45
45
  class User
46
- prop_accessor String, :name
46
+ prop_accessor :name, String
47
47
 
48
- has_many UserComment, :comments
48
+ has_many :comments, UserComment
49
49
 
50
50
  def initialize(name = nil)
51
51
  @name = name
@@ -59,22 +59,24 @@ end
59
59
  # = A parent class
60
60
  #
61
61
  class Article
62
- prop_accessor String, :title
63
- prop_accessor String, :body
62
+ prop_accessor :title, String
63
+ prop_accessor :body, String
64
64
  # override the default O->R mapping
65
- prop_accessor Fixnum, "smallint DEFAULT 1", :level
66
- # store a Ruby Hash in the Database. Marshal
65
+ prop_accessor :level, Fixnum, :sql => "smallint DEFAULT 1"
66
+ # store a Ruby Hash in the Database. YAML
67
67
  # is used for serializing the attribute.
68
- prop_accessor Hash, :options
69
- prop_accessor Time, :create_time
68
+ # no need to define the class, but you can if you want.
69
+ prop_accessor :options
70
+ # exactly like the standard Ruby attr creates only the reader.
71
+ prop :create_time, Time
70
72
 
71
73
  # define comment relation:
72
- has_many ArticleComment, :comments
74
+ has_many :comments, ArticleComment
73
75
 
74
- has_many Part, :parts
76
+ has_many :parts, Part
75
77
 
76
78
  # define author relation:
77
- belongs_to User, :author
79
+ belongs_to :author, User
78
80
 
79
81
  # this attribute is NOT stored in the db.
80
82
  attr_accessor :other_options
@@ -97,20 +99,20 @@ end
97
99
  # = Article comment
98
100
  #
99
101
  class ArticleComment < Comment
100
- belongs_to Article, :article
102
+ belongs_to :article, Article
101
103
  end
102
104
 
103
105
  # = User comment
104
106
  #
105
107
  class UserComment < Comment
106
- belongs_to User, :author
108
+ belongs_to :author, User
107
109
  end
108
110
 
109
111
  # = Another child class
110
112
  #
111
113
  class Part
112
- prop_accessor String, :name
113
- belongs_to Article, :article
114
+ prop_accessor :name, String
115
+ belongs_to :article, Article
114
116
 
115
117
  def initialize(name = nil)
116
118
  @name = name
@@ -126,7 +128,7 @@ end
126
128
  $log = Logger.new(STDERR);
127
129
 
128
130
  # Og configuration.
129
- =begin
131
+
130
132
  config = {
131
133
  :address => "localhost",
132
134
  :database => "test",
@@ -135,7 +137,7 @@ config = {
135
137
  :password => "navelrulez",
136
138
  :connection_count => 1
137
139
  }
138
- =end
140
+ =begin
139
141
  config = {
140
142
  :address => "localhost",
141
143
  :database => "test",
@@ -144,18 +146,14 @@ config = {
144
146
  :password => "navelrulez",
145
147
  :connection_count => 1
146
148
  }
147
-
149
+ =end
148
150
  # Cleanup the database for earlier executions
149
151
 
150
- N::Og.drop_db!(config)
152
+ Og::Database.drop_db!(config)
151
153
 
152
154
  # Initialize Og
153
155
 
154
- $og = N::Og.new(config)
155
-
156
- # Define the managed objects
157
-
158
- $og.manage_classes(Article, User, ArticleComment, UserComment, Part)
156
+ $og = Og::Database.new(config)
159
157
 
160
158
  # Get an Og connection for this thread.
161
159