picnic 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. data/History.txt +10 -0
  2. data/Manifest.txt +27 -27
  3. data/lib/picnic.rb +1 -1
  4. data/lib/picnic/cli.rb +2 -0
  5. data/lib/picnic/conf.rb +30 -6
  6. data/lib/picnic/server.rb +18 -21
  7. data/lib/picnic/version.rb +1 -1
  8. data/picnic.gemspec +3 -3
  9. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/CHANGELOG +0 -0
  10. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/COPYING +0 -0
  11. data/vendor/zuk-camping-2.0.20090429/README +82 -0
  12. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/Rakefile +9 -3
  13. data/vendor/zuk-camping-2.0.20090429/bin/camping +97 -0
  14. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/doc/camping.1.gz +0 -0
  15. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/examples/README +0 -0
  16. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/examples/blog.rb +0 -0
  17. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/examples/campsh.rb +0 -0
  18. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/examples/tepee.rb +0 -0
  19. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/extras/Camping.gif +0 -0
  20. data/vendor/zuk-camping-2.0.20090429/extras/flipbook.rb +357 -0
  21. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/extras/permalink.gif +0 -0
  22. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/lib/camping-unabridged.rb +53 -61
  23. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/lib/camping.rb +23 -25
  24. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/lib/camping/ar.rb +0 -0
  25. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/lib/camping/ar/session.rb +0 -0
  26. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/lib/camping/mab.rb +0 -0
  27. data/vendor/zuk-camping-2.0.20090429/lib/camping/reloader.rb +188 -0
  28. data/vendor/zuk-camping-2.0.20090429/lib/camping/server.rb +159 -0
  29. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/lib/camping/session.rb +1 -0
  30. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/setup.rb +0 -0
  31. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/test/apps/env_debug.rb +0 -0
  32. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/test/apps/forms.rb +0 -0
  33. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/test/apps/misc.rb +0 -0
  34. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/test/apps/sessions.rb +0 -0
  35. data/vendor/{camping-2.0.20090212 → zuk-camping-2.0.20090429}/test/test_camping.rb +0 -0
  36. metadata +29 -29
  37. data/vendor/camping-2.0.20090212/README +0 -119
  38. data/vendor/camping-2.0.20090212/bin/camping +0 -99
  39. data/vendor/camping-2.0.20090212/extras/flipbook_rdoc.rb +0 -491
  40. data/vendor/camping-2.0.20090212/lib/camping/reloader.rb +0 -163
  41. data/vendor/camping-2.0.20090212/lib/camping/server.rb +0 -158
