arrow 1.0.7
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/ChangeLog +1590 -0
- data/LICENSE +28 -0
- data/README +75 -0
- data/Rakefile +366 -0
- data/Rakefile.local +63 -0
- data/data/arrow/applets/TEMPLATE.rb.tpl +53 -0
- data/data/arrow/applets/args.rb +50 -0
- data/data/arrow/applets/config.rb +55 -0
- data/data/arrow/applets/error.rb +63 -0
- data/data/arrow/applets/files.rb +46 -0
- data/data/arrow/applets/inspect.rb +46 -0
- data/data/arrow/applets/nosuchapplet.rb +31 -0
- data/data/arrow/applets/status.rb +92 -0
- data/data/arrow/applets/test.rb +133 -0
- data/data/arrow/applets/tutorial/counter.rb +96 -0
- data/data/arrow/applets/tutorial/dingus.rb +67 -0
- data/data/arrow/applets/tutorial/hello.rb +34 -0
- data/data/arrow/applets/tutorial/hello2.rb +73 -0
- data/data/arrow/applets/tutorial/imgtext.rb +90 -0
- data/data/arrow/applets/tutorial/imgtext2.rb +286 -0
- data/data/arrow/applets/tutorial/index.rb +36 -0
- data/data/arrow/applets/tutorial/logo.rb +98 -0
- data/data/arrow/applets/tutorial/memcache.rb +61 -0
- data/data/arrow/applets/tutorial/missing.rb +37 -0
- data/data/arrow/applets/tutorial/protected.rb +100 -0
- data/data/arrow/applets/tutorial/redirector.rb +52 -0
- data/data/arrow/applets/tutorial/rndimages.rb +159 -0
- data/data/arrow/applets/tutorial/sharenotes.rb +83 -0
- data/data/arrow/applets/tutorial/subclassed-hello.rb +32 -0
- data/data/arrow/applets/tutorial/superhello.rb +72 -0
- data/data/arrow/applets/tutorial/timeclock.rb +78 -0
- data/data/arrow/applets/view-applet.rb +123 -0
- data/data/arrow/applets/view-template.rb +85 -0
- data/data/arrow/applets/wiki.rb +274 -0
- data/data/arrow/templates/TEMPLATE.tmpl.tpl +36 -0
- data/data/arrow/templates/applet-status.tmpl +153 -0
- data/data/arrow/templates/args-display.tmpl +120 -0
- data/data/arrow/templates/config/display-table.tmpl +36 -0
- data/data/arrow/templates/config/display.tmpl +36 -0
- data/data/arrow/templates/counter-deleted.tmpl +33 -0
- data/data/arrow/templates/counter.tmpl +59 -0
- data/data/arrow/templates/dingus.tmpl +55 -0
- data/data/arrow/templates/enumtable.tmpl +8 -0
- data/data/arrow/templates/error-display.tmpl +92 -0
- data/data/arrow/templates/filemap.tmpl +89 -0
- data/data/arrow/templates/hello-world-src.tmpl +34 -0
- data/data/arrow/templates/hello-world.tmpl +60 -0
- data/data/arrow/templates/imgtext/fontlist.tmpl +46 -0
- data/data/arrow/templates/imgtext/form.tmpl +70 -0
- data/data/arrow/templates/imgtext/reload-error.tmpl +40 -0
- data/data/arrow/templates/imgtext/reload.tmpl +55 -0
- data/data/arrow/templates/inspect/display.tmpl +80 -0
- data/data/arrow/templates/loginform.tmpl +64 -0
- data/data/arrow/templates/logout.tmpl +32 -0
- data/data/arrow/templates/memcache/display.tmpl +41 -0
- data/data/arrow/templates/navbar.incl +27 -0
- data/data/arrow/templates/nosuchapplet.tmpl +32 -0
- data/data/arrow/templates/printsource.tmpl +35 -0
- data/data/arrow/templates/protected.tmpl +36 -0
- data/data/arrow/templates/rndimages.tmpl +38 -0
- data/data/arrow/templates/service-response.tmpl +13 -0
- data/data/arrow/templates/sharenotes/display.tmpl +38 -0
- data/data/arrow/templates/status.tmpl +120 -0
- data/data/arrow/templates/templateviewer.tmpl +43 -0
- data/data/arrow/templates/test/harness.tmpl +57 -0
- data/data/arrow/templates/test/list.tmpl +48 -0
- data/data/arrow/templates/test/problem.tmpl +42 -0
- data/data/arrow/templates/tutorial/index.tmpl +37 -0
- data/data/arrow/templates/tutorial/missingapplet.tmpl +29 -0
- data/data/arrow/templates/view-applet-nosuch.tmpl +32 -0
- data/data/arrow/templates/view-applet.tmpl +40 -0
- data/data/arrow/templates/view-template.tmpl +83 -0
- data/data/arrow/templates/wiki/formerror.tmpl +47 -0
- data/data/arrow/templates/wiki/markup_help.incl +6 -0
- data/data/arrow/templates/wiki/new.tmpl +56 -0
- data/data/arrow/templates/wiki/new_system.tmpl +122 -0
- data/data/arrow/templates/wiki/sectionlist.tmpl +43 -0
- data/data/arrow/templates/wiki/show.tmpl +34 -0
- data/docs/manual/layouts/default.page +43 -0
- data/docs/manual/lib/api-filter.rb +81 -0
- data/docs/manual/lib/editorial-filter.rb +64 -0
- data/docs/manual/lib/examples-filter.rb +244 -0
- data/docs/manual/lib/links-filter.rb +117 -0
- data/lib/apache/fakerequest.rb +448 -0
- data/lib/apache/logger.rb +33 -0
- data/lib/arrow.rb +51 -0
- data/lib/arrow/acceptparam.rb +207 -0
- data/lib/arrow/applet.rb +725 -0
- data/lib/arrow/appletmixins.rb +218 -0
- data/lib/arrow/appletregistry.rb +590 -0
- data/lib/arrow/applettestcase.rb +503 -0
- data/lib/arrow/broker.rb +255 -0
- data/lib/arrow/cache.rb +176 -0
- data/lib/arrow/config-loaders/yaml.rb +75 -0
- data/lib/arrow/config.rb +615 -0
- data/lib/arrow/constants.rb +24 -0
- data/lib/arrow/cookie.rb +359 -0
- data/lib/arrow/cookieset.rb +108 -0
- data/lib/arrow/dispatcher.rb +368 -0
- data/lib/arrow/dispatcherloader.rb +50 -0
- data/lib/arrow/exceptions.rb +61 -0
- data/lib/arrow/fallbackhandler.rb +48 -0
- data/lib/arrow/formvalidator.rb +631 -0
- data/lib/arrow/htmltokenizer.rb +343 -0
- data/lib/arrow/logger.rb +488 -0
- data/lib/arrow/logger/apacheoutputter.rb +69 -0
- data/lib/arrow/logger/arrayoutputter.rb +63 -0
- data/lib/arrow/logger/coloroutputter.rb +111 -0
- data/lib/arrow/logger/fileoutputter.rb +96 -0
- data/lib/arrow/logger/htmloutputter.rb +54 -0
- data/lib/arrow/logger/outputter.rb +123 -0
- data/lib/arrow/mixins.rb +425 -0
- data/lib/arrow/monkeypatches.rb +94 -0
- data/lib/arrow/object.rb +117 -0
- data/lib/arrow/path.rb +196 -0
- data/lib/arrow/service.rb +447 -0
- data/lib/arrow/session.rb +289 -0
- data/lib/arrow/session/dbstore.rb +100 -0
- data/lib/arrow/session/filelock.rb +160 -0
- data/lib/arrow/session/filestore.rb +132 -0
- data/lib/arrow/session/id.rb +98 -0
- data/lib/arrow/session/lock.rb +253 -0
- data/lib/arrow/session/md5id.rb +42 -0
- data/lib/arrow/session/nulllock.rb +42 -0
- data/lib/arrow/session/posixlock.rb +166 -0
- data/lib/arrow/session/sha1id.rb +54 -0
- data/lib/arrow/session/store.rb +366 -0
- data/lib/arrow/session/usertrackid.rb +52 -0
- data/lib/arrow/spechelpers.rb +73 -0
- data/lib/arrow/template.rb +713 -0
- data/lib/arrow/template/attr.rb +31 -0
- data/lib/arrow/template/call.rb +31 -0
- data/lib/arrow/template/comment.rb +33 -0
- data/lib/arrow/template/container.rb +118 -0
- data/lib/arrow/template/else.rb +41 -0
- data/lib/arrow/template/elsif.rb +44 -0
- data/lib/arrow/template/escape.rb +53 -0
- data/lib/arrow/template/export.rb +87 -0
- data/lib/arrow/template/for.rb +145 -0
- data/lib/arrow/template/if.rb +78 -0
- data/lib/arrow/template/import.rb +119 -0
- data/lib/arrow/template/include.rb +206 -0
- data/lib/arrow/template/iterator.rb +208 -0
- data/lib/arrow/template/nodes.rb +734 -0
- data/lib/arrow/template/parser.rb +571 -0
- data/lib/arrow/template/prettyprint.rb +53 -0
- data/lib/arrow/template/render.rb +191 -0
- data/lib/arrow/template/selectlist.rb +94 -0
- data/lib/arrow/template/set.rb +87 -0
- data/lib/arrow/template/timedelta.rb +81 -0
- data/lib/arrow/template/unless.rb +78 -0
- data/lib/arrow/template/urlencode.rb +51 -0
- data/lib/arrow/template/yield.rb +139 -0
- data/lib/arrow/templatefactory.rb +125 -0
- data/lib/arrow/testcase.rb +567 -0
- data/lib/arrow/transaction.rb +608 -0
- data/rake/191_compat.rb +26 -0
- data/rake/dependencies.rb +76 -0
- data/rake/documentation.rb +114 -0
- data/rake/helpers.rb +502 -0
- data/rake/hg.rb +282 -0
- data/rake/manual.rb +787 -0
- data/rake/packaging.rb +129 -0
- data/rake/publishing.rb +278 -0
- data/rake/style.rb +62 -0
- data/rake/svn.rb +668 -0
- data/rake/testing.rb +187 -0
- data/rake/verifytask.rb +64 -0
- data/spec/arrow/acceptparam_spec.rb +157 -0
- data/spec/arrow/applet_spec.rb +575 -0
- data/spec/arrow/appletmixins_spec.rb +409 -0
- data/spec/arrow/appletregistry_spec.rb +294 -0
- data/spec/arrow/broker_spec.rb +153 -0
- data/spec/arrow/config_spec.rb +224 -0
- data/spec/arrow/cookieset_spec.rb +164 -0
- data/spec/arrow/dispatcher_spec.rb +137 -0
- data/spec/arrow/dispatcherloader_spec.rb +65 -0
- data/spec/arrow/formvalidator_spec.rb +781 -0
- data/spec/arrow/logger_spec.rb +346 -0
- data/spec/arrow/mixins_spec.rb +120 -0
- data/spec/arrow/service_spec.rb +645 -0
- data/spec/arrow/session_spec.rb +121 -0
- data/spec/arrow/template/iterator_spec.rb +222 -0
- data/spec/arrow/templatefactory_spec.rb +185 -0
- data/spec/arrow/transaction_spec.rb +319 -0
- data/spec/arrow_spec.rb +37 -0
- data/spec/lib/appletmatchers.rb +281 -0
- data/spec/lib/constants.rb +77 -0
- data/spec/lib/helpers.rb +41 -0
- data/spec/lib/matchers.rb +44 -0
- data/tests/cookie.tests.rb +310 -0
- data/tests/path.tests.rb +157 -0
- data/tests/session.tests.rb +111 -0
- data/tests/session_id.tests.rb +82 -0
- data/tests/session_lock.tests.rb +191 -0
- data/tests/session_store.tests.rb +53 -0
- data/tests/template.tests.rb +1360 -0
- metadata +339 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
3
|
+
|
|
4
|
+
<!--
|
|
5
|
+
|
|
6
|
+
(>>>title<<<)
|
|
7
|
+
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
<head>
|
|
11
|
+
<title>(>>>title<<<)</title>
|
|
12
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
13
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
14
|
+
<link rel="stylesheet" type="text/css" href="/css/arrow.css" />
|
|
15
|
+
</head>
|
|
16
|
+
<body>
|
|
17
|
+
|
|
18
|
+
<h1>(>>>title<<<)</h1>
|
|
19
|
+
|
|
20
|
+
(>>>POINT<<<)
|
|
21
|
+
|
|
22
|
+
<?include navbar.incl?>
|
|
23
|
+
|
|
24
|
+
</body>
|
|
25
|
+
</html>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
<!--
|
|
29
|
+
Local Variables:
|
|
30
|
+
mode: nxml
|
|
31
|
+
-->
|
|
32
|
+
|
|
33
|
+
>>>TEMPLATE-DEFINITION-SECTION<<<
|
|
34
|
+
("title" "Rendered page title: ")
|
|
35
|
+
|
|
36
|
+
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
3
|
+
|
|
4
|
+
<!--
|
|
5
|
+
|
|
6
|
+
Default Arrow Applet Status Page
|
|
7
|
+
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
<head>
|
|
11
|
+
<title>Arrow Applet Status: <?call applet.signature.name ?></title>
|
|
12
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
13
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
14
|
+
<link rel="stylesheet" type="text/css" href="/css/arrow.css" />
|
|
15
|
+
</head>
|
|
16
|
+
<body>
|
|
17
|
+
|
|
18
|
+
<h1>Applet Status: <?call applet.signature.name ?></h1>
|
|
19
|
+
|
|
20
|
+
<p><?call applet.signature.description ?></p>
|
|
21
|
+
|
|
22
|
+
<p>It is currently assigned to the '/<?attr uri ?>' URI in
|
|
23
|
+
the demo application.</p>
|
|
24
|
+
|
|
25
|
+
<?if uri =~ %r{/} ?><p>This could (possibly) be a chained
|
|
26
|
+
applet -- an applet which is delegated to by applets with URIs that are a prefix of
|
|
27
|
+
its own. If, for example, an applet is installed at <tt>/<?call
|
|
28
|
+
uri.sub(%r{(.*)/.*}) {|m| $1} ?></tt>, it would be run via its
|
|
29
|
+
<tt>#delegate</tt> method <em>before</em> this one, and could call this
|
|
30
|
+
applet by calling <tt>yield</tt>.</p><?end if?>
|
|
31
|
+
|
|
32
|
+
<table>
|
|
33
|
+
<tbody>
|
|
34
|
+
<tr class="odd-row">
|
|
35
|
+
<th class="row-title">Maintainer</th>
|
|
36
|
+
<td><?call applet.signature.maintainer ?></td>
|
|
37
|
+
</tr>
|
|
38
|
+
|
|
39
|
+
<tr class="even-row">
|
|
40
|
+
<th class="row-title">Version</th>
|
|
41
|
+
<td><?call applet.signature.version ?></td>
|
|
42
|
+
</tr>
|
|
43
|
+
|
|
44
|
+
<tr class="odd-row">
|
|
45
|
+
<th class="row-title">Default Action</th>
|
|
46
|
+
<td><?call applet.signature.default_action ?></td>
|
|
47
|
+
</tr>
|
|
48
|
+
|
|
49
|
+
<tr class="even-row">
|
|
50
|
+
<th class="row-title">Validator Profiles</th>
|
|
51
|
+
<td><tt><?escape applet.signature.validator_profiles.inspect ?></tt></td>
|
|
52
|
+
</tr>
|
|
53
|
+
|
|
54
|
+
<tr class="odd-row">
|
|
55
|
+
<th class="row-title">Source File</th>
|
|
56
|
+
<td><?call applet.class.sourcefile ?></td>
|
|
57
|
+
</tr>
|
|
58
|
+
|
|
59
|
+
<tr class="even-row">
|
|
60
|
+
<th class="row-title">Actions</th>
|
|
61
|
+
<td>
|
|
62
|
+
<ul>
|
|
63
|
+
<?yield name from applet.actions.each ?>
|
|
64
|
+
<li><a href="[?call txn.app_root?]/[?call uri?]/[?call name?]"><?call name ?></a>
|
|
65
|
+
</li>
|
|
66
|
+
<?end for?>
|
|
67
|
+
</ul>
|
|
68
|
+
</td>
|
|
69
|
+
</tr>
|
|
70
|
+
|
|
71
|
+
<!-- [?call applet.method(:delegate).to_s ?] -->
|
|
72
|
+
|
|
73
|
+
<tr class="odd-row">
|
|
74
|
+
<th class="row-title">Chainable?</th>
|
|
75
|
+
<td><strong><?if applet.delegable? ?>Yes.<?else?>No.<?end if?></strong></td>
|
|
76
|
+
</tr>
|
|
77
|
+
|
|
78
|
+
<tr class="even-row">
|
|
79
|
+
<th class="row-title">Templates</th>
|
|
80
|
+
<td>
|
|
81
|
+
<ul>
|
|
82
|
+
<?yield name,path from applet.signature.templates.each ?>
|
|
83
|
+
<li><a href="[?call txn.app_root?]/view-template/display/[?call
|
|
84
|
+
path?]"><?call path ?></a> (<strong><?call name.inspect
|
|
85
|
+
?></strong>)</li>
|
|
86
|
+
<?end yield?>
|
|
87
|
+
</ul>
|
|
88
|
+
</td>
|
|
89
|
+
</tr>
|
|
90
|
+
|
|
91
|
+
<tr class="odd-row">
|
|
92
|
+
<th class="row-title">Config</th>
|
|
93
|
+
<td>
|
|
94
|
+
<?if applet.signature.config.empty? ?>
|
|
95
|
+
(Empty)
|
|
96
|
+
<?else?>
|
|
97
|
+
<table class="kvlist">
|
|
98
|
+
<tbody>
|
|
99
|
+
<?yield name,val from applet.signature.config.each ?>
|
|
100
|
+
<tr><th><?attr name?></th><td><?escape val.inspect?></td></tr>
|
|
101
|
+
<?end yield?>
|
|
102
|
+
</tbody>
|
|
103
|
+
</table>
|
|
104
|
+
<?end if?>
|
|
105
|
+
</td>
|
|
106
|
+
</tr>
|
|
107
|
+
|
|
108
|
+
<tr class="even-row">
|
|
109
|
+
<th class="row-title">Timestamp</th>
|
|
110
|
+
<td><?call re.timestamp.ctime ?></td>
|
|
111
|
+
</tr>
|
|
112
|
+
|
|
113
|
+
<tr class="odd-row">
|
|
114
|
+
<th class="row-title">CPU Usage<br/>(child <?attr pid?>)</th>
|
|
115
|
+
<td>
|
|
116
|
+
|
|
117
|
+
<!-- CPU Usage Stats Table -->
|
|
118
|
+
<table class="clear">
|
|
119
|
+
<tbody>
|
|
120
|
+
<tr>
|
|
121
|
+
<th class="row-title">Total Runs</th>
|
|
122
|
+
<td><?call applet.run_count ?></td>
|
|
123
|
+
</tr>
|
|
124
|
+
<tr>
|
|
125
|
+
<th class="row-title">Total User</th>
|
|
126
|
+
<td><?call "%0.2f" % applet.total_utime ?> s</td>
|
|
127
|
+
</tr>
|
|
128
|
+
<tr>
|
|
129
|
+
<th class="row-title">Total System</th>
|
|
130
|
+
<td><?call "%0.2f" % applet.total_stime ?> s</td>
|
|
131
|
+
</tr>
|
|
132
|
+
<tr>
|
|
133
|
+
<th class="row-title">Average Usage</th>
|
|
134
|
+
<td><?call "%0.3f" % applet.average_usage ?></td>
|
|
135
|
+
</tr>
|
|
136
|
+
</tbody>
|
|
137
|
+
</table>
|
|
138
|
+
|
|
139
|
+
</td>
|
|
140
|
+
</tr>
|
|
141
|
+
</tbody>
|
|
142
|
+
</table>
|
|
143
|
+
|
|
144
|
+
<?include navbar.incl ?>
|
|
145
|
+
|
|
146
|
+
</body>
|
|
147
|
+
</html>
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
<!--
|
|
151
|
+
Local Variables:
|
|
152
|
+
mode: xml
|
|
153
|
+
-->
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
3
|
+
|
|
4
|
+
<!--
|
|
5
|
+
|
|
6
|
+
Argument Validation/Untainting/Testing applet
|
|
7
|
+
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
<head>
|
|
11
|
+
<title>Argument Validation/Untainting/Testing applet</title>
|
|
12
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
13
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
14
|
+
<link rel="stylesheet" type="text/css" href="/css/arrow.css" />
|
|
15
|
+
<style type="text/css" media="screen">
|
|
16
|
+
<!--
|
|
17
|
+
#form-table th { text-align: right; vertical-align: top; }
|
|
18
|
+
-->
|
|
19
|
+
</style>
|
|
20
|
+
</head>
|
|
21
|
+
<body>
|
|
22
|
+
|
|
23
|
+
<h1>Argument Validation/Untainting/Testing applet</h1>
|
|
24
|
+
|
|
25
|
+
<p>This is an applet to test argument validation.</p>
|
|
26
|
+
|
|
27
|
+
<form action="[?call txn.action?]" method="get">
|
|
28
|
+
|
|
29
|
+
<fieldset>
|
|
30
|
+
<legend>Customer Info</legend>
|
|
31
|
+
<table id="form-table">
|
|
32
|
+
<tbody>
|
|
33
|
+
<tr class="odd-row">
|
|
34
|
+
<th><label for="name-field">Customer<br/>Name</label></th>
|
|
35
|
+
<td>
|
|
36
|
+
<input id="name-field" type="text" name="name"
|
|
37
|
+
value="[?call txn.request.param('name') ?]" size="20"/><br/>
|
|
38
|
+
<small>Required field</small>
|
|
39
|
+
</td>
|
|
40
|
+
</tr>
|
|
41
|
+
|
|
42
|
+
<tr class="even-row">
|
|
43
|
+
<th><label for="email-field">Customer<br/>Email</label></th>
|
|
44
|
+
<td>
|
|
45
|
+
<input id="email-field" type="text" name="email"
|
|
46
|
+
value="[?call txn.request.param('email') ?]" size="35"/><br/>
|
|
47
|
+
<small>Tested via an <tt>:email</tt> constraint.</small>
|
|
48
|
+
</td>
|
|
49
|
+
</tr>
|
|
50
|
+
|
|
51
|
+
<tr class="odd-row">
|
|
52
|
+
<th><label for="description-field">Issue<br/>Description</label></th>
|
|
53
|
+
<td>
|
|
54
|
+
<input id="description-field" type="text" name="description"
|
|
55
|
+
value="[?call txn.request.param('description') ?]" size="55"/><br/>
|
|
56
|
+
<small>Constraint: <tt>/^[\x20-\x7f]+$/</tt></small>
|
|
57
|
+
</td>
|
|
58
|
+
</tr>
|
|
59
|
+
|
|
60
|
+
<tr class="even-row">
|
|
61
|
+
<th><label for="other-field">Other</label></th>
|
|
62
|
+
<td>
|
|
63
|
+
<input id="other-field" type="text" name="other"
|
|
64
|
+
value="[?call txn.request.param('other') ?]" size="55" /><br/>
|
|
65
|
+
<small>No constraints, not in the field list.</small>
|
|
66
|
+
</td>
|
|
67
|
+
</tr>
|
|
68
|
+
</tbody>
|
|
69
|
+
</table>
|
|
70
|
+
</fieldset>
|
|
71
|
+
<fieldset>
|
|
72
|
+
<legend></legend>
|
|
73
|
+
<input type="submit" name=" Inspect " value=" Inspect "/>
|
|
74
|
+
</fieldset>
|
|
75
|
+
</form>
|
|
76
|
+
|
|
77
|
+
<div>
|
|
78
|
+
<?if txn.request.paramtable.keys.empty? ?>
|
|
79
|
+
<p>Submitting the form above will dump the validation structure that is
|
|
80
|
+
built from the args.</p>
|
|
81
|
+
<?else?>
|
|
82
|
+
<h2>Valid Args</h2>
|
|
83
|
+
|
|
84
|
+
<p>Fetched via: <code>txn.vargs.valid</code>:</p>
|
|
85
|
+
<div class="dotbox"><code><?escape txn.vargs.valid.inspect ?></code></div>
|
|
86
|
+
|
|
87
|
+
<h2>Missing Args</h2>
|
|
88
|
+
|
|
89
|
+
<p>Fetched via: <code>txn.vargs.missing</code>:</p>
|
|
90
|
+
<div class="dotbox"><code><?escape txn.vargs.missing.inspect ?></code></div>
|
|
91
|
+
|
|
92
|
+
<h2>Invalid Args</h2>
|
|
93
|
+
|
|
94
|
+
<p>Fetched via: <code>txn.vargs.invalid</code>:</p>
|
|
95
|
+
<div class="dotbox"><code><?escape txn.vargs.invalid.inspect ?></code></div>
|
|
96
|
+
|
|
97
|
+
<h2>Unknown Args</h2>
|
|
98
|
+
|
|
99
|
+
<p>Fetched via: <code>txn.vargs.unknown</code>:</p>
|
|
100
|
+
<div class="dotbox"><code><?escape txn.vargs.unknown.inspect ?></code></div>
|
|
101
|
+
|
|
102
|
+
<h2>Error Messages</h2>
|
|
103
|
+
|
|
104
|
+
<p>Fetched via: <code>txn.vargs.error_messages</code>:</p>
|
|
105
|
+
<div class="dotbox"><code><?escape txn.vargs.error_messages.inspect ?></code></div>
|
|
106
|
+
|
|
107
|
+
<?end if?>
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
<?include navbar.incl?>
|
|
111
|
+
|
|
112
|
+
</body>
|
|
113
|
+
</html>
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
<!--
|
|
117
|
+
Local Variables:
|
|
118
|
+
mode: xml
|
|
119
|
+
-->
|
|
120
|
+
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
|
|
2
|
+
<!-- [?call config.inspect ?] -->
|
|
3
|
+
<dl>
|
|
4
|
+
<?for key in config.members.sort_by {|sym| sym.to_s } ?>
|
|
5
|
+
<dt><?attr key ?></dt>
|
|
6
|
+
<dd>
|
|
7
|
+
|
|
8
|
+
<?if config[key].is_a?(Arrow::Config::ConfigStruct) ?>
|
|
9
|
+
<!-- Config subsection -->
|
|
10
|
+
<?render config[key] as config in config/display-table.tmpl ?>
|
|
11
|
+
|
|
12
|
+
<?elsif config[key].is_a?(Array) ?>
|
|
13
|
+
<!-- Array -->
|
|
14
|
+
<ul>
|
|
15
|
+
<?for item in config[key] ?>
|
|
16
|
+
<li><?attr item ?></li>
|
|
17
|
+
<?end for ?>
|
|
18
|
+
</ul>
|
|
19
|
+
|
|
20
|
+
<?elsif config[key].is_a?(Hash) ?>
|
|
21
|
+
<!-- Hash -->
|
|
22
|
+
<dl>
|
|
23
|
+
<?for k, v in config[key] ?>
|
|
24
|
+
<dt><?attr k ?></dt>
|
|
25
|
+
<dd><?attr v ?></dd>
|
|
26
|
+
<?end for ?>
|
|
27
|
+
</dl>
|
|
28
|
+
|
|
29
|
+
<?else?>
|
|
30
|
+
<!-- Everything else just gets rendered as-is ([?call config[key].class.name ?]) -->
|
|
31
|
+
<!-- config[key]: [?call config[key].inspect ?] -->
|
|
32
|
+
<pre><?call config[key].inspect ?></pre>
|
|
33
|
+
<?end if ?>
|
|
34
|
+
</dd>
|
|
35
|
+
<?end for ?>
|
|
36
|
+
</dl>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
4
|
+
|
|
5
|
+
<!--
|
|
6
|
+
|
|
7
|
+
Arrow Configuration Inspector
|
|
8
|
+
|
|
9
|
+
-->
|
|
10
|
+
|
|
11
|
+
<head>
|
|
12
|
+
<title>Arrow Configuration Inspector</title>
|
|
13
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
14
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
15
|
+
<link rel="stylesheet" type="text/css" href="/css/arrow.css" />
|
|
16
|
+
<link rel="stylesheet" type="text/css" href="/css/arrow-config.css" />
|
|
17
|
+
</head>
|
|
18
|
+
<body>
|
|
19
|
+
|
|
20
|
+
<h1>Arrow Configuration Inspector</h1>
|
|
21
|
+
|
|
22
|
+
<h1><?call config.name ?></h1>
|
|
23
|
+
|
|
24
|
+
<?render config as config in config/display-table.tmpl ?>
|
|
25
|
+
|
|
26
|
+
<?include navbar.incl?>
|
|
27
|
+
|
|
28
|
+
</body>
|
|
29
|
+
</html>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<!--
|
|
33
|
+
Local Variables:
|
|
34
|
+
mode: nxml
|
|
35
|
+
-->
|
|
36
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
3
|
+
|
|
4
|
+
<!--
|
|
5
|
+
|
|
6
|
+
Arrow Session Access Counter Template
|
|
7
|
+
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
<head>
|
|
11
|
+
<title>Session Deleted</title>
|
|
12
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
13
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
14
|
+
<link rel="stylesheet" type="text/css" href="/css/arrow.css" />
|
|
15
|
+
</head>
|
|
16
|
+
<body>
|
|
17
|
+
|
|
18
|
+
<h1>Arrow Session Deleted</h1>
|
|
19
|
+
|
|
20
|
+
<p>The session you were using has been removed, and a new one will be
|
|
21
|
+
created the next time you access an applet that requires a session.</p>
|
|
22
|
+
|
|
23
|
+
<p>Return to <a href="[?call txn.action?]/display">the counter applet</a>.</p>
|
|
24
|
+
|
|
25
|
+
<?include navbar.incl?>
|
|
26
|
+
</body>
|
|
27
|
+
</html>
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
<!--
|
|
31
|
+
Local Variables:
|
|
32
|
+
mode: xml
|
|
33
|
+
-->
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
3
|
+
|
|
4
|
+
<!--
|
|
5
|
+
|
|
6
|
+
Arrow Session Access Counter Template
|
|
7
|
+
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
<head>
|
|
11
|
+
<title>Session Access Counter</title>
|
|
12
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
13
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
14
|
+
<link rel="stylesheet" type="text/css" href="/css/arrow.css" />
|
|
15
|
+
</head>
|
|
16
|
+
<body>
|
|
17
|
+
|
|
18
|
+
<h1>Arrow Session Access Counter</h1>
|
|
19
|
+
|
|
20
|
+
<p>This session (id: <strong><?call session.id ?></strong>) has been
|
|
21
|
+
accessed <strong><?call session[:counter] ?></strong> time/s.</p>
|
|
22
|
+
|
|
23
|
+
<p>You can <a href="[?call txn.uri ?]">reload this page</a> to observe the counter
|
|
24
|
+
incrementing. You can also <a href="[?call txn.action
|
|
25
|
+
?]/delete">delete the current session</a> and start over.</p>
|
|
26
|
+
|
|
27
|
+
<h2>Session object:</h2>
|
|
28
|
+
<table>
|
|
29
|
+
<tbody>
|
|
30
|
+
<tr class="odd-row">
|
|
31
|
+
<th class="row-title">Id</th>
|
|
32
|
+
<td><tt><?escape session.id.inspect ?></tt></td>
|
|
33
|
+
</tr>
|
|
34
|
+
<tr class="even-row">
|
|
35
|
+
<th class="row-title">Store</th>
|
|
36
|
+
<td><tt><?escape session.store.inspect ?></tt></td>
|
|
37
|
+
</tr>
|
|
38
|
+
<tr class="odd-row">
|
|
39
|
+
<th class="row-title">Lock</th>
|
|
40
|
+
<td><tt><?escape session.lock.inspect ?></tt></td>
|
|
41
|
+
</tr>
|
|
42
|
+
</tbody>
|
|
43
|
+
</table>
|
|
44
|
+
|
|
45
|
+
<h2>Session state:</h2>
|
|
46
|
+
<div class="dotbox">
|
|
47
|
+
<tt><?escape session.store.data.inspect ?></tt>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<?include navbar.incl?>
|
|
51
|
+
|
|
52
|
+
</body>
|
|
53
|
+
</html>
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
<!--
|
|
57
|
+
Local Variables:
|
|
58
|
+
mode: xml
|
|
59
|
+
-->
|