nitro 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|