Capcode 0.8.9 → 0.9.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.
Files changed (92) hide show
  1. data/README.rdoc +13 -1
  2. data/doc/rdoc/classes/Capcode.html +410 -545
  3. data/doc/rdoc/classes/Capcode/Configuration.html +263 -0
  4. data/doc/rdoc/classes/Capcode/Helpers.html +154 -345
  5. data/doc/rdoc/classes/Capcode/Helpers/Authorization.html +6 -6
  6. data/doc/rdoc/created.rid +1 -1
  7. data/doc/rdoc/files/README_rdoc.html +42 -2
  8. data/doc/rdoc/files/lib/capcode/configuration_rb.html +1 -1
  9. data/doc/rdoc/files/lib/capcode/render/text_rb.html +1 -1
  10. data/doc/rdoc/files/lib/capcode_rb.html +14 -1
  11. data/doc/rdoc/fr_class_index.html +1 -1
  12. data/doc/rdoc/fr_file_index.html +0 -13
  13. data/doc/rdoc/fr_method_index.html +12 -14
  14. data/examples/render-image.rb +1 -1
  15. data/examples/render-text.rb +4 -1
  16. data/examples/rest.rb +1 -0
  17. data/examples/sample.rb +5 -3
  18. data/examples/upload.rb +1 -0
  19. data/lib/capcode.rb +45 -61
  20. data/lib/capcode/configuration.rb +69 -34
  21. data/lib/capcode/render/text.rb +1 -1
  22. data/lib/capcode/version.rb +1 -1
  23. metadata +31 -106
  24. data/doc/rdoc/classes/Capcode/Mab.html +0 -118
  25. data/doc/rdoc/files/lib/capcode/render/binary_rb.html +0 -101
  26. data/doc/rdoc/files/lib/capcode/render/email_rb.html +0 -108
  27. data/doc/rdoc/files/lib/capcode/render/erb_rb.html +0 -108
  28. data/doc/rdoc/files/lib/capcode/render/haml_rb.html +0 -108
  29. data/doc/rdoc/files/lib/capcode/render/json_rb.html +0 -108
  30. data/doc/rdoc/files/lib/capcode/render/markaby_rb.html +0 -108
  31. data/doc/rdoc/files/lib/capcode/render/mustache_rb.html +0 -108
  32. data/doc/rdoc/files/lib/capcode/render/none_rb.html +0 -101
  33. data/doc/rdoc/files/lib/capcode/render/redirect_rb.html +0 -101
  34. data/doc/rdoc/files/lib/capcode/render/sass_rb.html +0 -108
  35. data/doc/rdoc/files/lib/capcode/render/static_rb.html +0 -101
  36. data/doc/rdoc/files/lib/capcode/render/webdav_rb.html +0 -124
  37. data/doc/rdoc/files/lib/capcode/render/xml_rb.html +0 -101
  38. data/examples/auth-webdav.rb +0 -29
  39. data/examples/blog-ar.rb +0 -81
  40. data/examples/blog-ar.yml +0 -3
  41. data/examples/blog-couchdb-run.rb +0 -10
  42. data/examples/blog-couchdb.rb +0 -314
  43. data/examples/blog-couchdb.ru +0 -12
  44. data/examples/blog-couchdb.yml +0 -2
  45. data/examples/blog-dm.rb +0 -63
  46. data/examples/blog-dm.yml +0 -2
  47. data/examples/blog-mongodb-run.rb +0 -10
  48. data/examples/blog-mongodb.rb +0 -304
  49. data/examples/blog-mongodb.yml +0 -3
  50. data/examples/blog-sq.rb +0 -82
  51. data/examples/blog-sq.yml +0 -3
  52. data/examples/mail/mail_html.rhtml +0 -1
  53. data/examples/mail/mail_text.rhtml +0 -1
  54. data/examples/mail/ok.rhtml +0 -1
  55. data/examples/mail/rubyfr.png +0 -0
  56. data/examples/mustache/with_class.mustache +0 -8
  57. data/examples/mustache/without_class.mustache +0 -1
  58. data/examples/render-binary.rb +0 -46
  59. data/examples/render-email.rb +0 -68
  60. data/examples/render-erb.rb +0 -19
  61. data/examples/render-haml_sass.rb +0 -26
  62. data/examples/render-json.rb +0 -13
  63. data/examples/render-markaby.rb +0 -29
  64. data/examples/render-mustache.rb +0 -30
  65. data/examples/render-redirect.rb +0 -19
  66. data/examples/render-static.rb +0 -21
  67. data/examples/render-static.ru +0 -19
  68. data/examples/render-use.rb +0 -32
  69. data/examples/render-webdav.rb +0 -26
  70. data/examples/render-xml.rb +0 -24
  71. data/examples/rss.rb +0 -48
  72. data/examples/static/coderay.css +0 -131
  73. data/examples/static/index.html +0 -24
  74. data/examples/test/index.html +0 -1
  75. data/lib/capcode/base/ar.rb +0 -54
  76. data/lib/capcode/base/couchdb.rb +0 -23
  77. data/lib/capcode/base/dm.rb +0 -33
  78. data/lib/capcode/base/mongodb.rb +0 -27
  79. data/lib/capcode/base/sq.rb +0 -58
  80. data/lib/capcode/render/binary.rb +0 -8
  81. data/lib/capcode/render/email.rb +0 -73
  82. data/lib/capcode/render/erb.rb +0 -59
  83. data/lib/capcode/render/haml.rb +0 -60
  84. data/lib/capcode/render/json.rb +0 -14
  85. data/lib/capcode/render/markaby.rb +0 -38
  86. data/lib/capcode/render/mustache.rb +0 -37
  87. data/lib/capcode/render/none.rb +0 -7
  88. data/lib/capcode/render/redirect.rb +0 -7
  89. data/lib/capcode/render/sass.rb +0 -48
  90. data/lib/capcode/render/static.rb +0 -14
  91. data/lib/capcode/render/webdav.rb +0 -49
  92. data/lib/capcode/render/xml.rb +0 -119