@@ -1,119 +0,0 @@
1
- == Camping, a Microframework
2
-
3
- Camping is a web framework which consistently stays at less than 4kb of code.
4
- You can probably view the complete source code on a single page. But, you know,
5
- it's so small that, if you think about it, what can it really do?
6
-
7
- The idea here is to store a complete fledgling web application in a single file
8
- like many small CGIs. But to organize it as a Model-View-Controller application
9
- like Rails does. You can then easily move it to Rails once you've got it going.
10
-
11
- == A Camping Skeleton
12
-
13
- A skeletal Camping blog could look like this:
14
-
15
- require 'camping'
16
-
17
- Camping.goes :Blog
18
-
19
- module Blog::Models
20
- class Post < Base; belongs_to :user; end
21
- class Comment < Base; belongs_to :user; end
22
- class User < Base; end
23
- end
24
-
25
- module Blog::Controllers
26
- class Index < R '/'
27
- def get
28
- @posts = Post.find :all
29
- render :index
30
- end
31
- end
32
- end
33
-
34
- module Blog::Views
35
- def layout
36
- html do
37
- body do
38
- self << yield
39
- end
40
- end
41
- end
42
-
43
- def index
44
- for post in @posts
45
- h1 post.title
46
- end
47
- end
48
- end
49
-
50
- Some things you might have noticed:
51
-
52
- * Camping::Models uses ActiveRecord to do its work. We love ActiveRecord!
53
- * Camping::Controllers can be assigned URLs in the class definition. Neat?
54
- * Camping::Views describes HTML using pure Ruby. Markup as Ruby, which we
55
- call Markaby.
56
- * You use Camping::goes to make a copy of the Camping framework under your
57
- own module name (in this case: <tt>Blog</tt>.)
58
-
59
- <b>NOTE:</b> Camping auto-prefixes table names. If your class is named
60
- <tt>Blog::Models::Post</tt>, your table will be called <b>blog_posts</b>.
61
- Since many Camping apps can be attached to a database at once, this helps
62
- prevent name clash.
63
-
64
- (If you want to see the full blog example, check out <tt>examples/blog/blog.rb</tt>
65
- for the complete code.)
66
-
67
- If you want to write larger applications with Camping, you are encouraged to
68
- split the application into distinct parts which can be mounted at URLs on your
69
- web server. You might have a blog at /blog and a wiki at /wiki. Each
70
- self-contained. But you can certainly share layouts and models by storing them
71
- in plain Ruby scripts.
72
-
73
- Interested yet? Okay, okay, one step at a time.
74
-
75
- == Installation
76
-
77
- * <tt>gem install camping</tt>
78
-
79
- Or for the bleeding edge:
80
-
81
- * <tt>gem install camping --source http://code.whytheluckystiff.net</tt>
82
-
83
- You are encourage to install Camping and SQLite3, since it is a small database
84
- which fits perfectly with our compact bylaws, works well with the examples.
85
-
86
- * See http://code.whytheluckystiff.net/camping/wiki/BeAlertWhenOnSqlite3 for instructions.
87
-
88
- == Running Camping Apps
89
-
90
- The blog example above and most Camping applications look a lot like CGI scripts.
91
- If you run them from the commandline, you'll probably just see a pile of HTML.
92
-
93
- Camping comes with an tool for launching apps from the commandline:
94
-
95
- * Run: <tt>camping blog.rb</tt>
96
- * Visit http://localhost:3301/ to use the app.
97
-
98
- == How the Camping Tool Works
99
-
100
- If your application isn't working with the <tt>camping</tt> tool, keep in mind
101
- that the tool expects the following conventions to be used:
102
-
103
- 1. You must have SQLite3 and SQLite3-ruby installed. (Once again, please see
104
- http://code.whytheluckystiff.net/camping/wiki/BeAlertWhenOnSqlite3 for instructions.)
105
- 2. If your script is called <tt>test.rb</tt>, Camping expects your application to
106
- be stored in a module called <tt>Test</tt>. Case is not imporant, though. The
107
- module can be called <tt>TeSt</tt> or any other permutation.
108
- 3. Your script's postamble (anything enclosed in <tt>if __FILE__ == $0</tt>) will be
109
- ignored by the tool, since the tool will create an SQLite3 database at
110
- <tt>~/.camping.db</tt>. Or, on Windows, <tt>$USER/Application Data/Camping.db</tt>.
111
- 4. If your application's module has a <tt>create</tt> method, it will be executed before
112
- the web server starts up.
113
-
114
- == The Rules of Thumb
115
-
116
- Once you've started writing your own Camping app, I'd highly recommend that you become familiar
117
- with the Camping Rules of Thumb which are listed on the wiki:
118
- http://code.whytheluckystiff.net/camping/wiki/CampingRulesOfThumb
119
-
@@ -1,99 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- trap("INT") { exit }
4
- require 'optparse'
5
- require 'ostruct'
6
- require 'stringio'
7
- require 'yaml'
8
-
9
- $:.unshift File.dirname(__FILE__) + "/../lib"
10
- require 'camping'
11
- require 'camping/server'
12
-
13
- conf = OpenStruct.new(:host => '0.0.0.0', :port => 3301)
14
-
15
- # Setup paths
16
- if home = ENV['HOME'] # POSIX
17
- db_path = File.join(home, '.camping.db')
18
- rc_path = File.join(home, '.campingrc')
19
- elsif home = ENV['APPDATA'] # MSWIN
20
- db_path = File.join(home, 'Camping.db')
21
- rc_path = File.join(home, 'Campingrc')
22
- end
23
-
24
- # Parse options
25
- opts = OptionParser.new do |opts|
26
- opts.banner = "Usage: camping app1.rb, app2.rb..."
27
- opts.define_head "#{File.basename($0)}, the microframework ON-button for ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
28
- opts.separator ""
29
- opts.separator "Specific options:"
30
-
31
- opts.on("-h", "--host HOSTNAME", "Host for web server to bind to (default is all IPs)") { |conf.host| }
32
- opts.on("-p", "--port NUM", "Port for web server (defaults to #{conf.port})") { |conf.port| }
33
- opts.on("-d", "--database FILE", "SQLite3 database path (defaults to #{db_path ? db_path : '<none>'})") { |db_path| conf.database = {:adapter => 'sqlite3', :database => db_path} }
34
- opts.on("-l", "--log FILE", "Start a database log ('-' for STDOUT)") { |conf.log| }
35
- opts.on("-C", "--console", "Run in console mode with IRB") { conf.server = "console" }
36
- server_list = ["mongrel", "webrick", "console"]
37
- opts.on("-s", "--server NAME", server_list, "Server to force (#{server_list.join(', ')})") { |conf.server| }
38
-
39
- opts.separator ""
40
- opts.separator "Common options:"
41
-
42
- # No argument, shows at tail. This will print an options summary.
43
- # Try it and see!
44
- opts.on_tail("-?", "--help", "Show this message") do
45
- puts opts
46
- exit
47
- end
48
-
49
- # Another typical switch to print the version.
50
- opts.on_tail("-v", "--version", "Show version") do
51
- class << Gem; attr_accessor :loaded_specs; end
52
- puts Gem.loaded_specs['camping'].version
53
- exit
54
- end
55
- end
56
-
57
- begin
58
- opts.parse! ARGV
59
- rescue OptionParser::ParseError => ex
60
- STDERR.puts "!! #{ex.message}"
61
- puts "** use `#{File.basename($0)} --help` for more details..."
62
- exit 1
63
- end
64
-
65
- if ARGV.length < 1
66
- puts opts
67
- exit 1
68
- end
69
-
70
- # Load configuration if any
71
- if rc_path and File.exists?( rc_path )
72
- YAML.load_file(rc_path).each do |k,v|
73
- conf.send("#{k}=", v) unless conf.send(k)
74
- end
75
- puts "** conf file #{rc_path} loaded"
76
- end
77
-
78
- # Default db
79
- if conf.database.nil? and db_path
80
- conf.database = {:adapter => 'sqlite3', :database => db_path} if db_path
81
- end
82
-
83
-
84
- # get a copy of the paths to pass to the server
85
- paths = ARGV.dup
86
-
87
- # Check that mongrel exists
88
- if conf.server.nil? || conf.server == "mongrel"
89
- begin
90
- require 'mongrel'
91
- conf.server = "mongrel"
92
- rescue LoadError
93
- puts "!! could not load mongrel. Falling back to webrick."
94
- conf.server = "webrick"
95
- end
96
- end
97
-
98
- server = Camping::Server::Base.new(conf, paths)
99
- server.start
@@ -1,491 +0,0 @@
1
- CAMPING_EXTRAS_DIR = File.expand_path(File.dirname(__FILE__))
2
-
3
- module Generators
4
- class HTMLGenerator
5
- def generate_html
6
- @files_and_classes = {
7
- 'allfiles' => gen_into_index(@files),
8
- 'allclasses' => gen_into_index(@classes),
9
- "initial_page" => main_url,
10
- 'realtitle' => CGI.escapeHTML(@options.title),
11
- 'charset' => @options.charset
12
- }
13
-
14
- # the individual descriptions for files and classes
15
- gen_into(@files)
16
- gen_into(@classes)
17
- gen_main_index
18
-
19
- # this method is defined in the template file
20
- write_extra_pages if defined? write_extra_pages
21
- end
22
-
23
- def gen_into(list)
24
- hsh = @files_and_classes.dup
25
- list.each do |item|
26
- if item.document_self
27
- op_file = item.path
28
- hsh['root'] = item.path.split("/").map { ".." }[1..-1].join("/")
29
- item.instance_variable_set("@values", hsh)
30
- File.makedirs(File.dirname(op_file))
31
- File.open(op_file, "w") { |file| item.write_on(file) }
32
- end
33
- end
34
- end
35
-
36
- def gen_into_index(list)
37
- res = []
38
- list.each do |item|
39
- hsh = item.value_hash
40
- hsh['href'] = item.path
41
- hsh['name'] = item.index_name
42
- res << hsh
43
- end
44
- res
45
- end
46
-
47
- def gen_main_index
48
- template = TemplatePage.new(RDoc::Page::INDEX)
49
- File.open("index.html", "w") do |f|
50
- values = @files_and_classes.dup
51
- if @options.inline_source
52
- values['inline_source'] = true
53
- end
54
- template.write_html_on(f, values)
55
- end
56
- ['Camping.gif', 'permalink.gif'].each do |img|
57
- ipath = File.join(CAMPING_EXTRAS_DIR, img)
58
- File.copy(ipath, img)
59
- end
60
- end
61
- end
62
- end
63
-
64
-
65
- module RDoc
66
- module Page
67
- ######################################################################
68
- #
69
- # The following is used for the -1 option
70
- #
71
-
72
- FONTS = "verdana,arial,'Bitstream Vera Sans',helvetica,sans-serif"
73
-
74
- STYLE = %{
75
- body, th, td {
76
- font: normal 14px verdana,arial,'Bitstream Vera Sans',helvetica,sans-serif;
77
- line-height: 160%;
78
- padding: 0; margin: 0;
79
- margin-bottom: 30px;
80
- /* background-color: #402; */
81
- background-color: #694;
82
- }
83
- h1, h2, h3, h4 {
84
- font-family: Utopia, Georgia, serif;
85
- font-weight: bold;
86
- letter-spacing: -0.018em;
87
- }
88
- h1 { font-size: 24px; margin: .15em 1em 0 0 }
89
- h2 { font-size: 24px }
90
- h3 { font-size: 19px }
91
- h4 { font-size: 17px; font-weight: normal; }
92
- h4.ruled { border-bottom: solid 1px #CC9; }
93
- h2.ruled { padding-top: 35px; border-top: solid 1px #AA5; }
94
-
95
- /* Link styles */
96
- :link, :visited {
97
- color: #00b;
98
- }
99
- :link:hover, :visited:hover {
100
- background-color: #eee;
101
- color: #B22;
102
- }
103
- #fullpage {
104
- width: 720px;
105
- margin: 0 auto;
106
- }
107
- .page_shade, .page {
108
- padding: 0px 5px 5px 0px;
109
- background-color: #fcfcf9;
110
- border: solid 1px #983;
111
- }
112
- .page {
113
- margin-left: -5px;
114
- margin-top: -5px;
115
- padding: 20px 35px;
116
- }
117
- .page .header {
118
- float: right;
119
- color: #777;
120
- font-size: 10px;
121
- }
122
- .page h1, .page h2, .page h3 {
123
- clear: both;
124
- text-align: center;
125
- }
126
- #pager {
127
- padding: 10px 4px;
128
- color: white;
129
- font-size: 11px;
130
- }
131
- #pager :link, #pager :visited {
132
- color: #bfb;
133
- padding: 0px 5px;
134
- }
135
- #pager :link:hover, #pager :visited:hover {
136
- background-color: #262;
137
- color: white;
138
- }
139
- #logo { float: left; }
140
- #menu { background-color: #dfa; padding: 4px 12px; margin: 0; }
141
- #menu h3 { padding: 0; margin: 0; }
142
- #menu #links { float: right; }
143
- pre { font-weight: bold; color: #730; }
144
- tt { color: #703; font-size: 12pt; }
145
- .dyn-source { background-color: #775915; padding: 4px 8px; margin: 0; display: none; }
146
- .dyn-source pre { color: #DDDDDD; font-size: 8pt; }
147
- .source-link { text-align: right; font-size: 8pt; }
148
- .ruby-comment { color: green; font-style: italic }
149
- .ruby-constant { color: #CCDDFF; font-weight: bold; }
150
- .ruby-identifier { color: #CCCCCC; }
151
- .ruby-ivar { color: #BBCCFF; }
152
- .ruby-keyword { color: #EEEEFF; font-weight: bold }
153
- .ruby-node { color: #FFFFFF; }
154
- .ruby-operator { color: #CCCCCC; }
155
- .ruby-regexp { color: #DDFFDD; }
156
- .ruby-value { color: #FFAAAA; font-style: italic }
157
- .kw { color: #DDDDFF; font-weight: bold }
158
- .cmt { color: #CCFFCC; font-style: italic }
159
- .str { color: #EECCCC; font-style: italic }
160
- .re { color: #EECCCC; }
161
- }
162
-
163
- CONTENTS_XML = %{
164
- IF:description
165
- %description%
166
- ENDIF:description
167
-
168
- IF:requires
169
- <h4>Requires:</h4>
170
- <ul>
171
- START:requires
172
- IF:aref
173
- <li><a href="%aref%">%name%</a></li>
174
- ENDIF:aref
175
- IFNOT:aref
176
- <li>%name%</li>
177
- ENDIF:aref
178
- END:requires
179
- </ul>
180
- ENDIF:requires
181
-
182
- IF:attributes
183
- <h4>Attributes</h4>
184
- <table>
185
- START:attributes
186
- <tr><td>%name%</td><td>%rw%</td><td>%a_desc%</td></tr>
187
- END:attributes
188
- </table>
189
- ENDIF:attributes
190
-
191
- IF:includes
192
- <h4>Includes</h4>
193
- <ul>
194
- START:includes
195
- IF:aref
196
- <li><a href="%aref%">%name%</a></li>
197
- ENDIF:aref
198
- IFNOT:aref
199
- <li>%name%</li>
200
- ENDIF:aref
201
- END:includes
202
- </ul>
203
- ENDIF:includes
204
-
205
- START:sections
206
- IF:method_list
207
- <h2 class="ruled">Methods</h2>
208
- START:method_list
209
- IF:methods
210
- START:methods
211
- <h4 class="ruled">%type% %category% method:
212
- IF:callseq
213
- <strong><a name="%aref%">%callseq%</a></strong> <a href="#%aref%"><img src="%root%/permalink.gif" border="0" title="Permalink to %callseq%" /></a>
214
- ENDIF:callseq
215
- IFNOT:callseq
216
- <strong><a name="%aref%">%name%%params%</a></strong> <a href="#%aref%"><img src="%root%/permalink.gif" border="0" title="Permalink to %type% %category% method: %name%" /></a></h4>
217
- ENDIF:callseq
218
-
219
- IF:m_desc
220
- %m_desc%
221
- ENDIF:m_desc
222
-
223
- IF:sourcecode
224
- <div class="sourcecode">
225
- <p class="source-link">[ <a href="javascript:toggleSource('%aref%_source')" id="l_%aref%_source">show source</a> ]</p>
226
- <div id="%aref%_source" class="dyn-source">
227
- <pre>
228
- %sourcecode%
229
- </pre>
230
- </div>
231
- </div>
232
- ENDIF:sourcecode
233
- END:methods
234
- ENDIF:methods
235
- END:method_list
236
- ENDIF:method_list
237
- END:sections
238
- }
239
-
240
- ############################################################################
241
-
242
-
243
- BODY = %{
244
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
245
- <html>
246
- <head>
247
- <title>
248
- IF:title
249
- %realtitle% &raquo; %title%
250
- ENDIF:title
251
- IFNOT:title
252
- %realtitle%
253
- ENDIF:title
254
- </title>
255
- <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
256
- <link rel="stylesheet" href="%style_url%" type="text/css" media="screen" />
257
- <script language="JavaScript" type="text/javascript">
258
- // <![CDATA[
259
-
260
- function toggleSource( id )
261
- {
262
- var elem
263
- var link
264
-
265
- if( document.getElementById )
266
- {
267
- elem = document.getElementById( id )
268
- link = document.getElementById( "l_" + id )
269
- }
270
- else if ( document.all )
271
- {
272
- elem = eval( "document.all." + id )
273
- link = eval( "document.all.l_" + id )
274
- }
275
- else
276
- return false;
277
-
278
- if( elem.style.display == "block" )
279
- {
280
- elem.style.display = "none"
281
- link.innerHTML = "show source"
282
- }
283
- else
284
- {
285
- elem.style.display = "block"
286
- link.innerHTML = "hide source"
287
- }
288
- }
289
-
290
- function openCode( url )
291
- {
292
- window.open( url, "SOURCE_CODE", "width=400,height=400,scrollbars=yes" )
293
- }
294
- // ]]>
295
- </script>
296
- </head>
297
- <body>
298
- <div id="menu">
299
- <div id="links">
300
- <a href="http://redhanded.hobix.com/bits/campingAMicroframework.html">backstory</a> |
301
- <a href="http://code.whytheluckystiff.net/camping/">wiki</a> |
302
- <a href="http://code.whytheluckystiff.net/camping/newticket">bugs</a> |
303
- <a href="http://code.whytheluckystiff.net/svn/camping/">svn</a>
304
- </div>
305
- <h3 class="title">%title%</h3>
306
- </div>
307
- <div id="fullpage">
308
- <div id="logo"><img src="%root%/Camping.gif" /></div>
309
- <div id="pager">
310
- <strong>Files:</strong>
311
- START:allfiles
312
- <a href="%root%/%href%" value="%title%">%name%</a>
313
- END:allfiles
314
- IF:allclasses
315
- |
316
- <strong>classes:</strong>
317
- START:allclasses
318
- <a href="%root%/%href%" title="%title%">%name%</a>
319
- END:allclasses
320
- ENDIF:allclasses
321
- </ul>
322
- </div>
323
-
324
- !INCLUDE!
325
-
326
- </div>
327
- </body>
328
- </html>
329
- }
330
-
331
- ###############################################################################
332
-
333
- FILE_PAGE = <<_FILE_PAGE_
334
- <div id="%full_path%" class="page_shade">
335
- <div class="page">
336
- <div class="header">
337
- <div class="path">%full_path% / %dtm_modified%</div>
338
- </div>
339
- #{CONTENTS_XML}
340
- </div>
341
- </div>
342
- _FILE_PAGE_
343
-
344
- ###################################################################
345
-
346
- CLASS_PAGE = %{
347
- <div id="%full_name%" class="page_shade">
348
- <div class="page">
349
- IF:parent
350
- <h3>%classmod% %full_name% &lt; HREF:par_url:parent:</h3>
351
- ENDIF:parent
352
- IFNOT:parent
353
- <h3>%classmod% %full_name%</h3>
354
- ENDIF:parent
355
-
356
- IF:infiles
357
- (in files
358
- START:infiles
359
- HREF:full_path_url:full_path:
360
- END:infiles
361
- )
362
- ENDIF:infiles
363
- } + CONTENTS_XML + %{
364
- </div>
365
- </div>
366
- }
367
-
368
- ###################################################################
369
-
370
- METHOD_LIST = %{
371
- IF:includes
372
- <div class="tablesubsubtitle">Included modules</div><br>
373
- <div class="name-list">
374
- START:includes
375
- <span class="method-name">HREF:aref:name:</span>
376
- END:includes
377
- </div>
378
- ENDIF:includes
379
-
380
- IF:method_list
381
- START:method_list
382
- IF:methods
383
- <table cellpadding=5 width="100%">
384
- <tr><td class="tablesubtitle">%type% %category% methods</td></tr>
385
- </table>
386
- START:methods
387
- <table width="100%" cellspacing = 0 cellpadding=5 border=0>
388
- <tr><td class="methodtitle">
389
- <a name="%aref%">
390
- IF:callseq
391
- <b>%callseq%</b>
392
- ENDIF:callseq
393
- IFNOT:callseq
394
- <b>%name%</b>%params%
395
- ENDIF:callseq
396
- IF:codeurl
397
- <a href="%codeurl%" target="source" class="srclink">src</a>
398
- ENDIF:codeurl
399
- </a></td></tr>
400
- </table>
401
- IF:m_desc
402
- <div class="description">
403
- %m_desc%
404
- </div>
405
- ENDIF:m_desc
406
- IF:aka
407
- <div class="aka">
408
- This method is also aliased as
409
- START:aka
410
- <a href="%aref%">%name%</a>
411
- END:aka
412
- </div>
413
- ENDIF:aka
414
- IF:sourcecode
415
- <div class="sourcecode">
416
- <p class="source-link">[ <a href="javascript:toggleSource('%aref%_source')" id="l_%aref%_source">show source</a> ]</p>
417
- <div id="%aref%_source" class="dyn-source">
418
- <pre>
419
- %sourcecode%
420
- </pre>
421
- </div>
422
- </div>
423
- ENDIF:sourcecode
424
- END:methods
425
- ENDIF:methods
426
- END:method_list
427
- ENDIF:method_list
428
- }
429
-
430
-
431
- ########################## Index ################################
432
-
433
- FR_INDEX_BODY = %{
434
- !INCLUDE!
435
- }
436
-
437
- FILE_INDEX = %{
438
- <html>
439
- <head>
440
- <meta http-equiv="Content-Type" content="text/html; charset=%charset%">
441
- <style>
442
- <!--
443
- body {
444
- background-color: #ddddff;
445
- font-family: #{FONTS};
446
- font-size: 11px;
447
- font-style: normal;
448
- line-height: 14px;
449
- color: #000040;
450
- }
451
- div.banner {
452
- background: #0000aa;
453
- color: white;
454
- padding: 1;
455
- margin: 0;
456
- font-size: 90%;
457
- font-weight: bold;
458
- line-height: 1.1;
459
- text-align: center;
460
- width: 100%;
461
- }
462
-
463
- -->
464
- </style>
465
- <base target="docwin">
466
- </head>
467
- <body>
468
- <div class="banner">%list_title%</div>
469
- START:entries
470
- <a href="%href%">%name%</a><br>
471
- END:entries
472
- </body></html>
473
- }
474
-
475
- CLASS_INDEX = FILE_INDEX
476
- METHOD_INDEX = FILE_INDEX
477
-
478
- INDEX = %{
479
- <HTML>
480
- <HEAD>
481
- <META HTTP-EQUIV="refresh" content="0;URL=%initial_page%">
482
- <TITLE>%realtitle%</TITLE>
483
- </HEAD>
484
- <BODY>
485
- Click <a href="%initial_page%">here</a> to open the Camping docs.
486
- </BODY>
487
- </HTML>
488
- }
489
-
490
- end
491
- end