thin 0.5.0 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of thin might be problematic. Click here for more details.

Files changed (67) hide show
  1. data/COPYING +1 -1
  2. data/README +3 -7
  3. data/Rakefile +6 -163
  4. data/bin/thin +87 -48
  5. data/example/thin.god +72 -0
  6. data/ext/thin_parser/thin.c +7 -7
  7. data/lib/rack/adapter/rails.rb +38 -22
  8. data/lib/thin.rb +2 -1
  9. data/lib/thin/cluster.rb +106 -0
  10. data/lib/thin/connection.rb +3 -4
  11. data/lib/thin/daemonizing.rb +4 -24
  12. data/lib/thin/request.rb +6 -5
  13. data/lib/thin/response.rb +1 -3
  14. data/lib/thin/server.rb +9 -6
  15. data/lib/thin/version.rb +6 -4
  16. data/lib/thin_parser.bundle +0 -0
  17. data/spec/cluster_spec.rb +58 -0
  18. data/spec/daemonizing_spec.rb +1 -2
  19. data/spec/rack_rails_spec.rb +73 -0
  20. data/spec/rails_app/app/controllers/application.rb +10 -0
  21. data/spec/rails_app/app/controllers/simple_controller.rb +19 -0
  22. data/spec/rails_app/app/helpers/application_helper.rb +3 -0
  23. data/spec/rails_app/app/views/simple/index.html.erb +15 -0
  24. data/spec/rails_app/config/boot.rb +109 -0
  25. data/spec/rails_app/config/environment.rb +64 -0
  26. data/spec/rails_app/config/environments/development.rb +18 -0
  27. data/spec/rails_app/config/environments/production.rb +19 -0
  28. data/spec/rails_app/config/environments/test.rb +22 -0
  29. data/spec/rails_app/config/initializers/inflections.rb +10 -0
  30. data/spec/rails_app/config/initializers/mime_types.rb +5 -0
  31. data/spec/rails_app/config/routes.rb +35 -0
  32. data/spec/rails_app/public/404.html +30 -0
  33. data/spec/rails_app/public/422.html +30 -0
  34. data/spec/rails_app/public/500.html +30 -0
  35. data/spec/rails_app/public/dispatch.cgi +10 -0
  36. data/spec/rails_app/public/dispatch.fcgi +24 -0
  37. data/spec/rails_app/public/dispatch.rb +10 -0
  38. data/spec/rails_app/public/favicon.ico +0 -0
  39. data/spec/rails_app/public/images/rails.png +0 -0
  40. data/spec/rails_app/public/index.html +277 -0
  41. data/spec/rails_app/public/javascripts/application.js +2 -0
  42. data/spec/rails_app/public/javascripts/controls.js +963 -0
  43. data/spec/rails_app/public/javascripts/dragdrop.js +972 -0
  44. data/spec/rails_app/public/javascripts/effects.js +1120 -0
  45. data/spec/rails_app/public/javascripts/prototype.js +4225 -0
  46. data/spec/rails_app/public/robots.txt +5 -0
  47. data/spec/rails_app/script/about +3 -0
  48. data/spec/rails_app/script/console +3 -0
  49. data/spec/rails_app/script/destroy +3 -0
  50. data/spec/rails_app/script/generate +3 -0
  51. data/spec/rails_app/script/performance/benchmarker +3 -0
  52. data/spec/rails_app/script/performance/profiler +3 -0
  53. data/spec/rails_app/script/performance/request +3 -0
  54. data/spec/rails_app/script/plugin +3 -0
  55. data/spec/rails_app/script/process/inspector +3 -0
  56. data/spec/rails_app/script/process/reaper +3 -0
  57. data/spec/rails_app/script/process/spawner +3 -0
  58. data/spec/rails_app/script/runner +3 -0
  59. data/spec/rails_app/script/server +3 -0
  60. data/spec/response_spec.rb +16 -0
  61. data/spec/spec_helper.rb +1 -0
  62. metadata +71 -11
  63. data/doc/rdoc/created.rid +0 -1
  64. data/doc/rdoc/files/README.html +0 -197
  65. data/doc/rdoc/index.html +0 -10
  66. data/doc/rdoc/logo.gif +0 -0
  67. data/doc/rdoc/rdoc-style.css +0 -91