@@ -1,39 +1,74 @@
1
1
  module Capcode
2
2
  class << self
3
- # Set global configuration options
4
- #
5
- # Options :
6
- # * <tt>:port</tt> = Listen port (default: 3000)
7
- # * <tt>:host</tt> = Listen host (default: 0.0.0.0)
8
- # * <tt>:server</tt> = Server type (webrick, mongrel or thin)
9
- # * <tt>:log</tt> = Output logfile (default: STDOUT)
10
- # * <tt>:session</tt> = Session parameters. See Rack::Session for more informations
11
- # * <tt>:pid</tt> = PID file (default: $0.pid)
12
- # * <tt>:daemonize</tt> = Daemonize application (default: false)
13
- # * <tt>:db_config</tt> = database configuration file (default: database.yml)
14
- # * <tt>:static</tt> = Static directory (default: the working directory)
15
- # * <tt>:root</tt> = Root directory (default: directory of the main.rb) -- This is also the working directory !
16
- # * <tt>:verbose</tt> = run in verbose mode
17
- # * <tt>:auth</tt> = HTTP Basic Authentication options
18
- #
19
- # It can exist specifics options depending on a renderer, a helper, ...
20
- #
21
- # Example :
22
- #
23
- # module Capcode
24
- # set :erb, "/path/to/erb/files"
25
- # ...
26
- # end
27
- def set( key, value )
28
- config[key] = value
29
- end
30
-
31
- def get( key ) #:nodoc:
32
- config[key] || nil
33
- end
34
-
35
- def config
36
- @configuration ||= {}
3
+ def set(key, value, opts = {}); Configuration.set(key, value, opts); end
4
+ end
5
+
6
+ class Configuration
7
+ class << self
8
+ def configuration( args = {} ) #:nodoc:
9
+ @configuration = config.merge({
10
+ :port => args[:port]||Capcode::Configuration.get(:port)||3000,
11
+ :host => args[:host]||Capcode::Configuration.get(:host)||"0.0.0.0",
12
+ :server => args[:server]||Capcode::Configuration.get(:server)||nil,
13
+ :log => args[:log]||Capcode::Configuration.get(:log)||$stdout,
14
+ :session => args[:session]||Capcode::Configuration.get(:session)||{},
15
+ :pid => args[:pid]||Capcode::Configuration.get(:pid)||"#{$0}.pid",
16
+ :daemonize => args[:daemonize]||Capcode::Configuration.get(:daemonize)||false,
17
+ :db_config => File.expand_path(args[:db_config]||Capcode::Configuration.get(:db_config)||"database.yml"),
18
+ :root => args[:root]||Capcode::Configuration.get(:root)||File.expand_path(File.dirname($0)),
19
+ :static => args[:static]||Capcode::Configuration.get(:static)||args[:root]||File.expand_path(File.dirname($0)),
20
+ :verbose => args[:verbose]||Capcode::Configuration.get(:verbose)||false,
21
+ :console => false
22
+ })
23
+ end
24
+ def config #:nodoc:
25
+ @configuration ||= {}
26
+ end
27
+
28
+ # Set global configuration options
29
+ #
30
+ # Options :
31
+ # * <tt>:port</tt> = Listen port (default: 3000)
32
+ # * <tt>:host</tt> = Listen host (default: 0.0.0.0)
33
+ # * <tt>:server</tt> = Server type (webrick, mongrel or thin)
34
+ # * <tt>:log</tt> = Output logfile (default: STDOUT)
35
+ # * <tt>:session</tt> = Session parameters. See Rack::Session for more informations
36
+ # * <tt>:pid</tt> = PID file (default: $0.pid)
37
+ # * <tt>:daemonize</tt> = Daemonize application (default: false)
38
+ # * <tt>:db_config</tt> = database configuration file (default: database.yml)
39
+ # * <tt>:static</tt> = Static directory (default: the working directory)
40
+ # * <tt>:root</tt> = Root directory (default: directory of the main.rb) -- This is also the working directory !
41
+ # * <tt>:verbose</tt> = run in verbose mode
42
+ # * <tt>:auth</tt> = HTTP Basic Authentication options
43
+ #
44
+ # It can exist specifics options depending on a renderer, a helper, ...
45
+ #
46
+ # Example :
47
+ #
48
+ # module Capcode
49
+ # set :erb, "/path/to/erb/files"
50
+ # ...
51
+ # end
52
+ def set( key, value, opts = {} )
53
+ if Hash === value
54
+ opts = value
55
+ value = nil
56
+ end
57
+ config[key] = value
58
+ options[key] = opts
59
+ end
60
+
61
+ def get( key = nil )
62
+ if key.nil?
63
+ config
64
+ else
65
+ config[key] || nil
66
+ end
67
+ end
68
+
69
+ def options
70
+ @options ||= {}
71
+ end
37
72
  end
