nitro 0.3.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +284 -0
- data/{LICENCE → LICENSE} +1 -1
- data/README +13 -17
- data/RELEASES +13 -1
- data/Rakefile +1 -9
- data/bin/cluster.rb +5 -5
- data/examples/blog/README +45 -0
- data/examples/blog/apache.conf +0 -0
- data/examples/blog/app.rb +21 -0
- data/examples/blog/config.rb +88 -0
- data/examples/blog/lib/blog.rb +104 -0
- data/examples/blog/log/app.log +117 -0
- data/examples/blog/root/comments.xhtml +38 -0
- data/examples/blog/root/entry_form.xhtml +18 -0
- data/examples/blog/root/index.xhtml +43 -0
- data/examples/blog/root/login.xhtml +24 -0
- data/examples/blog/root/m/bubbles.gif +0 -0
- data/examples/blog/root/m/comments_curve.gif +0 -0
- data/examples/blog/root/m/down.gif +0 -0
- data/examples/blog/root/m/footer_bg.gif +0 -0
- data/examples/blog/root/m/garrow.gif +0 -0
- data/examples/blog/root/m/gbull.gif +0 -0
- data/examples/blog/root/m/grbull.gif +0 -0
- data/examples/blog/root/m/h1_bg.gif +0 -0
- data/examples/blog/root/m/header_bg.gif +0 -0
- data/examples/blog/root/m/obull.gif +0 -0
- data/examples/blog/root/m/page_bg.gif +0 -0
- data/examples/blog/root/m/side_title_bg.gif +0 -0
- data/examples/blog/root/m/sidebar_bg.gif +0 -0
- data/examples/blog/root/recent_posts.xhtml +14 -0
- data/examples/blog/root/style.css +201 -0
- data/examples/blog/root/style.xsl +118 -0
- data/examples/blog/root/view_entry.xhtml +29 -0
- data/examples/og/run.rb +27 -29
- data/examples/tiny/README +3 -4
- data/examples/tiny/app.rb +6 -16
- data/examples/tiny/config.rb +30 -0
- data/examples/tiny/log/app.log +23 -0
- data/examples/tiny/root/{index.sx → index.xhtml} +3 -6
- data/lib/{n/std.rb → nitro.rb} +9 -4
- data/lib/{n → nitro}/application.rb +13 -7
- data/lib/{n → nitro}/config.rb +38 -8
- data/lib/{n → nitro}/events.rb +1 -1
- data/lib/{n → nitro}/l10n.rb +1 -1
- data/lib/{n → nitro}/logger.rb +8 -8
- data/lib/{n → nitro}/macros.rb +3 -3
- data/lib/{n → nitro}/mixins.rb +1 -1
- data/lib/nitro/properties.rb +301 -0
- data/lib/{n → nitro}/server.rb +2 -2
- data/lib/{n → nitro}/server/appserver.rb +14 -5
- data/lib/{n → nitro}/server/cluster.rb +5 -5
- data/lib/{n → nitro}/server/cookie.rb +1 -1
- data/lib/nitro/server/dispatcher.rb +66 -0
- data/lib/{n → nitro}/server/filters.rb +7 -7
- data/lib/{n → nitro}/server/filters/autologin.rb +3 -3
- data/lib/{n → nitro}/server/fragment.rb +3 -3
- data/lib/{n → nitro}/server/handlers.rb +3 -3
- data/lib/nitro/server/render.rb +200 -0
- data/lib/{n → nitro}/server/request.rb +6 -6
- data/lib/{n → nitro}/server/requestpart.rb +5 -5
- data/lib/{n → nitro}/server/script.rb +3 -3
- data/lib/{n → nitro}/server/server.rb +4 -4
- data/lib/{n → nitro}/server/session.rb +3 -3
- data/lib/nitro/server/shaders.rb +165 -0
- data/lib/{n → nitro}/server/user.rb +1 -1
- data/lib/nitro/server/webrick.rb +175 -0
- data/lib/nitro/service.rb +25 -0
- data/lib/{n → nitro}/sitemap.rb +2 -2
- data/lib/{n → nitro}/ui/date-select.rb +0 -0
- data/lib/{n → nitro}/ui/pager.rb +1 -1
- data/lib/{n → nitro}/ui/popup.rb +1 -1
- data/lib/{n → nitro}/ui/select.rb +1 -1
- data/lib/{n → nitro}/ui/tabs.rb +1 -1
- data/lib/{n → nitro}/utils/array.rb +1 -1
- data/lib/{n → nitro}/utils/cache.rb +1 -1
- data/lib/{n → nitro}/utils/gfx.rb +1 -1
- data/lib/{n → nitro}/utils/hash.rb +1 -1
- data/lib/{n → nitro}/utils/html.rb +1 -1
- data/lib/{n → nitro}/utils/http.rb +1 -1
- data/lib/{n → nitro}/utils/mail.rb +1 -1
- data/lib/{n → nitro}/utils/number.rb +1 -1
- data/lib/{n → nitro}/utils/pool.rb +1 -1
- data/lib/{n → nitro}/utils/string.rb +19 -95
- data/lib/{n → nitro}/utils/template.rb +0 -0
- data/lib/{n → nitro}/utils/time.rb +1 -1
- data/lib/{n → nitro}/utils/uri.rb +3 -3
- data/lib/nitro/version.rb +11 -0
- data/lib/{n/og.rb → og.rb} +61 -31
- data/lib/{n/og → og}/backend.rb +13 -7
- data/lib/{n/og → og}/backends/mysql.rb +43 -39
- data/lib/{n/og → og}/backends/psql.rb +42 -38
- data/lib/{n/og → og}/connection.rb +21 -9
- data/lib/{n/og → og}/meta.rb +18 -12
- data/lib/xsl/base.xsl +11 -88
- data/test/n/server/tc_cookie.rb +1 -1
- data/test/n/server/tc_filters.rb +1 -1
- data/test/n/server/tc_request.rb +3 -3
- data/test/n/server/tc_requestpart.rb +2 -2
- data/test/n/server/tc_session.rb +1 -1
- data/test/n/tc_events.rb +1 -1
- data/test/n/tc_og.rb +16 -18
- data/test/n/tc_properties.rb +22 -18
- data/test/n/tc_sitemap.rb +2 -2
- data/test/n/ui/tc_pager.rb +4 -4
- data/test/n/utils/tc_cache.rb +1 -1
- data/test/n/utils/tc_hash.rb +1 -1
- data/test/n/utils/tc_html.rb +1 -1
- data/test/n/utils/tc_http.rb +1 -1
- data/test/n/utils/tc_number.rb +1 -1
- data/test/n/utils/tc_strings.rb +1 -46
- data/test/n/utils/tc_uri.rb +1 -1
- metadata +101 -108
- data/examples/simple/README +0 -42
- data/examples/simple/app.rb +0 -31
- data/examples/simple/conf/apache.conf +0 -100
- data/examples/simple/conf/config.rb +0 -72
- data/examples/simple/conf/debug-config.rb +0 -26
- data/examples/simple/conf/live-config.rb +0 -26
- data/examples/simple/conf/requires.rb +0 -43
- data/examples/simple/ctl +0 -32
- data/examples/simple/env.rb +0 -32
- data/examples/simple/install.rb +0 -12
- data/examples/simple/lib/articles/entities.rb +0 -37
- data/examples/simple/lib/articles/lc-en.rb +0 -36
- data/examples/simple/lib/articles/methods.rb +0 -55
- data/examples/simple/lib/articles/part.rb +0 -57
- data/examples/simple/root/add-article.sx +0 -15
- data/examples/simple/root/article-form.ss +0 -20
- data/examples/simple/root/comments-form.ss +0 -16
- data/examples/simple/root/comments.si +0 -30
- data/examples/simple/root/index.sx +0 -44
- data/examples/simple/root/shader/shader.xsl +0 -100
- data/examples/simple/root/shader/style.css +0 -9
- data/examples/simple/root/view-article.sx +0 -29
- data/examples/tiny/conf/config.rb +0 -62
- data/examples/tiny/conf/requires.rb +0 -33
- data/examples/tiny/ctl +0 -16
- data/lib/n/parts.rb +0 -157
- data/lib/n/properties.rb +0 -199
- data/lib/n/server/dispatcher.rb +0 -55
- data/lib/n/server/handlers/code-handler.rb +0 -182
- data/lib/n/server/handlers/page-handler.rb +0 -612
- data/lib/n/server/webrick.rb +0 -283
- data/lib/n/shaders.rb +0 -166
- data/lib/n/sync/clc.rb +0 -110
- data/lib/n/sync/handler.rb +0 -229
- data/lib/n/sync/server.rb +0 -176
- data/lib/p/README +0 -1
@@ -1,44 +0,0 @@
|
|
1
|
-
<?xml version="1.0"?>
|
2
|
-
|
3
|
-
<!--
|
4
|
-
A very simple page.
|
5
|
-
All comments are removed from the output.
|
6
|
-
This page uses XSLT because it is the prefered styling method
|
7
|
-
for Nitro applications. XSLT is used in a very trivial way in
|
8
|
-
this example. If you dont need the extra capabilities
|
9
|
-
of XSLT use a NilShader for your app.
|
10
|
-
-->
|
11
|
-
|
12
|
-
<root
|
13
|
-
xmlns:x="http://www.navel.gr/xml/shader.xsd"
|
14
|
-
xmlns:xl="http://www.w3.org/1999/xlink">
|
15
|
-
|
16
|
-
<?r
|
17
|
-
# methods:
|
18
|
-
P::Articles.del_article(request)
|
19
|
-
|
20
|
-
articles = N::Article.all
|
21
|
-
?>
|
22
|
-
|
23
|
-
<!-- x:page is a trivial template, used as an example -->
|
24
|
-
<x:page>
|
25
|
-
|
26
|
-
<?r if articles ?>
|
27
|
-
<ul>
|
28
|
-
<?r for article in articles ?>
|
29
|
-
<li>
|
30
|
-
<a href="articles/#{article.oid}">#{article.title}</a>
|
31
|
-
<!-- @?... is a macro that creates a postback uri -->
|
32
|
-
[<a href="@?del_article_oid=#{article.oid}">del</a>]
|
33
|
-
</li>
|
34
|
-
<?r end ?>
|
35
|
-
</ul>
|
36
|
-
<?r end ?>
|
37
|
-
|
38
|
-
<p>
|
39
|
-
<a href="add-article.sx">Add article</a>
|
40
|
-
</p>
|
41
|
-
|
42
|
-
</x:page>
|
43
|
-
|
44
|
-
</root>
|
@@ -1,100 +0,0 @@
|
|
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: shader.xsl 89 2004-10-20 12:55:58Z gmosx $
|
11
|
-
-->
|
12
|
-
|
13
|
-
<!DOCTYPE shader
|
14
|
-
[
|
15
|
-
<!ENTITY nbsp "<![CDATA[ ]]>">
|
16
|
-
<!ENTITY copy "<![CDATA[©]]>">
|
17
|
-
<!ENTITY euro "<![CDATA[€]]>">
|
18
|
-
<!ENTITY laquo "<![CDATA[«]]>">
|
19
|
-
<!ENTITY raquo "<![CDATA[»]]>">
|
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="no" encoding="iso-8859-1" />
|
31
|
-
<xsl:strip-space elements="*" />
|
32
|
-
|
33
|
-
<!-- application templates -->
|
34
|
-
|
35
|
-
<xsl:template name="x:head">
|
36
|
-
<head>
|
37
|
-
<title>Simple #{$sitemap.str_path(request.translated_uri, lc, request[:NAVARGS])}</title>
|
38
|
-
<meta name="title" content="Simple" />
|
39
|
-
<meta name="description" content="Example" />
|
40
|
-
<meta name="keywords" content="nitro, example" />
|
41
|
-
<meta name="category" content="example" />
|
42
|
-
<meta name="robots" content="index, follow" />
|
43
|
-
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
|
44
|
-
|
45
|
-
<xsl:apply-templates select="x:block[@id='meta']"/>
|
46
|
-
|
47
|
-
<base href="#$srv_url/" />
|
48
|
-
<link href="/shader/style.css" rel="stylesheet" type="text/css" media="screen" />
|
49
|
-
|
50
|
-
<xsl:apply-templates select="x:cell[@id='head']"/>
|
51
|
-
|
52
|
-
<script type="text/javascript">
|
53
|
-
<xsl:comment>
|
54
|
-
<xsl:if test="x:cell[@id='script']">
|
55
|
-
<xsl:apply-templates select="x:cell[@id='script']"/>
|
56
|
-
</xsl:if>
|
57
|
-
</xsl:comment>
|
58
|
-
</script>
|
59
|
-
|
60
|
-
</head>
|
61
|
-
</xsl:template>
|
62
|
-
|
63
|
-
<xsl:template name="x:header">
|
64
|
-
#{$sitemap.linked_path(request.translated_uri, lc, request[:NAVARGS])}
|
65
|
-
</xsl:template>
|
66
|
-
|
67
|
-
<xsl:template name="x:footer">
|
68
|
-
<div id="footer">
|
69
|
-
powered by <b>Nitro</b>.
|
70
|
-
</div>
|
71
|
-
</xsl:template>
|
72
|
-
|
73
|
-
<!--
|
74
|
-
can only include x:blocks, all other templates are ignored
|
75
|
-
-->
|
76
|
-
<xsl:template match="x:page">
|
77
|
-
<html>
|
78
|
-
<xsl:call-template name="x:head" />
|
79
|
-
<body>
|
80
|
-
<h1>Simple</h1>
|
81
|
-
|
82
|
-
<div class="page">
|
83
|
-
|
84
|
-
<xsl:call-template name="x:header" />
|
85
|
-
|
86
|
-
<xsl:apply-templates select="x:cell[@id='top']" />
|
87
|
-
|
88
|
-
<div class="block main">
|
89
|
-
<xsl:apply-templates/>
|
90
|
-
</div>
|
91
|
-
|
92
|
-
<xsl:apply-templates select="x:cell[@id='bottom']" />
|
93
|
-
|
94
|
-
<xsl:call-template name="x:footer" />
|
95
|
-
</div>
|
96
|
-
</body>
|
97
|
-
</html>
|
98
|
-
</xsl:template>
|
99
|
-
|
100
|
-
</xsl:stylesheet>
|
@@ -1,29 +0,0 @@
|
|
1
|
-
<?xml version="1.0"?>
|
2
|
-
|
3
|
-
<root
|
4
|
-
xmlns:x="http://www.navel.gr/xml/shader.xsd"
|
5
|
-
xmlns:xl="http://www.w3.org/1999/xlink">
|
6
|
-
|
7
|
-
<?r
|
8
|
-
article = Article[request["oid"]]
|
9
|
-
?>
|
10
|
-
|
11
|
-
<x:page>
|
12
|
-
|
13
|
-
<?r if article ?>
|
14
|
-
<h4>#{article.title}</h4>
|
15
|
-
<i>#{N::TimeUtils.date_time(article.create_time)}</i>
|
16
|
-
<p>
|
17
|
-
#{article.body}
|
18
|
-
</p>
|
19
|
-
<?r end ?>
|
20
|
-
|
21
|
-
<h3>Comments</h3>
|
22
|
-
|
23
|
-
<!-- include at run time (dynamic include) -->
|
24
|
-
<?r request[:comments_parent] = article ?>
|
25
|
-
<x:include xl:href="comments.si" />
|
26
|
-
|
27
|
-
</x:page>
|
28
|
-
|
29
|
-
</root>
|
@@ -1,62 +0,0 @@
|
|
1
|
-
# = Configuration
|
2
|
-
#
|
3
|
-
# Use a separate file for configuration, makes the
|
4
|
-
# main file more readable, and allows for reconfiguring
|
5
|
-
# (reload) the webapp without restarting the server.
|
6
|
-
#
|
7
|
-
# code:
|
8
|
-
# * George Moschovitis <gm@navel.gr>
|
9
|
-
#
|
10
|
-
# (c) 2004 Navel, all rights reserved.
|
11
|
-
# $Id: config.rb 112 2004-10-27 10:59:55Z gmosx $
|
12
|
-
|
13
|
-
require "n/logger"
|
14
|
-
require "n/config"
|
15
|
-
|
16
|
-
$name = "Tiny"
|
17
|
-
$root_dir = "tiny/root"
|
18
|
-
|
19
|
-
# Main logger
|
20
|
-
$log = Logger.new(STDERR, 10);
|
21
|
-
|
22
|
-
$reload_scripts = $DBG
|
23
|
-
|
24
|
-
require "n/std"
|
25
|
-
require "n/properties"
|
26
|
-
require "tiny/conf/requires"
|
27
|
-
|
28
|
-
$srv_extension_map = {
|
29
|
-
"sx" => ["text/html",
|
30
|
-
N::PageHandler.new
|
31
|
-
],
|
32
|
-
"si" => ["text/html",
|
33
|
-
N::PageHandler.new
|
34
|
-
],
|
35
|
-
"rx" => ["text/html",
|
36
|
-
N::CodeHandler.new
|
37
|
-
]
|
38
|
-
}
|
39
|
-
|
40
|
-
$srv_address = $appsrv_address = "127.0.0.1"
|
41
|
-
$srv_port = $appsrv_port = 8080
|
42
|
-
$srv_url = "http://#$srv_address:#$srv_port"
|
43
|
-
|
44
|
-
module App
|
45
|
-
|
46
|
-
# Config
|
47
|
-
#
|
48
|
-
module Config
|
49
|
-
|
50
|
-
def initialize_sitemap
|
51
|
-
end
|
52
|
-
|
53
|
-
def initialize_shaders
|
54
|
-
$default_shader = N::NilShader.new
|
55
|
-
end
|
56
|
-
|
57
|
-
def initialize_events
|
58
|
-
end
|
59
|
-
|
60
|
-
end
|
61
|
-
|
62
|
-
end # module
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# = Requires all needed files
|
2
|
-
#
|
3
|
-
# Collect all requires in one file includable
|
4
|
-
# in multiple executable scripts. Moreover, it
|
5
|
-
# makes the main script file more readable.
|
6
|
-
#
|
7
|
-
# code:
|
8
|
-
# * George Moschovitis <gm@navel.gr>
|
9
|
-
#
|
10
|
-
# (c) 2004 Navel, all rights reserved.
|
11
|
-
# $Id: requires.rb 124 2004-11-01 12:34:17Z gmosx $
|
12
|
-
|
13
|
-
require "n/std"
|
14
|
-
require "n/properties"
|
15
|
-
|
16
|
-
require "n/l10n"
|
17
|
-
require "n/logger"
|
18
|
-
require "n/parts"
|
19
|
-
require "n/events"
|
20
|
-
require "n/shaders"
|
21
|
-
require "n/mixins"
|
22
|
-
require "n/sitemap"
|
23
|
-
|
24
|
-
require "n/utils/number"
|
25
|
-
require "n/utils/string"
|
26
|
-
require "n/utils/gfx"
|
27
|
-
require "n/utils/html"
|
28
|
-
require "n/utils/hash"
|
29
|
-
require "n/utils/array"
|
30
|
-
|
31
|
-
require "n/server/handlers/page-handler"
|
32
|
-
require "n/server/handlers/code-handler"
|
33
|
-
|
data/examples/tiny/ctl
DELETED
data/lib/n/parts.rb
DELETED
@@ -1,157 +0,0 @@
|
|
1
|
-
# code:
|
2
|
-
# * George Moschovitis <gm@navel.gr>
|
3
|
-
#
|
4
|
-
# (c) 2004 Navel, all rights reserved.
|
5
|
-
# $Id: parts.rb 99 2004-10-22 09:50:28Z gmosx $
|
6
|
-
|
7
|
-
require "singleton"
|
8
|
-
|
9
|
-
require "n/l10n"
|
10
|
-
|
11
|
-
# gmosx, FIXME: safe is probably NOT needed!
|
12
|
-
$parts = N::SafeHash.new
|
13
|
-
$rewrites = N::SafeHash.new
|
14
|
-
$roles = N::SafeArray.new
|
15
|
-
|
16
|
-
module Kernel
|
17
|
-
|
18
|
-
# Special require for part definitions.
|
19
|
-
#
|
20
|
-
def require_part(path)
|
21
|
-
require("p/#{path}/part")
|
22
|
-
for lc in $lc_use
|
23
|
-
begin
|
24
|
-
require("p/#{path}/#{lc}")
|
25
|
-
rescue LoadError => e
|
26
|
-
# Drink it!
|
27
|
-
# $log.debug "No localization files for part '#{path}'" if $DBG
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
# Register a part
|
33
|
-
#
|
34
|
-
def register_part(part_class)
|
35
|
-
part = part_class.instance()
|
36
|
-
$parts[part.name] = part
|
37
|
-
|
38
|
-
# gmosx: DOESNT work yet, we have to manage
|
39
|
-
# the require order, perhaps DI/Copland can help
|
40
|
-
# here?
|
41
|
-
# auto require the parts this one depends
|
42
|
-
# on.
|
43
|
-
#
|
44
|
-
#for dep_part in part.dependencies
|
45
|
-
# require_part(dep_part)
|
46
|
-
#end
|
47
|
-
|
48
|
-
part.start()
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
# ----------------------------------------------------------------------
|
54
|
-
|
55
|
-
module N
|
56
|
-
|
57
|
-
# = Part
|
58
|
-
#
|
59
|
-
# A module of functionality in the framework
|
60
|
-
#
|
61
|
-
# = Design:
|
62
|
-
#
|
63
|
-
# Q: Part should include Entity to allow optional runtime
|
64
|
-
# administration/customization ??
|
65
|
-
#
|
66
|
-
class Part
|
67
|
-
include Singleton
|
68
|
-
|
69
|
-
# the (internal) name of this part
|
70
|
-
attr_accessor :name
|
71
|
-
# the tile of this part (intended for humans)
|
72
|
-
attr_accessor :title
|
73
|
-
# a description of the part
|
74
|
-
attr_accessor :body
|
75
|
-
# the version of this part
|
76
|
-
attr_accessor :version
|
77
|
-
# the vendor
|
78
|
-
attr_accessor :vendor
|
79
|
-
# url of the vendor's homepage.
|
80
|
-
attr_accessor :vendor_url
|
81
|
-
# an array of part names this part depends on. The named
|
82
|
-
# parts are automatically required when requiring this part.
|
83
|
-
attr_accessor :dependencies
|
84
|
-
|
85
|
-
prop_accessor String, :path
|
86
|
-
|
87
|
-
def initialize
|
88
|
-
sitemap()
|
89
|
-
rewrites()
|
90
|
-
roles()
|
91
|
-
prepared_statements()
|
92
|
-
end
|
93
|
-
|
94
|
-
# Install this part to the application. Called
|
95
|
-
# by the application installation scripts. Typically
|
96
|
-
# inserts bootstrap data in the database
|
97
|
-
#
|
98
|
-
def install
|
99
|
-
end
|
100
|
-
|
101
|
-
# Uninstall this part. Typically cleans up the
|
102
|
-
# database.
|
103
|
-
#
|
104
|
-
def unistall
|
105
|
-
end
|
106
|
-
|
107
|
-
# This method is called when the application
|
108
|
-
# is started.
|
109
|
-
#
|
110
|
-
def start
|
111
|
-
end
|
112
|
-
|
113
|
-
# This method is called when the application
|
114
|
-
# is stopped.
|
115
|
-
#
|
116
|
-
def stop
|
117
|
-
end
|
118
|
-
|
119
|
-
# Define the pages this part introduces.
|
120
|
-
#
|
121
|
-
def sitemap
|
122
|
-
end
|
123
|
-
|
124
|
-
# Define the rewrite rules for this part.
|
125
|
-
#
|
126
|
-
def rewrites
|
127
|
-
end
|
128
|
-
|
129
|
-
# Define the roles this part introduces.
|
130
|
-
#
|
131
|
-
def roles
|
132
|
-
end
|
133
|
-
|
134
|
-
# Define usefull prepared statements for this
|
135
|
-
# part
|
136
|
-
#
|
137
|
-
def prepared_statements
|
138
|
-
end
|
139
|
-
|
140
|
-
# Dump this part as s String.
|
141
|
-
#
|
142
|
-
def to_s
|
143
|
-
@name
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
end # module
|
148
|
-
|
149
|
-
# = P
|
150
|
-
#
|
151
|
-
# This module is used as a namespace that encapsulates
|
152
|
-
# the Application Parts defined on top of the engine.
|
153
|
-
#
|
154
|
-
module P
|
155
|
-
end # module
|
156
|
-
|
157
|
-
|