@@ -0,0 +1,5 @@
1
+ # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2
+ #
3
+ # To ban all spiders from the entire site uncomment the next two lines:
4
+ # User-Agent: *
5
+ # Disallow: /
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/about'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/console'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/destroy'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/generate'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/performance/benchmarker'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/performance/profiler'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/performance/request'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/plugin'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/process/inspector'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/process/reaper'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/process/spawner'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/runner'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/server'
@@ -21,6 +21,22 @@ describe Response do
21
21
  @response.head.should == "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nSet-Cookie: mium=7\r\nSet-Cookie: hi=there\r\nContent-Length: 0\r\nConnection: close\r\n\r\n"
22
22
  end
23
23
 
24
+ it 'should parse simple header values' do
25
+ @response.headers = {
26
+ 'Host' => 'localhost'
27
+ }
28
+
29
+ @response.head.should == "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nHost: localhost\r\nContent-Length: 0\r\nConnection: close\r\n\r\n"
30
+ end
31
+
32
+ it 'should parse multiline header values in several headers' do
33
+ @response.headers = {
34
+ 'Set-Cookie' => "mium=7\nhi=there"
35
+ }
36
+
37
+ @response.head.should == "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nSet-Cookie: mium=7\r\nSet-Cookie: hi=there\r\nContent-Length: 0\r\nConnection: close\r\n\r\n"
38
+ end
39
+
24
40
  it 'should output body' do
25
41
  @response.body << '<html></html>'
26
42
 
@@ -3,6 +3,7 @@ require File.dirname(__FILE__) + '/../lib/thin'
3
3
  require 'spec'
4
4
  require 'benchmark'
5
5
  require 'timeout'
6
+ require 'fileutils'
6
7
 
7
8
  include Thin
8
9
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc-Andre Cournoyer
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-01-01 00:00:00 -05:00
12
+ date: 2008-01-12 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -19,7 +19,7 @@ dependencies:
19
19
  requirements:
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.9.0
22
+ version: 0.8.1
23
23
  version:
24
24
  - !ruby/object:Gem::Dependency
25
25
  name: rack
@@ -30,6 +30,15 @@ dependencies:
30
30
  - !ruby/object:Gem::Version
31
31
  version: 0.2.0
32
32
  version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: daemons
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.0.9
41
+ version:
33
42
  description: A thin and fast web server
34
43
  email: macournoyer@gmail.com
35
44
  executables:
@@ -44,16 +53,65 @@ files:
44
53
  - Rakefile
45
54
  - bin/thin
46
55
  - doc/benchmarks.txt
47
- - doc/rdoc
48
- - doc/rdoc/classes
49
- - doc/rdoc/created.rid
50
- - doc/rdoc/files
51
- - doc/rdoc/files/README.html
52
- - doc/rdoc/index.html
53
- - doc/rdoc/logo.gif
54
- - doc/rdoc/rdoc-style.css
56
+ - spec/cluster_spec.rb
55
57
  - spec/daemonizing_spec.rb
56
58
  - spec/headers_spec.rb
59
+ - spec/rack_rails_spec.rb
60
+ - spec/rails_app
61
+ - spec/rails_app/app
62
+ - spec/rails_app/app/controllers
63
+ - spec/rails_app/app/controllers/application.rb
64
+ - spec/rails_app/app/controllers/simple_controller.rb
65
+ - spec/rails_app/app/helpers
66
+ - spec/rails_app/app/helpers/application_helper.rb
67
+ - spec/rails_app/app/views
68
+ - spec/rails_app/app/views/simple
69
+ - spec/rails_app/app/views/simple/index.html.erb
70
+ - spec/rails_app/config
71
+ - spec/rails_app/config/boot.rb
72
+ - spec/rails_app/config/environment.rb
73
+ - spec/rails_app/config/environments
74
+ - spec/rails_app/config/environments/development.rb
75
+ - spec/rails_app/config/environments/production.rb
76
+ - spec/rails_app/config/environments/test.rb
77
+ - spec/rails_app/config/initializers
78
+ - spec/rails_app/config/initializers/inflections.rb
79
+ - spec/rails_app/config/initializers/mime_types.rb
80
+ - spec/rails_app/config/routes.rb
81
+ - spec/rails_app/public
82
+ - spec/rails_app/public/404.html
83
+ - spec/rails_app/public/422.html
84
+ - spec/rails_app/public/500.html
85
+ - spec/rails_app/public/dispatch.cgi
86
+ - spec/rails_app/public/dispatch.fcgi
87
+ - spec/rails_app/public/dispatch.rb
88
+ - spec/rails_app/public/favicon.ico
89
+ - spec/rails_app/public/images
90
+ - spec/rails_app/public/images/rails.png
91
+ - spec/rails_app/public/index.html
92
+ - spec/rails_app/public/javascripts
93
+ - spec/rails_app/public/javascripts/application.js
94
+ - spec/rails_app/public/javascripts/controls.js
95
+ - spec/rails_app/public/javascripts/dragdrop.js
96
+ - spec/rails_app/public/javascripts/effects.js
97
+ - spec/rails_app/public/javascripts/prototype.js
98
+ - spec/rails_app/public/robots.txt
99
+ - spec/rails_app/script
100
+ - spec/rails_app/script/about
101
+ - spec/rails_app/script/console
102
+ - spec/rails_app/script/destroy
103
+ - spec/rails_app/script/generate
104
+ - spec/rails_app/script/performance
105
+ - spec/rails_app/script/performance/benchmarker
106
+ - spec/rails_app/script/performance/profiler
107
+ - spec/rails_app/script/performance/request
108
+ - spec/rails_app/script/plugin
109
+ - spec/rails_app/script/process
110
+ - spec/rails_app/script/process/inspector
111
+ - spec/rails_app/script/process/reaper
112
+ - spec/rails_app/script/process/spawner
113
+ - spec/rails_app/script/runner
114
+ - spec/rails_app/script/server
57
115
  - spec/request_spec.rb