38
73
  end
39
74
  end
@@ -1,6 +1,6 @@
1
1
  module Capcode
2
2
  module Helpers
3
- def render_text( f, opts ) #:nodoc:
3
+ def render_text( f, _ ) #:nodoc:
4
4
  f
5
5
  end
6
6
  end
@@ -1,3 +1,3 @@
1
1
  module Capcode
2
- CAPCOD_VERION="0.8.9"
2
+ CAPCOD_VERION="0.9.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Capcode
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.9
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Gr\xC3\xA9goire Lejeune"
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-21 00:00:00 +01:00
12
+ date: 2010-01-07 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -45,30 +45,17 @@ extra_rdoc_files:
45
45
  - lib/capcode.rb
46
46
  - lib/capcode/configuration.rb
47
47
  - lib/capcode/base/db.rb
48
- - lib/capcode/render/binary.rb
49
- - lib/capcode/render/email.rb
50
- - lib/capcode/render/erb.rb
51
- - lib/capcode/render/haml.rb
52
- - lib/capcode/render/json.rb
53
- - lib/capcode/render/markaby.rb
54
- - lib/capcode/render/mustache.rb
55
- - lib/capcode/render/none.rb
56
- - lib/capcode/render/redirect.rb
57
- - lib/capcode/render/sass.rb
58
- - lib/capcode/render/static.rb
59
48
  - lib/capcode/render/text.rb
60
- - lib/capcode/render/webdav.rb
61
- - lib/capcode/render/xml.rb
62
49
  files:
63
50
  - COPYING
64
51
  - README.rdoc
65
52
  - AUTHORS
66
53
  - setup.rb
67
54
  - doc/rdoc/classes/Capcode/Base.html
55
+ - doc/rdoc/classes/Capcode/Configuration.html
68
56
  - doc/rdoc/classes/Capcode/Helpers/Authorization.html
69
57
  - doc/rdoc/classes/Capcode/Helpers.html
70
58
  - doc/rdoc/classes/Capcode/HTTPError.html
71
- - doc/rdoc/classes/Capcode/Mab.html
72
59
  - doc/rdoc/classes/Capcode/Resource.html
73
60
  - doc/rdoc/classes/Capcode/Views.html
74
61
  - doc/rdoc/classes/Capcode.html
@@ -78,20 +65,7 @@ files:
78
65
  - doc/rdoc/files/lib/capcode/base/db_rb.html
79
66
  - doc/rdoc/files/lib/capcode/configuration_rb.html
80
67
  - doc/rdoc/files/lib/capcode/helpers/auth_rb.html
