nitro 0.4.1 → 0.5.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.
- data/AUTHORS +9 -1
- data/ChangeLog +107 -1
- data/README +1 -1
- data/RELEASES +14 -0
- data/Rakefile +73 -28
- data/bin/cluster.rb +2 -2
- data/examples/blog/app.rb +2 -2
- data/examples/blog/config.rb +14 -15
- data/examples/blog/lib/blog.rb +13 -20
- data/examples/blog/root/entry_form.xhtml +0 -1
- data/examples/blog/root/m/rss.gif +0 -0
- data/examples/blog/root/style.css +17 -0
- data/examples/blog/root/style.xsl +17 -5
- data/examples/blog/root/view_entry.xml +12 -0
- data/examples/og/run.rb +2 -3
- data/examples/tiny/config.rb +7 -8
- data/lib/glue.rb +52 -0
- data/lib/{nitro/utils → glue}/array.rb +2 -2
- data/lib/{nitro/utils → glue}/cache.rb +2 -2
- data/lib/{nitro/utils → glue}/hash.rb +2 -2
- data/lib/glue/inflector.rb +91 -0
- data/lib/{nitro → glue}/logger.rb +1 -1
- data/lib/{nitro/macros.rb → glue/macro.rb} +1 -1
- data/lib/{nitro → glue}/mixins.rb +3 -4
- data/lib/{nitro/utils → glue}/number.rb +3 -3
- data/lib/{nitro/utils → glue}/pool.rb +2 -2
- data/lib/{nitro/properties.rb → glue/property.rb} +8 -8
- data/lib/{nitro/utils → glue}/string.rb +3 -2
- data/lib/{nitro/utils → glue}/time.rb +3 -3
- data/lib/nitro.rb +2 -43
- data/lib/nitro/application.rb +2 -2
- data/lib/nitro/builders/rss.rb +43 -0
- data/lib/nitro/config.rb +13 -4
- data/lib/nitro/{utils/html.rb → html.rb} +2 -2
- data/lib/nitro/{utils/http.rb → http.rb} +1 -1
- data/lib/nitro/{utils/mail.rb → mail.rb} +1 -1
- data/lib/nitro/scaffold.rb +80 -0
- data/lib/nitro/server/appserver.rb +2 -2
- data/lib/nitro/server/cluster.rb +2 -2
- data/lib/nitro/server/dispatcher.rb +2 -5
- data/lib/nitro/server/filters/autologin.rb +2 -2
- data/lib/nitro/server/fragment.rb +5 -5
- data/lib/nitro/server/handlers.rb +3 -3
- data/lib/nitro/server/render.rb +145 -22
- data/lib/nitro/server/request.rb +7 -7
- data/lib/nitro/server/requestpart.rb +4 -4
- data/lib/nitro/server/script.rb +4 -4
- data/lib/nitro/server/server.rb +2 -2
- data/lib/nitro/server/session.rb +4 -4
- data/lib/nitro/server/webrick.rb +2 -2
- data/lib/nitro/service.rb +2 -1
- data/lib/nitro/sitemap.rb +3 -3
- data/lib/nitro/{utils/uri.rb → uri.rb} +3 -3
- data/lib/nitro/version.rb +2 -2
- data/lib/og.rb +8 -8
- data/lib/og/backends/mysql.rb +16 -12
- data/lib/og/backends/psql.rb +6 -2
- data/lib/og/connection.rb +4 -4
- data/lib/og/meta.rb +7 -1
- data/lib/og/version.rb +8 -0
- data/lib/xsl/base.xsl +10 -0
- data/test/{n/utils → glue}/tc_cache.rb +3 -3
- data/test/{n/utils → glue}/tc_hash.rb +2 -3
- data/test/{n/utils/tc_number.rb → glue/tc_numbers.rb} +3 -4
- data/test/{n → glue}/tc_properties.rb +2 -2
- data/test/glue/tc_strings.rb +103 -0
- data/test/{n → nitro}/server/tc_cookie.rb +0 -0
- data/test/{n → nitro}/server/tc_filters.rb +0 -0
- data/test/{n → nitro}/server/tc_request.rb +1 -1
- data/test/{n → nitro}/server/tc_requestpart.rb +0 -0
- data/test/{n → nitro}/server/tc_session.rb +0 -0
- data/test/{n → nitro}/tc_events.rb +0 -0
- data/test/{n/utils → nitro}/tc_html.rb +1 -1
- data/test/{n/utils → nitro}/tc_http.rb +1 -1
- data/test/{n → nitro}/tc_sitemap.rb +1 -1
- data/test/{n/utils → nitro}/tc_uri.rb +1 -1
- data/test/{n → nitro}/ui/tc_pager.rb +1 -1
- data/test/{n/tc_og.rb → tc_og.rb} +5 -2
- metadata +48 -44
- data/examples/blog/log/app.log +0 -117
- data/examples/tiny/log/app.log +0 -23
- data/lib/nitro/utils/gfx.rb +0 -107
- data/lib/nitro/utils/template.rb +0 -36
- data/test/n/utils/tc_strings.rb +0 -104
data/lib/nitro/server/request.rb
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
# * George Moschovitis <gm@navel.gr>
|
|
3
3
|
#
|
|
4
4
|
# (c) 2004 Navel, all rights reserved.
|
|
5
|
-
# $Id: request.rb
|
|
5
|
+
# $Id: request.rb 167 2004-11-23 14:03:10Z gmosx $
|
|
6
6
|
|
|
7
7
|
require "cgi"
|
|
8
8
|
require "ftools"
|
|
9
9
|
|
|
10
|
-
require "
|
|
11
|
-
require "nitro/
|
|
12
|
-
require "nitro/
|
|
10
|
+
require "glue/string"
|
|
11
|
+
require "nitro/uri"
|
|
12
|
+
require "nitro/http"
|
|
13
13
|
require "nitro/server/cookie"
|
|
14
14
|
require "nitro/server/requestpart"
|
|
15
15
|
|
|
@@ -352,7 +352,7 @@ class Request
|
|
|
352
352
|
def get(key, default=nil)
|
|
353
353
|
val = @parameters[key]
|
|
354
354
|
|
|
355
|
-
if !val or (val.is_a?(String) and (not
|
|
355
|
+
if !val or (val.is_a?(String) and (not G::StringUtils.valid?(val)))
|
|
356
356
|
@parameters[key] = default
|
|
357
357
|
return default
|
|
358
358
|
elsif default.is_a?(Integer)
|
|
@@ -429,7 +429,7 @@ class Request
|
|
|
429
429
|
# Check if a parameter is valid
|
|
430
430
|
#
|
|
431
431
|
def param?(param)
|
|
432
|
-
return
|
|
432
|
+
return G::StringUtils.valid?(self[param])
|
|
433
433
|
end
|
|
434
434
|
alias_method :action?, :param?
|
|
435
435
|
|
|
@@ -465,7 +465,7 @@ class Request
|
|
|
465
465
|
end
|
|
466
466
|
|
|
467
467
|
# gmosx: to avoid using param?
|
|
468
|
-
if param.is_a?(String) and (not
|
|
468
|
+
if param.is_a?(String) and (not G::StringUtils.valid?(param))
|
|
469
469
|
return nil
|
|
470
470
|
else
|
|
471
471
|
return param
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
# * George Moschovitis <gm@navel.gr>
|
|
3
3
|
#
|
|
4
4
|
# (c) 2004 Navel, all rights reserved.
|
|
5
|
-
# $Id: requestpart.rb
|
|
5
|
+
# $Id: requestpart.rb 167 2004-11-23 14:03:10Z gmosx $
|
|
6
6
|
|
|
7
7
|
require "cgi"
|
|
8
8
|
require "ftools"
|
|
9
9
|
|
|
10
|
-
require "
|
|
11
|
-
require "nitro/
|
|
12
|
-
require "nitro/
|
|
10
|
+
require "glue/string"
|
|
11
|
+
require "nitro/uri"
|
|
12
|
+
require "nitro/http"
|
|
13
13
|
require "nitro/server/cookie"
|
|
14
14
|
|
|
15
15
|
module N
|
data/lib/nitro/server/script.rb
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
# * George Moschovitis <gm@navel.gr>
|
|
3
3
|
#
|
|
4
4
|
# (c) 2004 Navel, all rights reserved.
|
|
5
|
-
# $Id: script.rb
|
|
5
|
+
# $Id: script.rb 167 2004-11-23 14:03:10Z gmosx $
|
|
6
6
|
|
|
7
7
|
require "fileutils"
|
|
8
8
|
|
|
9
|
-
require "
|
|
9
|
+
require "glue/cache"
|
|
10
10
|
require "nitro/server/fragment"
|
|
11
11
|
|
|
12
12
|
module N
|
|
@@ -63,7 +63,7 @@ class Script
|
|
|
63
63
|
|
|
64
64
|
# sub-scripts set: a set of files this script depends on.
|
|
65
65
|
# We use a hash to implement a set.
|
|
66
|
-
@sub_scripts =
|
|
66
|
+
@sub_scripts = G::SafeArray.new
|
|
67
67
|
|
|
68
68
|
# a cache for the script outputs (fragments). Keeps multiple revisions
|
|
69
69
|
# of the script output according to user, access rights etc.
|
|
@@ -74,7 +74,7 @@ class Script
|
|
|
74
74
|
#
|
|
75
75
|
# DISK CACHING IS SLOW!
|
|
76
76
|
#
|
|
77
|
-
@fragment_cache =
|
|
77
|
+
@fragment_cache = G::LRUCache.new(1000)
|
|
78
78
|
|
|
79
79
|
__init()
|
|
80
80
|
end
|
data/lib/nitro/server/server.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# * George Moschovitis <gm@navel.gr>
|
|
3
3
|
#
|
|
4
4
|
# (c) 2004 Navel, all rights reserved.
|
|
5
|
-
# $Id: server.rb
|
|
5
|
+
# $Id: server.rb 167 2004-11-23 14:03:10Z gmosx $
|
|
6
6
|
|
|
7
7
|
require "drb"
|
|
8
8
|
|
|
@@ -25,7 +25,7 @@ module ServerMixin
|
|
|
25
25
|
$sessions = DRbObject.new(nil, $drb_sessions_cluster)
|
|
26
26
|
else
|
|
27
27
|
# NoCluster mode: use standard Ruby onjects.
|
|
28
|
-
$lm =
|
|
28
|
+
$lm = G::SafeHash.new
|
|
29
29
|
$sessions = N::App::SessionManager.new
|
|
30
30
|
end
|
|
31
31
|
|
data/lib/nitro/server/session.rb
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
# * George Moschovitis <gm@navel.gr>
|
|
3
3
|
#
|
|
4
4
|
# (c) 2002-2003 Navel, all rights reserved.
|
|
5
|
-
# $Id: session.rb
|
|
5
|
+
# $Id: session.rb 167 2004-11-23 14:03:10Z gmosx $
|
|
6
6
|
|
|
7
7
|
require "md5"
|
|
8
8
|
|
|
9
|
-
require "
|
|
9
|
+
require "glue/hash"
|
|
10
10
|
require "nitro/server/user"
|
|
11
11
|
|
|
12
12
|
module N
|
|
@@ -23,13 +23,13 @@ module N
|
|
|
23
23
|
#
|
|
24
24
|
# SOS: This object lives in the Cluster!
|
|
25
25
|
#
|
|
26
|
-
class SessionManager <
|
|
26
|
+
class SessionManager < G::SafeHash
|
|
27
27
|
# the collection of online users.
|
|
28
28
|
attr_reader :online
|
|
29
29
|
|
|
30
30
|
def initialize
|
|
31
31
|
super
|
|
32
|
-
@online =
|
|
32
|
+
@online = G::SafeHash.new
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
# Return the number of anonymous sessions.
|
data/lib/nitro/server/webrick.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# * George Moschovitis <gm@navel.gr>
|
|
3
3
|
#
|
|
4
4
|
# (c) 2004 Navel, all rights reserved.
|
|
5
|
-
# $Id: webrick.rb
|
|
5
|
+
# $Id: webrick.rb 167 2004-11-23 14:03:10Z gmosx $
|
|
6
6
|
|
|
7
7
|
require "webrick"
|
|
8
8
|
|
|
@@ -34,7 +34,7 @@ module WEBrick
|
|
|
34
34
|
# clickstream there is no referer, set "/" by default.
|
|
35
35
|
#
|
|
36
36
|
def referer
|
|
37
|
-
return @header["referer"]
|
|
37
|
+
return @header["referer"][0] || "/"
|
|
38
38
|
end
|
|
39
39
|
alias_method :referrer, :referer
|
|
40
40
|
|
data/lib/nitro/service.rb
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
# * George Moschovitis <gm@navel.gr>
|
|
3
3
|
#
|
|
4
4
|
# (c) 2004 Navel, all rights reserved.
|
|
5
|
-
# $Id: service.rb
|
|
5
|
+
# $Id: service.rb 159 2004-11-18 10:18:30Z gmosx $
|
|
6
6
|
|
|
7
7
|
require 'nitro/server/render'
|
|
8
|
+
require 'nitro/scaffold'
|
|
8
9
|
|
|
9
10
|
module N
|
|
10
11
|
|
data/lib/nitro/sitemap.rb
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
# George Moschovitis <gm@navel.gr>
|
|
7
7
|
#
|
|
8
8
|
# (c) 2004 Navel, all rights reserved.
|
|
9
|
-
# $Id: sitemap.rb
|
|
9
|
+
# $Id: sitemap.rb 167 2004-11-23 14:03:10Z gmosx $
|
|
10
10
|
|
|
11
|
-
require "
|
|
11
|
+
require "glue/hash"
|
|
12
12
|
|
|
13
13
|
module N
|
|
14
14
|
|
|
@@ -85,7 +85,7 @@ end
|
|
|
85
85
|
# - Use a second class in the UI namespace for rendering
|
|
86
86
|
# related stuff?
|
|
87
87
|
#
|
|
88
|
-
class SiteMap <
|
|
88
|
+
class SiteMap < G::SafeHash
|
|
89
89
|
|
|
90
90
|
# The root page for this sitemap
|
|
91
91
|
attr_accessor :root
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
# * George Moschovitis <gm@navel.gr>
|
|
3
3
|
#
|
|
4
4
|
# (c) 2004 Navel, all rights reserved.
|
|
5
|
-
# $Id: uri.rb
|
|
5
|
+
# $Id: uri.rb 167 2004-11-23 14:03:10Z gmosx $
|
|
6
6
|
|
|
7
7
|
require "uri"
|
|
8
8
|
require "cgi"
|
|
9
9
|
|
|
10
|
-
require "
|
|
10
|
+
require "glue/string"
|
|
11
11
|
|
|
12
12
|
module N
|
|
13
13
|
|
|
@@ -165,7 +165,7 @@ module UriUtils
|
|
|
165
165
|
hash.update(parameters)
|
|
166
166
|
query_string = self.hash_to_query_string(hash)
|
|
167
167
|
|
|
168
|
-
if
|
|
168
|
+
if G::StringUtils.valid?(query_string)
|
|
169
169
|
return "#{rest}?#{query_string}"
|
|
170
170
|
else
|
|
171
171
|
return rest
|
data/lib/nitro/version.rb
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
# * George Moschovitis <gm@navel.gr>
|
|
3
3
|
#
|
|
4
4
|
# (c) 2004 Navel, all rights reserved.
|
|
5
|
-
# $Id: version.rb
|
|
5
|
+
# $Id: version.rb 167 2004-11-23 14:03:10Z gmosx $
|
|
6
6
|
|
|
7
7
|
# The name of the server.
|
|
8
8
|
$srv_name = 'Nitro'
|
|
9
9
|
|
|
10
10
|
# The version of the server.
|
|
11
|
-
$srv_version = '0.
|
|
11
|
+
$srv_version = '0.5.0'
|
data/lib/og.rb
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
# * George Moschovitis <gm@navel.gr>
|
|
3
3
|
#
|
|
4
4
|
# (c) 2004 Navel, all rights reserved.
|
|
5
|
-
# $Id: og.rb
|
|
5
|
+
# $Id: og.rb 167 2004-11-23 14:03:10Z gmosx $
|
|
6
6
|
|
|
7
|
-
require "
|
|
8
|
-
require "
|
|
9
|
-
require "
|
|
10
|
-
require "
|
|
11
|
-
require "
|
|
7
|
+
require "glue/property"
|
|
8
|
+
require "glue/array"
|
|
9
|
+
require "glue/hash"
|
|
10
|
+
require "glue/time"
|
|
11
|
+
require "glue/pool"
|
|
12
12
|
|
|
13
13
|
require "og/meta"
|
|
14
14
|
|
|
@@ -158,8 +158,8 @@ class Database
|
|
|
158
158
|
require "og/backends/#{backend}"
|
|
159
159
|
eval %{ @config[:backend] = #{backend.capitalize}Backend }
|
|
160
160
|
|
|
161
|
-
@connection_pool =
|
|
162
|
-
@managed_classes =
|
|
161
|
+
@connection_pool = G::Pool.new
|
|
162
|
+
@managed_classes = G::SafeHash.new
|
|
163
163
|
|
|
164
164
|
$log.info "Connecting to database '#{@config[:database]}' using backend '#{backend}'."
|
|
165
165
|
|
data/lib/og/backends/mysql.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# * Elias Athanasopoulos <elathan@navel.gr>
|
|
4
4
|
#
|
|
5
5
|
# (c) 2004 Navel, all rights reserved.
|
|
6
|
-
# $Id: mysql.rb
|
|
6
|
+
# $Id: mysql.rb 159 2004-11-18 10:18:30Z gmosx $
|
|
7
7
|
|
|
8
8
|
require "mysql"
|
|
9
9
|
|
|
@@ -266,6 +266,8 @@ class MysqlBackend < Og::Backend
|
|
|
266
266
|
fields = []
|
|
267
267
|
|
|
268
268
|
klass.__props.each do |p|
|
|
269
|
+
klass.sql_index(p.symbol) if p.meta[:sql_index]
|
|
270
|
+
|
|
269
271
|
field = "#{p.symbol}"
|
|
270
272
|
|
|
271
273
|
if p.meta and p.meta[:sql]
|
|
@@ -285,18 +287,8 @@ class MysqlBackend < Og::Backend
|
|
|
285
287
|
sql << ", #{constrains.join(', ')}"
|
|
286
288
|
end
|
|
287
289
|
|
|
288
|
-
sql <<
|
|
289
|
-
|
|
290
|
-
# Create indices
|
|
290
|
+
sql << ');'
|
|
291
291
|
|
|
292
|
-
if klass.__meta
|
|
293
|
-
for data in klass.__meta[:sql_index]
|
|
294
|
-
idx, pre_sql, post_sql = *data
|
|
295
|
-
idxname = idx.gsub(/ /, "").gsub(/,/, "_").gsub(/\(.*\)/, "")
|
|
296
|
-
sql << " CREATE #{pre_sql} INDEX #{klass::DBTABLE}_#{idxname}_idx #{post_sql} ON #{klass::DBTABLE} (#{idx});"
|
|
297
|
-
end
|
|
298
|
-
end
|
|
299
|
-
|
|
300
292
|
begin
|
|
301
293
|
exec(sql)
|
|
302
294
|
$log.info "Created table '#{klass::DBTABLE}'."
|
|
@@ -307,6 +299,18 @@ class MysqlBackend < Og::Backend
|
|
|
307
299
|
raise
|
|
308
300
|
end
|
|
309
301
|
end
|
|
302
|
+
|
|
303
|
+
# Create indices
|
|
304
|
+
|
|
305
|
+
if klass.__meta
|
|
306
|
+
for data in klass.__meta[:sql_index]
|
|
307
|
+
idx, options = *data
|
|
308
|
+
idx = idx.to_s
|
|
309
|
+
pre_sql, post_sql = options[:pre], options[:post]
|
|
310
|
+
idxname = idx.gsub(/ /, "").gsub(/,/, "_").gsub(/\(.*\)/, "")
|
|
311
|
+
exec "CREATE #{pre_sql} INDEX #{klass::DBTABLE}_#{idxname}_idx #{post_sql} ON #{klass::DBTABLE} (#{idx})"
|
|
312
|
+
end
|
|
313
|
+
end
|
|
310
314
|
end
|
|
311
315
|
|
|
312
316
|
# Deserialize one row of the resultset.
|
data/lib/og/backends/psql.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# * George Moschovitis <gm@navel.gr>
|
|
3
3
|
#
|
|
4
4
|
# (c) 2004 Navel, all rights reserved.
|
|
5
|
-
# $Id: psql.rb
|
|
5
|
+
# $Id: psql.rb 159 2004-11-18 10:18:30Z gmosx $
|
|
6
6
|
|
|
7
7
|
require "postgres"
|
|
8
8
|
|
|
@@ -243,6 +243,8 @@ class PsqlBackend < Og::Backend
|
|
|
243
243
|
fields = []
|
|
244
244
|
|
|
245
245
|
klass.__props.each do |p|
|
|
246
|
+
klass.sql_index(p.symbol) if p.meta[:sql_index]
|
|
247
|
+
|
|
246
248
|
field = "#{p.symbol}"
|
|
247
249
|
|
|
248
250
|
if p.meta and p.meta[:sql]
|
|
@@ -268,7 +270,9 @@ class PsqlBackend < Og::Backend
|
|
|
268
270
|
|
|
269
271
|
if klass.__meta
|
|
270
272
|
for data in klass.__meta[:sql_index]
|
|
271
|
-
idx,
|
|
273
|
+
idx, options = *data
|
|
274
|
+
idx = idx.to_s
|
|
275
|
+
pre_sql, post_sql = options[:pre], options[:post]
|
|
272
276
|
idxname = idx.gsub(/ /, "").gsub(/,/, "_").gsub(/\(.*\)/, "")
|
|
273
277
|
sql << " CREATE #{pre_sql} INDEX #{klass::DBTABLE}_#{idxname}_idx #{post_sql} ON #{klass::DBTABLE} (#{idx});"
|
|
274
278
|
end
|
data/lib/og/connection.rb
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
# * George Moschovitis <gm@navel.gr>
|
|
3
3
|
#
|
|
4
4
|
# (c) 2004 Navel, all rights reserved.
|
|
5
|
-
# $Id: connection.rb
|
|
5
|
+
# $Id: connection.rb 167 2004-11-23 14:03:10Z gmosx $
|
|
6
6
|
|
|
7
7
|
module Og;
|
|
8
8
|
|
|
9
|
-
require "
|
|
10
|
-
require "
|
|
11
|
-
require "
|
|
9
|
+
require "glue/property"
|
|
10
|
+
require "glue/array"
|
|
11
|
+
require "glue/time"
|
|
12
12
|
|
|
13
13
|
# = Connection
|
|
14
14
|
#
|
data/lib/og/meta.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# * George Moschovitis <gm@navel.gr>
|
|
3
3
|
#
|
|
4
4
|
# (c) 2004 Navel, all rights reserved.
|
|
5
|
-
# $Id: meta.rb
|
|
5
|
+
# $Id: meta.rb 159 2004-11-18 10:18:30Z gmosx $
|
|
6
6
|
|
|
7
7
|
require 'og/backend'
|
|
8
8
|
|
|
@@ -33,6 +33,12 @@ end
|
|
|
33
33
|
#
|
|
34
34
|
module MetaLanguage
|
|
35
35
|
|
|
36
|
+
# Defines an SQL index.
|
|
37
|
+
#
|
|
38
|
+
def sql_index(index, options = {})
|
|
39
|
+
meta :sql_index, [index, options]
|
|
40
|
+
end
|
|
41
|
+
|
|
36
42
|
# Implements a 'belongs_to' relation.
|
|
37
43
|
# Automatically enchants the calling class with helper methods.
|
|
38
44
|
#
|
data/lib/og/version.rb
ADDED
data/lib/xsl/base.xsl
CHANGED
|
@@ -77,6 +77,16 @@ author: gmosx
|
|
|
77
77
|
</xsl:processing-instruction>
|
|
78
78
|
</xsl:template>
|
|
79
79
|
|
|
80
|
+
<!-- rendering errors -->
|
|
81
|
+
<xsl:template name='x:rendering-errors' match='x:rendering-errors'>
|
|
82
|
+
<ruby>unless @rendering_errors.empty?</ruby>
|
|
83
|
+
<div id="rendering-errors">
|
|
84
|
+
<h3>RENDERING ERRORS:</h3>
|
|
85
|
+
#{@rendering_errors.join('<br />')}
|
|
86
|
+
</div>
|
|
87
|
+
<ruby>end</ruby>
|
|
88
|
+
</xsl:template>
|
|
89
|
+
|
|
80
90
|
<!-- form errors temlate -->
|
|
81
91
|
<xsl:template name='x:form-errors' match='x:form-errors'>
|
|
82
92
|
<ruby>if errors = request.errors_to_a()</ruby>
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# :nodoc: all
|
|
2
2
|
|
|
3
3
|
require "test/unit"
|
|
4
|
-
require "
|
|
4
|
+
require "glue/cache"
|
|
5
5
|
|
|
6
6
|
class TC_N_Utils_Cache < Test::Unit::TestCase
|
|
7
7
|
# :nodoc: all
|
|
8
8
|
|
|
9
9
|
class Dummy
|
|
10
|
-
include
|
|
10
|
+
include G::LRUCache::Item
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def setup
|
|
14
|
-
@cache =
|
|
14
|
+
@cache = G::LRUCache.new(maxitems = 3)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def teardown
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
# :nodoc: all
|
|
2
2
|
|
|
3
3
|
require "test/unit"
|
|
4
|
-
require "
|
|
4
|
+
require "glue/hash"
|
|
5
5
|
|
|
6
6
|
class TC_N2_Utils_Cache < Test::Unit::TestCase
|
|
7
7
|
# :nodoc: all
|
|
8
|
-
include N
|
|
9
8
|
|
|
10
9
|
def setup
|
|
11
|
-
@safe_cache = SafeHash.new(Hash.new)
|
|
10
|
+
@safe_cache = G::SafeHash.new(Hash.new)
|
|
12
11
|
end
|
|
13
12
|
|
|
14
13
|
def teardown
|