58
116
  - spec/response_spec.rb
59
117
  - spec/server_spec.rb
@@ -64,6 +122,7 @@ files:
64
122
  - lib/rack/handler
65
123
  - lib/rack/handler/thin.rb
66
124
  - lib/thin
125
+ - lib/thin/cluster.rb
67
126
  - lib/thin/connection.rb
68
127
  - lib/thin/daemonizing.rb
69
128
  - lib/thin/headers.rb
@@ -76,6 +135,7 @@ files:
76
135
  - lib/thin.rb
77
136
  - lib/thin_parser.bundle
78
137
  - example/config.ru
138
+ - example/thin.god
79
139
  - ext/thin_parser/ext_help.h
80
140
  - ext/thin_parser/parser.h
81
141
  - ext/thin_parser/parser.c
@@ -1 +0,0 @@
1
- Tue, 01 Jan 2008 23:05:47 -0500
@@ -1,197 +0,0 @@
1
-
2
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
- <html>
4
- <head>
5
- <title>
6
- thin &raquo; File: README
7
- </title>
8
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
10
- <script language="JavaScript" type="text/javascript">
11
- // <![CDATA[
12
-
13
- function toggleSource( id )
14
- {
15
- var elem
16
- var link
17
-
18
- if( document.getElementById )
19
- {
20
- elem = document.getElementById( id )
21
- link = document.getElementById( "l_" + id )
22
- }
23
- else if ( document.all )
24
- {
25
- elem = eval( "document.all." + id )
26
- link = eval( "document.all.l_" + id )
27
- }
28
- else
29
- return false;
30
-
31
- if( elem.style.display == "block" )
32
- {
33
- elem.style.display = "none"
34
- link.innerHTML = "show source"
35
- }
36
- else
37
- {
38
- elem.style.display = "block"
39
- link.innerHTML = "hide source"
40
- }
41
- }
42
-
43
- function openCode( url )
44
- {
45
- window.open( url, "SOURCE_CODE", "width=400,height=400,scrollbars=yes" )
46
- }
47
- // ]]>
48
- </script>
49
- </head>
50
- <body>
51
- <ul id="menu">
52
- <li><a href="/thin/">home</a></li>
53
- <li><a href="/thin/doc/">doc</a></li>
54
- <li><a href="/thin/trac.fcgi/timeline">timeline</a></li>
55
- <li><a href="/thin/trac.fcgi/browser">code</a></li>
56
- <li><a href="/thin/trac.fcgi/report">tickets</a></li>
57
- <li><a href="/thin/trac.fcgi/newticket">new ticket</a></li>
58
- </ul>
59
- <div id="sidebar">
60
- <h2>Files</h2>
61
- <ul class="list">
62
- <li><a href="../files/README.html" value="File: README">README</a></li>
63
- </ul>
64
-
65
- <h2>Classes</h2>
66
- <ul class="list">
67
- </ul>
68
- </div>
69
- <div id="container">
70
- <div id="header">
71
- <a href="/thin/" title="Home">
72
- <img id="logo" src="../logo.gif" />
73
- </a>
74
- <h2 id="tag_line">A fast and very simple Ruby web server</h2>
75
- </div>
76
-
77
- <div id="content">
78
- <h2>File: README</h2>
79
-
80
- <div id="README" class="page_shade">
81
- <div class="page">
82
- <div class="header">
83
- <div class="path">README / Tue Jan 01 22:53:48 -0500 2008</div>
84
- </div>
85
-
86
- <h2>Thin</h2>
87
- <p>
88
- Tiny, fast &amp; funny HTTP server
89
- </p>
90
- <p>
91
- Thin is a Ruby web server that glues together 3 of the best Ruby libraries
92
- in web history:
93
- </p>
94
- <pre>
95
- * the Mongrel parser: the root of Mongrel speed and security
96
- * Event Machine: a network I/O library with extremely high scalability, performance and stability
97
- * Rack: a minimal interface between webservers and Ruby frameworks
98
- </pre>
99
- <p>
100
- Which makes it, with all humility, the most secure, stable, fast and
101
- extensible Ruby web server bundled in an easy to use gem for your own
102
- pleasure.
103
- </p>
104
- <h3>Installation</h3>
105
- <p>
106
- For the latest stable version:
107
- </p>
108
- <pre>
109
- sudo gem install thin
110
- </pre>
111
- <p>
112
- or using my mirror (might be more recent):
113
- </p>
114
- <pre>
115
- sudo gem install thin --source http://code.macournoyer.com
116
- </pre>
117
- <p>
118
- Or from source:
119
- </p>
120
- <pre>
121
- git clone http://code.macournoyer.com/git/thin.git
122
- cd thin
123
- rake install
124
- </pre>
125
- <p>
126
- Or from the Subversion mirror (might be out of date):
127
- </p>
128
- <pre>
129
- svn co http://code.macournoyer.com/svn/thin/trunk thin
130
- </pre>
131
- <h3>Usage</h3>
132
- <p>
133
- A <tt>thin</tt> script is offered to easily start your Rails application:
134
- </p>
135
- <pre>
136
- cd to/your/rails/app
137
- thin start
138
- </pre>
139
- <p>
140
- But Thin is also usable through Rack <tt>rackup</tt> command. You need to
141
- setup a config.ru file and require thin in it:
142
- </p>
143
- <pre>
144
- cat &lt;&lt;EOS
145
- require 'thin'
146
-
147
- app = proc do |env|
148
- [200, {'Content-Type'=&gt;'text/html'}, ['hi']]
149
- end
150
-
151
- run app
152
- EOS
153
- rackup -s thin
154
- </pre>
155
- <p>
156
- See example/config.ru for details and rackup -h
157
- </p>
158
- <h3>License</h3>
159
- <p>
160
- Ruby License, <a
161
- href="http://www.ruby-lang.org/en/LICENSE.txt">www.ruby-lang.org/en/LICENSE.txt</a>.
162
- </p>
163
- <h3>Credits</h3>
164
- <p>
165
- The parser was stolen from Mongrel <a
166
- href="http://mongrel.rubyforge.org">mongrel.rubyforge.org</a> by Zed Shaw.
167
- Mongrel Web Server (Mongrel) is copyrighted free software by Zed A. Shaw
168
- &lt;zedshaw at zedshaw dot com&gt; You can redistribute it and/or modify it
169
- under either the terms of the GPL.
170
- </p>
171
- <p>
172
- Thin is copyright Marc-Andre Cournoyer &lt;macournoyer@gmail.com&gt;
173
- </p>
174
- <p>
175
- Please report any bug at <a
176
- href="http://code.macournoyer.com/thin/trac.fcgi/newticket">code.macournoyer.com/thin/trac.fcgi/newticket</a>
177
- and security issues directly to me at macournoyer@gmail.com.
178
- </p>
179
-
180
-
181
-
182
-
183
-
184
-
185
-
186
- </div>
187
- </div>
188
-
189
-
190
- </div>
191
- </div>
192
- <div id="footer">
193
- <hr />
194
- &copy; <a href="http://macournoyer.com">Marc-Andr&eacute; Cournoyer</a>
195
- </div>
196
- </body>
197
- </html>
@@ -1,10 +0,0 @@
1
-
2
- <HTML>
3
- <HEAD>
4
- <META HTTP-EQUIV="refresh" content="0;URL=files/README.html">
5
- <TITLE>thin</TITLE>
6
- </HEAD>
7
- <BODY>
8
- Click <a href="files/README.html">here</a> to open the Thin docs.
9
- </BODY>
10
- </HTML>
Binary file
@@ -1,91 +0,0 @@
1
- body { margin:0; padding:0; font: 12px Times, "Times New Roman"; text-align: center }
2
- img { border:0 }
3
-
4
- a { color: #666; text-decoration: none; border-bottom: solid 1px #ccc; }
5
- a:hover { color: #333; border-bottom: solid 1px #aaa; }
6
-
7
- acronym { border-bottom: dotted 1px #ccc; cursor: help; }
8
-
9
- pre { font: 9px Courier, "Courier New"; background: #111; color: #fff; padding: 3px; border: solid 1px #ccc; }
10
- hr { background: url(/thin/images/split.gif) no-repeat; height: 30px; width: 100px; border: 0; margin: 40px auto; }
11
-
12
- input, select, textarea { font: 9px Tahoma, Arial; }
13
- label { font-size: 11px; }
14
-
15
- h1, h2, h3, h4 { margin: 12px 0 8px 0; padding: 0; }
16
- h3 { font-size: 14px; }
17
- h4 { font-size: 13px; }
18
-
19
- ul#menu { padding: 4px; margin:0; background: #111; list-style: none; border-bottom: solid 1px #ccc; }
20
- ul#menu li { margin:0; display: inline; }
21
- ul#menu li a { color: #fff; text-decoration: none; padding: 6px; border: 0; }
22
- ul#menu li a:hover { text-decoration: underline; }
23
-
24
- #container { width: 300px; margin: 0 auto; }
25
-
26
- #header { padding: 30px 0 10px 0; }
27
- #header #logo { padding-bottom: 10px; }
28
- #header #tag_line { margin: 4px 0; font-size: 12px; letter-spacing: -1px; color: #333; }
29
-
30
- #content { line-height: 16px; text-align: left; }
31
- #content h1 { margin: 40px 0 10px 0; padding: 0; text-align: center; }
32
- #content h2 { margin: 40px 0 10px 0; padding: 0; text-align: center; }
33
- #content h3 { margin: 40px 0 10px 0; padding: 0; text-align: center; }
34
-
35
- #content ul { list-style-image: url(/thin/images/bullet.gif); margin: 0; padding: 0 20px; }
36
- #content li { padding: 1px 0; }
37
-
38
- #footer { margin: 60px 0 20px 0; font-size: 10px; color: #666; }
39
-
40
- #sidebar { position: absolute; right: 0; width: 400px; text-align: right; padding: 10px; }
41
-
42
- ul.list { list-style: none; }
43
- ul.list li { margin: 0; padding: 1px 0; }
44
-
45
- #content div.graph h3 { margin: 6px 0; }
46
- #content div.graph { text-align: center; }
47
-
48
- .clear { clear: both; }
49
-
50
- /*RDoc*/
51
- .dyn-source { display: none; }
52
- .path { text-align: center; font: 9px Tahoma, Arial; }
53
- .method-type { font: 9px Tahoma, Arial; color: #fff; background: #111; border: solid 1px #ccc; padding: 1px; }
54
-
55
- /*Trac*/
56
- #container.wide { width: 600px; }
57
- #prefs { position: absolute; right: 0; width: 200px; }
58
-
59
- #content.timeline h2 { font: 9px Tahoma, Arial; border-bottom: solid 1px #ccc; color: #ccc; text-align: left; }
60
- #content.timeline dt { padding: 3px; }
61
- #content.timeline dt a { border: 0; }
62
- #content.timeline dt a em { border-bottom: solid 1px #ccc; }
63
- #content.timeline dt .time { font: 9px Tahoma, Arial; color: #fff; background: #111; border: solid 1px #ccc; padding: 1px; }
64
-
65
- table { border-collapse: collapse; }
66
-
67
- table.listing { margin: 30px 0; width: 100%; }
68
- table.listing th { font: 9px Tahoma, Arial; border-bottom: solid 1px #ccc; text-align: left; }
69
- table.listing th a { border: 0; }
70
- table.listing td { padding: 4px; }
71
-
72
- table .odd td { background: #eee; }
73
-
74
- #jumprev { float: right; }
75
-
76
- #help { float: right; margin: 20px 0; }
77
- #altlinks { clear: both; }
78
-
79
- #ctxtnav ul { padding: 4px; margin:0; list-style: none; }
80
- #ctxtnav ul li { margin:0; display: inline; }
81
-
82
- table.code { background: #111; color: #fff; padding: 3px; border: solid 1px #ccc; width: 100%; }
83
- table.code tbody td { font: 10px Courier, "Courier New"; padding: 3px; }
84
- table.code th.info { display: none; }
85
- table.code th { font: 8px Tahoma, Arial; text-align: right; padding: 1px 6px; }
86
- table.code th a { border: 0; }
87
- table.code td { padding: 2px; }
88
-
89
- .field, .buttons { margin: 14px 0; }
90
-
91
- fieldset table, textarea { width: 100%; }