81
- - doc/rdoc/files/lib/capcode/render/binary_rb.html
82
- - doc/rdoc/files/lib/capcode/render/email_rb.html
83
- - doc/rdoc/files/lib/capcode/render/erb_rb.html
84
- - doc/rdoc/files/lib/capcode/render/haml_rb.html
85
- - doc/rdoc/files/lib/capcode/render/json_rb.html
86
- - doc/rdoc/files/lib/capcode/render/markaby_rb.html
87
- - doc/rdoc/files/lib/capcode/render/mustache_rb.html
88
- - doc/rdoc/files/lib/capcode/render/none_rb.html
89
- - doc/rdoc/files/lib/capcode/render/redirect_rb.html
90
- - doc/rdoc/files/lib/capcode/render/sass_rb.html
91
- - doc/rdoc/files/lib/capcode/render/static_rb.html
92
68
  - doc/rdoc/files/lib/capcode/render/text_rb.html
93
- - doc/rdoc/files/lib/capcode/render/webdav_rb.html
94
- - doc/rdoc/files/lib/capcode/render/xml_rb.html
95
69
  - doc/rdoc/files/lib/capcode_rb.html
96
70
  - doc/rdoc/files/README_rdoc.html
97
71
  - doc/rdoc/fr_class_index.html
@@ -99,47 +73,15 @@ files:
99
73
  - doc/rdoc/fr_method_index.html
100
74
  - doc/rdoc/index.html
101
75
  - doc/rdoc/rdoc-style.css
102
- - lib/capcode/base/ar.rb
103
- - lib/capcode/base/couchdb.rb
104
76
  - lib/capcode/base/db.rb
105
- - lib/capcode/base/dm.rb
106
- - lib/capcode/base/mongodb.rb
107
- - lib/capcode/base/sq.rb
108
77
  - lib/capcode/configuration.rb
109
78
  - lib/capcode/core_ext.rb
110
79
  - lib/capcode/helpers/auth.rb
111
- - lib/capcode/render/binary.rb
112
- - lib/capcode/render/email.rb
113
- - lib/capcode/render/erb.rb
114
- - lib/capcode/render/haml.rb
115
- - lib/capcode/render/json.rb
116
- - lib/capcode/render/markaby.rb
117
- - lib/capcode/render/mustache.rb
118
- - lib/capcode/render/none.rb
119
- - lib/capcode/render/redirect.rb
120
- - lib/capcode/render/sass.rb
121
- - lib/capcode/render/static.rb
122
80
  - lib/capcode/render/text.rb
123
- - lib/capcode/render/webdav.rb
124
- - lib/capcode/render/xml.rb
125
81
  - lib/capcode/version.rb
126
82
  - lib/capcode.rb
127
83
  - examples/auth-basic.rb
128
84
  - examples/auth-digest.rb
129
- - examples/auth-webdav.rb
130
- - examples/blog-ar.rb
131
- - examples/blog-ar.yml
132
- - examples/blog-couchdb-run.rb
133
- - examples/blog-couchdb.rb
134
- - examples/blog-couchdb.ru
135
- - examples/blog-couchdb.yml
136
- - examples/blog-dm.rb
137
- - examples/blog-dm.yml
138
- - examples/blog-mongodb-run.rb
139
- - examples/blog-mongodb.rb
140
- - examples/blog-mongodb.yml
141
- - examples/blog-sq.rb
142
- - examples/blog-sq.yml
143
85
  - examples/erb/cf.rhtml
144
86
  - examples/erb/cf_layout.rhtml
145
87
  - examples/erb/layout.rhtml
@@ -149,31 +91,11 @@ files:
149
91
  - examples/haml/layout.haml
150
92
  - examples/haml/m_hello.haml
151
93
  - examples/haml/style.sass
152
- - examples/mail/mail_html.rhtml
153
- - examples/mail/mail_text.rhtml
154
- - examples/mail/ok.rhtml
155
- - examples/mail/rubyfr.png
156
- - examples/mustache/with_class.mustache
157
- - examples/mustache/without_class.mustache
158
- - examples/render-binary.rb
159
- - examples/render-email.rb
160
- - examples/render-erb.rb
161
- - examples/render-haml_sass.rb
162
94
  - examples/render-image.rb
163
- - examples/render-json.rb
164
- - examples/render-markaby.rb
165
- - examples/render-mustache.rb
166
- - examples/render-redirect.rb
167
- - examples/render-static.rb
168
- - examples/render-static.ru
169
95
  - examples/render-text.rb
