nitro 0.1.2 → 0.2.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 +3 -0
- data/ChangeLog +83 -0
- data/LICENCE +8 -8
- data/README +5 -1
- data/RELEASES +9 -0
- data/Rakefile +43 -23
- data/bin/cluster.rb +15 -12
- data/examples/ndb/README +5 -0
- data/examples/ndb/run.rb +271 -0
- data/examples/simple/README +27 -0
- data/examples/simple/app.rb +2 -2
- data/examples/simple/conf/config.rb +3 -8
- data/examples/simple/conf/debug-config.rb +6 -7
- data/examples/simple/conf/live-config.rb +2 -4
- data/examples/simple/conf/requires.rb +2 -10
- data/examples/simple/ctl +1 -1
- data/examples/simple/env.rb +2 -2
- data/examples/simple/root/article-form.ss +1 -1
- data/examples/simple/root/comments-form.ss +1 -1
- data/examples/tiny/README +15 -0
- data/examples/tiny/app.rb +2 -2
- data/examples/tiny/conf/config.rb +8 -13
- data/examples/tiny/conf/requires.rb +2 -8
- data/examples/tiny/ctl +2 -17
- data/examples/tiny/root/index.sx +1 -1
- data/lib/n/app/cluster.rb +15 -12
- data/lib/n/app/cookie.rb +10 -9
- data/lib/n/app/filters/autologin.rb +5 -4
- data/lib/n/app/fragment.rb +13 -10
- data/lib/n/app/handlers.rb +29 -22
- data/lib/n/app/handlers/code-handler.rb +2 -4
- data/lib/n/app/handlers/page-handler.rb +3 -5
- data/lib/n/app/request-part.rb +2 -7
- data/lib/n/app/request.rb +27 -22
- data/lib/n/app/script.rb +4 -15
- data/lib/n/app/server.rb +11 -7
- data/lib/n/app/session.rb +7 -11
- data/lib/n/app/user.rb +10 -11
- data/lib/n/app/webrick-servlet.rb +23 -10
- data/lib/n/app/webrick.rb +13 -10
- data/lib/n/application.rb +13 -6
- data/lib/n/config.rb +18 -7
- data/lib/n/db.rb +56 -40
- data/lib/n/db/connection.rb +18 -22
- data/lib/n/db/managed.rb +6 -8
- data/lib/n/db/mixins.rb +4 -7
- data/lib/n/db/mysql.rb +6 -3
- data/lib/n/db/psql.rb +15 -10
- data/lib/n/db/tools.rb +5 -9
- data/lib/n/db/utils.rb +11 -8
- data/lib/n/events.rb +14 -10
- data/lib/n/logger.rb +8 -2
- data/lib/n/macros.rb +5 -2
- data/lib/n/parts.rb +13 -10
- data/lib/n/properties.rb +17 -12
- data/lib/n/server.rb +3 -2
- data/lib/n/server/filter.rb +2 -4
- data/lib/n/shaders.rb +11 -13
- data/lib/n/sitemap.rb +23 -20
- data/lib/n/std.rb +15 -4
- data/lib/n/sync/clc.rb +4 -2
- data/lib/n/sync/handler.rb +20 -12
- data/lib/n/sync/server.rb +24 -18
- data/lib/n/ui/date-select.rb +2 -4
- data/lib/n/ui/pager.rb +10 -8
- data/lib/n/ui/popup.rb +5 -4
- data/lib/n/ui/select.rb +3 -4
- data/lib/n/ui/tabs.rb +3 -4
- data/lib/n/utils/array.rb +6 -14
- data/lib/n/utils/cache.rb +3 -7
- data/lib/n/utils/gfx.rb +5 -6
- data/lib/n/utils/hash.rb +7 -12
- data/lib/n/utils/html.rb +8 -4
- data/lib/n/utils/http.rb +10 -6
- data/lib/n/utils/mail.rb +6 -6
- data/lib/n/utils/number.rb +3 -4
- data/lib/n/utils/pool.rb +5 -8
- data/lib/n/utils/string.rb +12 -10
- data/lib/n/utils/template.rb +3 -5
- data/lib/n/utils/time.rb +7 -5
- data/lib/n/utils/uri.rb +5 -4
- data/lib/p/README +1 -0
- data/lib/xsl/xforms.xsl +2 -0
- data/test/n/app/tc_cookie.rb +34 -0
- data/test/n/app/tc_request.rb +70 -0
- data/test/n/app/tc_requestpart.rb +28 -0
- data/test/n/app/tc_session.rb +34 -0
- data/test/n/tc_db.rb +223 -0
- data/test/n/tc_db_mysql.rb +241 -0
- data/test/n/tc_events.rb +44 -0
- data/test/n/tc_properties.rb +68 -0
- data/test/n/tc_sitemap.rb +37 -0
- data/test/n/ui/tc_pager.rb +52 -0
- data/test/n/utils/tc_cache.rb +47 -0
- data/test/n/utils/tc_hash.rb +39 -0
- data/test/n/utils/tc_html.rb +79 -0
- data/test/n/utils/tc_http.rb +18 -0
- data/test/n/utils/tc_number.rb +21 -0
- data/test/n/utils/tc_strings.rb +149 -0
- data/test/n/utils/tc_uri.rb +100 -0
- metadata +49 -22
- data/doc/css.txt +0 -20
- data/doc/ideas.txt +0 -120
- data/doc/pg.txt +0 -47
- data/doc/svn.txt +0 -82
- data/doc/todo.txt +0 -30
- data/examples/simple/conf/overrides.rb +0 -9
- data/examples/simple/logs/access_log +0 -2
- data/examples/simple/logs/apache.log +0 -3
- data/examples/simple/logs/app.log +0 -1
- data/examples/simple/logs/events.log +0 -1
- data/examples/tiny/conf/apache.conf +0 -100
- data/examples/tiny/logs/access_log +0 -9
- data/examples/tiny/logs/apache.log +0 -9
- data/lib/n/db/make-release.sh +0 -26
- data/lib/n/tools/README +0 -11
- data/lib/xsl/ce.xsl +0 -30
- data/lib/xsl/localization.xsl +0 -23
- data/test/run.rb +0 -95
data/lib/n/db/managed.rb
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
# = Database Managed Objects
|
|
2
|
-
#
|
|
3
|
-
# Base Mixin for Managed Objects (Entities)
|
|
4
|
-
#
|
|
5
|
-
# === Design
|
|
6
|
-
#
|
|
7
1
|
# code:
|
|
8
|
-
# George Moschovitis <gm@navel.gr>
|
|
2
|
+
# * George Moschovitis <gm@navel.gr>
|
|
9
3
|
#
|
|
10
4
|
# (c) 2004 Navel, all rights reserved.
|
|
11
|
-
# $Id: managed.rb
|
|
5
|
+
# $Id: managed.rb 99 2004-10-22 09:50:28Z gmosx $
|
|
12
6
|
|
|
13
7
|
|
|
14
8
|
# Extend the base Module class
|
|
@@ -53,6 +47,10 @@ require "n/properties"
|
|
|
53
47
|
require "n/utils/array"
|
|
54
48
|
require "n/utils/time"
|
|
55
49
|
|
|
50
|
+
# = Managed
|
|
51
|
+
#
|
|
52
|
+
# Base Mixin for Managed Objects (Entities)
|
|
53
|
+
#
|
|
56
54
|
# The database interfaces automatically manages classes that
|
|
57
55
|
# include this interface.
|
|
58
56
|
#
|
data/lib/n/db/mixins.rb
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
# = Database Managed Mixins
|
|
2
2
|
#
|
|
3
|
-
# Useful mixins for managed objects.
|
|
4
|
-
#
|
|
5
|
-
# === Design
|
|
6
|
-
#
|
|
7
|
-
# All mixins should have at least initialize(*args) to be more chainable?
|
|
3
|
+
# Useful mixins for synthesizing managed objects. All mixins should
|
|
4
|
+
# have at least initialize(*args) to be more chainable?
|
|
8
5
|
#
|
|
9
6
|
# code:
|
|
10
|
-
# George Moschovitis <gm@navel.gr>
|
|
7
|
+
# * George Moschovitis <gm@navel.gr>
|
|
11
8
|
#
|
|
12
9
|
# (c) 2004 Navel, all rights reserved.
|
|
13
|
-
# $Id: mixins.rb
|
|
10
|
+
# $Id: mixins.rb 99 2004-10-22 09:50:28Z gmosx $
|
|
14
11
|
|
|
15
12
|
module N;
|
|
16
13
|
|
data/lib/n/db/mysql.rb
CHANGED
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
# EXPERIMENTAL: NOT WORKING YET
|
|
8
8
|
#
|
|
9
9
|
# code:
|
|
10
|
-
# George Moschovitis <gm@navel.gr>
|
|
11
10
|
# Elias Athanasopoulos <elathan@navel.gr>
|
|
11
|
+
# George Moschovitis <gm@navel.gr>
|
|
12
12
|
#
|
|
13
13
|
# (c) 2004 Navel, all rights reserved.
|
|
14
|
-
# $Id: mysql.rb
|
|
14
|
+
# $Id: mysql.rb 98 2004-10-22 07:36:20Z gmosx $
|
|
15
15
|
|
|
16
16
|
require "mysql"
|
|
17
17
|
require "time.rb"
|
|
@@ -19,7 +19,10 @@ require "date.rb"
|
|
|
19
19
|
|
|
20
20
|
module N;
|
|
21
21
|
|
|
22
|
-
#
|
|
22
|
+
# = DbUtils
|
|
23
|
+
#
|
|
24
|
+
# Backend specific utils. Extend the base utils
|
|
25
|
+
# collection.
|
|
23
26
|
#
|
|
24
27
|
module DbUtils
|
|
25
28
|
|
data/lib/n/db/psql.rb
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
# = PostgreSQL backend
|
|
2
|
-
#
|
|
3
|
-
# Implement the Db backend using the PostgreSQL RDBMS.
|
|
4
|
-
# Include the Psql backend to the standard DbConnection
|
|
5
|
-
# object to synthesize a PsqlConnection at runtime.
|
|
6
|
-
#
|
|
7
1
|
# code:
|
|
8
|
-
# George Moschovitis <gm@navel.gr>
|
|
2
|
+
# * George Moschovitis <gm@navel.gr>
|
|
9
3
|
#
|
|
10
4
|
# (c) 2004 Navel, all rights reserved.
|
|
11
5
|
# $Id$
|
|
12
6
|
|
|
7
|
+
require "base64"
|
|
13
8
|
require "postgres"
|
|
14
9
|
require "time.rb"
|
|
15
10
|
require "date.rb"
|
|
16
11
|
|
|
17
12
|
module N;
|
|
18
13
|
|
|
14
|
+
# = DbUtils
|
|
15
|
+
#
|
|
19
16
|
# Backend specific utils
|
|
20
17
|
#
|
|
21
18
|
module DbUtils
|
|
@@ -74,6 +71,10 @@ module DbUtils
|
|
|
74
71
|
|
|
75
72
|
# Return an evaluator for reading the property
|
|
76
73
|
# No need to optimize this, used only to precalculate code.
|
|
74
|
+
#--
|
|
75
|
+
# gmosx: base64 encoding is used because the unencode_bytea
|
|
76
|
+
# method of postgres is not implemented
|
|
77
|
+
#++
|
|
77
78
|
#
|
|
78
79
|
def self.read_prop(p, idx)
|
|
79
80
|
case p.klass.to_s
|
|
@@ -88,11 +89,12 @@ module DbUtils
|
|
|
88
89
|
when TrueClass.name
|
|
89
90
|
return "('true' == rows.getvalue(tuple, #{idx}))"
|
|
90
91
|
when Object.name
|
|
91
|
-
return "Marshal.load(
|
|
92
|
+
return "Marshal.load(Base64.decode64(rows.getvalue(tuple, #{idx}).gsub(/\\\\012/, '\n')))"
|
|
92
93
|
when Array.name
|
|
93
|
-
return "Marshal.load(
|
|
94
|
+
return "Marshal.load(Base64.decode64(rows.getvalue(tuple, #{idx}).gsub(/\\\\012/, '\n')))"
|
|
95
|
+
# return "Marshal.load(N::DbUtils.unescape_bytes(rows.getvalue(tuple, #{idx})))"
|
|
94
96
|
when Hash.name
|
|
95
|
-
return "Marshal.load(
|
|
97
|
+
return "Marshal.load(Base64.decode64(rows.getvalue(tuple, #{idx}).gsub(/\\\\012/, '\n')))"
|
|
96
98
|
else # String
|
|
97
99
|
return "rows.getvalue(tuple, #{idx})"
|
|
98
100
|
end
|
|
@@ -103,6 +105,9 @@ end
|
|
|
103
105
|
#
|
|
104
106
|
# Implement the Db backend using the PostgreSQL RDBMS.
|
|
105
107
|
#
|
|
108
|
+
# Include the Psql backend to the standard DbConnection
|
|
109
|
+
# object to synthesize a PsqlConnection at runtime.
|
|
110
|
+
#
|
|
106
111
|
module PsqlBackend
|
|
107
112
|
|
|
108
113
|
# map between Ruby and SQL types
|
data/lib/n/db/tools.rb
CHANGED
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
# = Database Tools
|
|
2
|
-
#
|
|
3
|
-
# Useful methods wor working with the Db BAckend
|
|
4
|
-
#
|
|
5
1
|
# code:
|
|
6
|
-
# George Moschovitis <gm@navel.gr>
|
|
7
|
-
# Elias Athanasopoulos <elathan@navel.gr>
|
|
2
|
+
# * George Moschovitis <gm@navel.gr>
|
|
3
|
+
# * Elias Athanasopoulos <elathan@navel.gr>
|
|
8
4
|
#
|
|
9
5
|
# (c) 2004 Navel, all rights reserved.
|
|
10
|
-
# $Id: tools.rb
|
|
6
|
+
# $Id: tools.rb 99 2004-10-22 09:50:28Z gmosx $
|
|
11
7
|
|
|
12
8
|
module N;
|
|
13
9
|
|
|
14
10
|
require "n/db"
|
|
15
11
|
|
|
16
|
-
# =
|
|
12
|
+
# = DbTools
|
|
17
13
|
#
|
|
18
|
-
#
|
|
14
|
+
# Useful methods wor working with the Db BAckend
|
|
19
15
|
#
|
|
20
16
|
module DbTools
|
|
21
17
|
|
data/lib/n/db/utils.rb
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
# = Database Utilities
|
|
2
|
-
#
|
|
3
|
-
# A collection of database utilities.
|
|
4
|
-
#
|
|
5
1
|
# code:
|
|
6
|
-
# George Moschovitis <gm@navel.gr>
|
|
2
|
+
# * George Moschovitis <gm@navel.gr>
|
|
3
|
+
# * Elias Athanasopoulos <elathan@navel.gr>
|
|
7
4
|
#
|
|
8
5
|
# (c) 2004 Navel, all rights reserved.
|
|
9
6
|
# $Id$
|
|
10
7
|
|
|
11
8
|
module N;
|
|
12
9
|
|
|
10
|
+
require "base64"
|
|
11
|
+
|
|
13
12
|
require "n/properties"
|
|
14
13
|
require "n/utils/array"
|
|
15
14
|
require "n/utils/time"
|
|
@@ -39,7 +38,7 @@ module DbUtils
|
|
|
39
38
|
# that we can convert back to the original notation if needed.
|
|
40
39
|
#
|
|
41
40
|
def self.sql_table(klass)
|
|
42
|
-
return "#{klass}".gsub(/::/, "_").downcase
|
|
41
|
+
return "_#{klass}".gsub(/::/, "_").downcase
|
|
43
42
|
end
|
|
44
43
|
|
|
45
44
|
# Convert a ruby time to an sql timestamp.
|
|
@@ -70,6 +69,10 @@ module DbUtils
|
|
|
70
69
|
# No need to optimize this, used only to precalculate code.
|
|
71
70
|
#
|
|
72
71
|
# FIXME: add extra handling for float.
|
|
72
|
+
#--
|
|
73
|
+
# gmosx: base64 encoding is used because the unencode_bytea
|
|
74
|
+
# method of postgres is not implemented
|
|
75
|
+
#++
|
|
73
76
|
#
|
|
74
77
|
def self.write_prop(p)
|
|
75
78
|
if String == p.klass
|
|
@@ -80,7 +83,7 @@ module DbUtils
|
|
|
80
83
|
return %|#\{@#{p.symbol} ? "'#\{DbUtils.sql_date(@#{p.symbol})\}'" : 'NULL'\}|
|
|
81
84
|
elsif Object == p.klass or Array == p.klass or Hash == p.klass
|
|
82
85
|
#return "'#\{DbUtils.escape_bytes(Marshal.dump(@#{p.symbol}))\}'"
|
|
83
|
-
return "'#\{
|
|
86
|
+
return "'#\{Base64.encode64(Marshal.dump(@#{p.symbol}))\}'"
|
|
84
87
|
else
|
|
85
88
|
# Fixnum, TrueClass
|
|
86
89
|
return "#\{@#{p.symbol} || 'NULL'\}"
|
|
@@ -95,5 +98,5 @@ module DbUtils
|
|
|
95
98
|
end
|
|
96
99
|
end
|
|
97
100
|
|
|
98
|
-
end #
|
|
101
|
+
end # module
|
|
99
102
|
|
data/lib/n/events.rb
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
#
|
|
3
3
|
# A simple events mechanism.
|
|
4
4
|
#
|
|
5
|
+
# code:
|
|
6
|
+
# George Moschovitis <gm@navel.gr>
|
|
7
|
+
#
|
|
8
|
+
# (c) 2002-2003 Navel, all rights reserved.
|
|
9
|
+
# $Id: events.rb 98 2004-10-22 07:36:20Z gmosx $
|
|
10
|
+
|
|
11
|
+
module N;
|
|
12
|
+
|
|
13
|
+
# = EventManager
|
|
14
|
+
#
|
|
15
|
+
# A simple events mechanism.
|
|
16
|
+
#
|
|
5
17
|
# === Design:
|
|
6
18
|
#
|
|
7
19
|
# As always we try to keep the design simple:
|
|
@@ -15,15 +27,6 @@
|
|
|
15
27
|
# Add a class of events to allow filtering of certain
|
|
16
28
|
# events. Perhaps name can be used for this!
|
|
17
29
|
#
|
|
18
|
-
# code: tml
|
|
19
|
-
#
|
|
20
|
-
# (c) 2002-2003 Navel, all rights reserved.
|
|
21
|
-
# $Id: events.rb 71 2004-10-18 10:50:22Z gmosx $
|
|
22
|
-
|
|
23
|
-
module N;
|
|
24
|
-
|
|
25
|
-
# = EventManager
|
|
26
|
-
#
|
|
27
30
|
# === Example:
|
|
28
31
|
#
|
|
29
32
|
# $ev.event("id/user/login", user)
|
|
@@ -101,8 +104,9 @@ class EventManager
|
|
|
101
104
|
alias_method :fire, :event
|
|
102
105
|
end
|
|
103
106
|
|
|
107
|
+
# = Event
|
|
104
108
|
#
|
|
105
|
-
#
|
|
109
|
+
# Encapsulates an Event
|
|
106
110
|
#
|
|
107
111
|
class Event
|
|
108
112
|
@@manager = EventManager.new()
|
data/lib/n/logger.rb
CHANGED
|
@@ -3,13 +3,19 @@
|
|
|
3
3
|
# A simple wrapper arround the Ruby logger. Mainly for compatibility
|
|
4
4
|
# purposes.
|
|
5
5
|
#
|
|
6
|
-
# code:
|
|
6
|
+
# code:
|
|
7
|
+
# George Moschovitis <gm@navel.gr>
|
|
7
8
|
#
|
|
8
9
|
# (c) 2004 Navel, all rights reserved.
|
|
9
|
-
# $Id: logger.rb
|
|
10
|
+
# $Id: logger.rb 98 2004-10-22 07:36:20Z gmosx $
|
|
10
11
|
|
|
11
12
|
require "logger"
|
|
12
13
|
|
|
14
|
+
# = Logger
|
|
15
|
+
#
|
|
16
|
+
# A simple wrapper arround the Ruby logger. Mainly for compatibility
|
|
17
|
+
# purposes.
|
|
18
|
+
#
|
|
13
19
|
class Logger
|
|
14
20
|
alias_method :devel, :debug
|
|
15
21
|
alias_method :fine, :debug
|
data/lib/n/macros.rb
CHANGED
|
@@ -3,10 +3,13 @@
|
|
|
3
3
|
# A powerfull macro implementation for Ruby. Allows definition
|
|
4
4
|
# of new macro.
|
|
5
5
|
#
|
|
6
|
-
#
|
|
6
|
+
# EXPERIMENTAL, not fully working yet
|
|
7
|
+
#
|
|
8
|
+
# code:
|
|
9
|
+
# George Moschovitis <gm@navel.gr>
|
|
7
10
|
#
|
|
8
11
|
# (c) 2004 Navel, all rights reserved.
|
|
9
|
-
# $Id: macros.rb
|
|
12
|
+
# $Id: macros.rb 98 2004-10-22 07:36:20Z gmosx $
|
|
10
13
|
|
|
11
14
|
$__macros__ = {}
|
|
12
15
|
$__required__ = {}
|
data/lib/n/parts.rb
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
# = Part
|
|
2
|
-
#
|
|
3
|
-
# A part encapsulates a service in the Framework.
|
|
4
|
-
#
|
|
5
1
|
# code:
|
|
6
|
-
# George Moschovitis <gm@navel.gr>
|
|
2
|
+
# * George Moschovitis <gm@navel.gr>
|
|
7
3
|
#
|
|
8
4
|
# (c) 2004 Navel, all rights reserved.
|
|
9
|
-
# $Id: parts.rb
|
|
5
|
+
# $Id: parts.rb 99 2004-10-22 09:50:28Z gmosx $
|
|
10
6
|
|
|
11
7
|
require "singleton"
|
|
12
8
|
|
|
@@ -108,12 +104,14 @@ class Part
|
|
|
108
104
|
def unistall
|
|
109
105
|
end
|
|
110
106
|
|
|
111
|
-
#
|
|
107
|
+
# This method is called when the application
|
|
108
|
+
# is started.
|
|
112
109
|
#
|
|
113
110
|
def start
|
|
114
111
|
end
|
|
115
112
|
|
|
116
|
-
#
|
|
113
|
+
# This method is called when the application
|
|
114
|
+
# is stopped.
|
|
117
115
|
#
|
|
118
116
|
def stop
|
|
119
117
|
end
|
|
@@ -139,7 +137,7 @@ class Part
|
|
|
139
137
|
def prepared_statements
|
|
140
138
|
end
|
|
141
139
|
|
|
142
|
-
#
|
|
140
|
+
# Dump this part as s String.
|
|
143
141
|
#
|
|
144
142
|
def to_s
|
|
145
143
|
@name
|
|
@@ -148,7 +146,12 @@ end
|
|
|
148
146
|
|
|
149
147
|
end # module
|
|
150
148
|
|
|
151
|
-
#
|
|
149
|
+
# = P
|
|
150
|
+
#
|
|
151
|
+
# This module is used as a namespace that encapsulates
|
|
152
|
+
# the Application Parts defined on top of the engine.
|
|
152
153
|
#
|
|
153
154
|
module P
|
|
154
155
|
end # module
|
|
156
|
+
|
|
157
|
+
|
data/lib/n/properties.rb
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# = Properties support
|
|
2
2
|
#
|
|
3
|
+
# code:
|
|
4
|
+
# George Moschovitis <gm@navel.gr>
|
|
5
|
+
# design:
|
|
6
|
+
# Anastastios Koutoumanos <ak@navel.gr>
|
|
7
|
+
# Elias Karakoulakis <ekarak@ktismata.com>
|
|
8
|
+
#
|
|
9
|
+
# (c) 2004 Navel, all rights reserved.
|
|
10
|
+
# $Id: properties.rb 98 2004-10-22 07:36:20Z gmosx $
|
|
11
|
+
|
|
12
|
+
require "n/utils/array"
|
|
13
|
+
require "n/utils/hash"
|
|
14
|
+
|
|
15
|
+
module N
|
|
16
|
+
|
|
17
|
+
# Property Metadata
|
|
18
|
+
#
|
|
3
19
|
# Ruby attributes are typeless and generally this is good. Some times
|
|
4
20
|
# we need extra metadata though, for example in relational mapping, or
|
|
5
21
|
# web form population.
|
|
@@ -12,19 +28,8 @@
|
|
|
12
28
|
# TODO:
|
|
13
29
|
# Perhaps a sync is needed in evals (!!!!)
|
|
14
30
|
#
|
|
15
|
-
# code: gmosx, drak, ekarak
|
|
16
|
-
#
|
|
17
|
-
# (c) 2004 Navel, all rights reserved.
|
|
18
|
-
# $Id: properties.rb 71 2004-10-18 10:50:22Z gmosx $
|
|
19
|
-
|
|
20
|
-
require "n/utils/array"
|
|
21
|
-
require "n/utils/hash"
|
|
22
|
-
|
|
23
|
-
module N
|
|
24
|
-
|
|
25
|
-
# Property Metadata
|
|
26
|
-
#
|
|
27
31
|
# === Design:
|
|
32
|
+
#
|
|
28
33
|
# - add default value in the extra sql
|
|
29
34
|
#
|
|
30
35
|
class Property
|
data/lib/n/server.rb
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
#
|
|
3
3
|
# Generic server infrastructure
|
|
4
4
|
#
|
|
5
|
-
# code
|
|
5
|
+
# code:
|
|
6
|
+
# George Moschovitis <gm@navel.gr>
|
|
6
7
|
#
|
|
7
8
|
# (c) 2004 Navel, all rights reserved.
|
|
8
|
-
# $Id: server.rb
|
|
9
|
+
# $Id: server.rb 98 2004-10-22 07:36:20Z gmosx $
|
|
9
10
|
|
|
10
11
|
require "n/application"
|
|
11
12
|
|
data/lib/n/server/filter.rb
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
# = Server filter
|
|
2
|
-
#
|
|
3
1
|
# code:
|
|
4
|
-
# George Moschovitis <gm@navel.gr>
|
|
2
|
+
# * George Moschovitis <gm@navel.gr>
|
|
5
3
|
#
|
|
6
4
|
# (c) 20024 Navel, all rights reserved.
|
|
7
|
-
# $Id: filter.rb
|
|
5
|
+
# $Id: filter.rb 99 2004-10-22 09:50:28Z gmosx $
|
|
8
6
|
|
|
9
7
|
require "socket"
|
|
10
8
|
require "thread"
|
data/lib/n/shaders.rb
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
# code:
|
|
2
|
+
# * George Moschovitis <gm@navel.gr>
|
|
3
|
+
#
|
|
4
|
+
# (c) 2004 Navel, all rights reserved.
|
|
5
|
+
# $Id: shaders.rb 99 2004-10-22 09:50:28Z gmosx $
|
|
6
|
+
|
|
7
|
+
module N;
|
|
8
|
+
|
|
1
9
|
# = Shader
|
|
2
10
|
#
|
|
3
11
|
# The equivalent of a 3d engine shader. Converts the page representation
|
|
@@ -32,16 +40,6 @@
|
|
|
32
40
|
#
|
|
33
41
|
# - add monitoring support for xsl's.
|
|
34
42
|
#
|
|
35
|
-
# code:
|
|
36
|
-
# George Moschovitis <gm@navel.gr>
|
|
37
|
-
#
|
|
38
|
-
# (c) 2004 Navel, all rights reserved.
|
|
39
|
-
# $Id: shaders.rb 89 2004-10-20 12:55:58Z gmosx $
|
|
40
|
-
|
|
41
|
-
module N;
|
|
42
|
-
|
|
43
|
-
# = Shader
|
|
44
|
-
#
|
|
45
43
|
# One shader can utilize several xsls to render different pages.
|
|
46
44
|
# the shader selection may be time consuming but is performed once
|
|
47
45
|
# when transforming the script, so its essentially for free (and
|
|
@@ -99,9 +97,9 @@ end
|
|
|
99
97
|
|
|
100
98
|
# = NilShader
|
|
101
99
|
#
|
|
102
|
-
# A shader that does absolutely nothing.
|
|
103
|
-
#
|
|
104
|
-
#
|
|
100
|
+
# A shader that does absolutely nothing. Typically
|
|
101
|
+
# used when you want to avoid XSLT in simple
|
|
102
|
+
# applications.
|
|
105
103
|
#
|
|
106
104
|
class NilShader < Shader
|
|
107
105
|
def initialize
|