170
- - examples/render-use.rb
171
- - examples/render-webdav.rb
172
- - examples/render-xml.rb
173
96
  - examples/rest-run.rb
174
97
  - examples/rest.rb
175
98
  - examples/rest.ru
176
- - examples/rss.rb
177
99
  - examples/sample.rb
178
100
  - examples/session.rb
179
101
  - examples/soapbox/public/jquery.js
@@ -183,36 +105,39 @@ files:
183
105
  - examples/soapbox/soapbox-client.rb
184
106
  - examples/soapbox/soapbox.rb
185
107
  - examples/soapbox/views/index.rhtml
186
- - examples/static/coderay.css
187
- - examples/static/index.html
188
- - examples/test/index.html
189
108
  - examples/upload.rb
190
109
  has_rdoc: true
191
110
  homepage: http://algorithmique.net
192
111
  licenses: []
193
112
 
194
- post_install_message: |+
195
-
196
- If you want to use Markaby renderer, you must install Markaby.
197
- If you want to use HAML renderer, you must install haml.
198
- If you want to use SASS renderer, you must install sass.
199
- If you want to use Mustache renderer, you must install mustache.
200
- If you want to use JSON renderer, you must install json.
201
- If you want to use WebDAV renderer, you must install rack_dav.
202
- If you want to use Mail renderer, you must install mail.
203
-
204
- If you want to use ActiveRecord, you must install active_record.
205
- If you want to use DataMapper, you must install dm-core.
206
- If you want to use Sequel, you must install sequel.
207
- If you want to use CouchDB, you must install couch_foo.
208
- If you want to use MongoDB, you must install mongoid.
209
-
210
- For more information about Capcode, see
211
- http://capcode.rubyforge.org
212
-
213
- You can also read the Capcode book (fr) at
214
- http://algorithmique.net/capcode.html
215
-
113
+ post_install_message: "\n\
114
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\
115
+ !! !!\n\
116
+ !! THIS VERSION IS A MAJOR ENHANCEMENT !!\n\
117
+ !! ----------------------------------- !!\n\
118
+ !! !!\n\
119
+ !! YOU MUST UNINSTALL ALL PREVIOUS !!\n\
120
+ !! VERSIONS !!! !!\n\
121
+ !! !!\n\
122
+ !! gem uninstall Capode --version '< 0.9.0' !!\n\
123
+ !! !!\n\
124
+ !! IF YOU DON'T DO IT, THIS ONE WILL NOT !!\n\
125
+ !! WORK !!! !!\n\
126
+ !! !!\n\
127
+ !! Moreover : !!\n\
128
+ !! !!\n\
129
+ !! Renderers and database accessors have !!\n\
130
+ !! been extracted and are now in the !!\n\
131
+ !! plugins repository : !!\n\
132
+ !! !!\n\
133
+ !! http://github.com/glejeune/Capcode.more !!\n\
134
+ !! !!\n\
135
+ !! Each plugin is a gem that\xE2\x80\x99s can be !!\n\
136
+ !! installed separately. !!\n\
137
+ !! !!\n\
138
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\
139
+ For more information about Capcode, see \n http://capcode.rubyforge.org\n\n\
140
+ You can also read the Capcode book (fr) at\n http://algorithmique.net/capcode.html\n\n"
216
141
  rdoc_options:
217
142
  - --quiet
218
143
  - --title
@@ -1,118 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: Capcode::Mab</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">Capcode::Mab</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../files/lib/capcode/render/markaby_rb.html">
59
- lib/capcode/render/markaby.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- Markaby::Builder
69
- </td>
70
- </tr>
71
- </table>
72
- </div>
73
- <!-- banner header -->
74
-
75
- <div id="bodyContent">
76
-
77
-
78
-
79
- <div id="contextContent">
80
-
81
-
82
-
83
- </div>
84
-
85
-
86
- </div>
87
-
88
-
89
- <!-- if includes -->
90
- <div id="includes">
91
- <h3 class="section-bar">Included Modules</h3>
92
-
93
- <div id="includes-list">
94
- <span class="include-name"><a href="Views.html">Views</a></span>
95
- </div>
96
- </div>
97
-
98
- <div id="section">
99
-
100
-
101
-
102
-
103
-
104
-
105
-
106
-
107
- <!-- if method_list -->
108
-
109
-
110
- </div>
111
-
112
-
113
- <div id="validator-badges">
114
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
115
- </div>
116
-
117
- </body>
118
- </html>