Created the project page dripping with sappy honey goodness.
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@33 19e92222-5c0b-0410-8929-a290d50e31e9
6
doc/site/README
Normal file
|
@ -0,0 +1,6 @@
|
|||
webgen Website Template 'default'
|
||||
|
||||
This is the default website template. It only contains the basic files and is a good
|
||||
starting place for any website.
|
||||
|
||||
This note can be deleted!
|
2
doc/site/config.yaml
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Configuration file for webgen
|
||||
# Used to set the parameters of the plugins
|
54
doc/site/src/attributions.page
Normal file
|
@ -0,0 +1,54 @@
|
|||
---
|
||||
title: Attributions
|
||||
inMenu: true
|
||||
directoryName: Attributions
|
||||
ordering: 100
|
||||
---
|
||||
h1. The People Who Made It Possible
|
||||
|
||||
There's quite a few people who either directly or indirectly helped to
|
||||
make Mongrel. If I missed anyone then just e-mail me and I'll put your
|
||||
name here.
|
||||
|
||||
h2. Site Template
|
||||
|
||||
The site's look and template is blatantly stolen from "OWD":http://openwebdesign.org
|
||||
and is specifically Copyright © 2006 "Evgeni Dinev":http://www.evgenidinev.com/
|
||||
under the "Creative Commons":http://creativecommons.org license.
|
||||
|
||||
h2. Photos
|
||||
|
||||
The photos were found on "Flickr":http://flickr.com and are all licensed under the
|
||||
"Creative Commons":http://creativecommons.org license. The following images are
|
||||
attributed to the people based on their Flickr accounts:
|
||||
|
||||
* "Bantay meets the world":http://www.flickr.com/photos/colloidfarl/39744440/in/set-625842/
|
||||
* "Caution: Beetlejam":http://www.flickr.com/photos/gyuvallos/90208926/
|
||||
* "Resting":http://flickr.com/photos/ashey/95638805/
|
||||
* "Allen Wrench Mess":http://www.flickr.com/photos/eklektikos/79968762/
|
||||
* "Tools":http://www.flickr.com/photos/book_slut/87022458/
|
||||
* "Big Wrench":http://flickr.com/photos/actionatadistance/63325054/in/set-1367823/
|
||||
* "bolt":http://www-us.flickr.com/photos/lwr/6267035/in/set-775375/
|
||||
* "Book Collage":http://www.flickr.com/photos/muybridge/85895062/
|
||||
* "squared circle megaphone":http://www.ruby-lang.org/en/20020104.html
|
||||
|
||||
Thanks to those people who publish their photos with the "Creative Commons":http://creativecommons.org
|
||||
license so others can see their photography (and look at their dogs).
|
||||
|
||||
h2. Coding
|
||||
|
||||
* "Rick Olson (aka technoweenie)":http://techno-weenie.net/ was the first to grab Mongrel
|
||||
and cram "Camping":http://redhanded.hobix.com/bits/campingAMicroframework.html into it.
|
||||
* "Why the lucky stiff":http://whytheluckystiff.net/ did work on getting the "Camping Framework":http://redhanded.hobix.com/bits/campingAMicroframework.html working with Mongrel more completely.
|
||||
|
||||
h2. Tools
|
||||
|
||||
* "RubyForge":http://rubyforge.org/ for providing space and hooking it all up.
|
||||
* "Webgen":http://webgen.rubyforge.org/
|
||||
|
||||
h2. Testing
|
||||
|
||||
Lots of people from the
|
||||
"Ruby on Rails mailing list":http://lists.rubyonrails.org/mailman/listinfo/rails
|
||||
and "ruby-lang mailing list":http://www.ruby-lang.org/en/20020104.html found bugs
|
||||
reported them.
|
434
doc/site/src/default.css
Normal file
|
@ -0,0 +1,434 @@
|
|||
html, body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #444;
|
||||
font-size: 84%;
|
||||
font-family: "Trebuchet MS", Arial, sans-serif;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #556379;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #8496B3;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.3em;
|
||||
font-family: Arial;
|
||||
color: #7B98F8;
|
||||
margin: 0;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 0.9em;
|
||||
font-family: Arial;
|
||||
color: #62C916;
|
||||
text-transform: uppercase;
|
||||
margin: 0;
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 0.9em;
|
||||
font-family: Arial;
|
||||
margin: 0;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 0.8em;
|
||||
font-family: Arial;
|
||||
color: #8CA1AA;
|
||||
text-transform: uppercase;
|
||||
margin: 0;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
hr {
|
||||
clear: both;
|
||||
height: 1px;
|
||||
border-top: solid 1px #AACCD5;
|
||||
}
|
||||
|
||||
img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
margin: 0 auto;
|
||||
width: 733px;
|
||||
text-align: left;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#head {
|
||||
background-color: #F0F8FA;
|
||||
height: 90px;
|
||||
color: #606d82;
|
||||
border-bottom: 1px solid #fff;
|
||||
}
|
||||
|
||||
#head div {
|
||||
float: left;
|
||||
clear: right;
|
||||
height: 65px;
|
||||
}
|
||||
|
||||
#logo {
|
||||
width: 185px;
|
||||
}
|
||||
|
||||
#logo a {
|
||||
display: block;
|
||||
padding: 46px 0 0 14px;
|
||||
font-size: 18px;
|
||||
letter-spacing: 0;
|
||||
text-transform: uppercase;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#slogan {
|
||||
width: 474px;
|
||||
border-left: 1px solid #A2ADB9;
|
||||
}
|
||||
|
||||
#slogan span {
|
||||
display: block;
|
||||
padding: 28px 0 0 14px;
|
||||
font-size: 38px;
|
||||
letter-spacing: -2px;
|
||||
color: #91b3bc;
|
||||
}
|
||||
|
||||
#toplinks {
|
||||
width: 73px;
|
||||
}
|
||||
|
||||
#toplinks ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#toplinks li {
|
||||
float: left;
|
||||
display: inline;
|
||||
margin-top: 56px;
|
||||
}
|
||||
|
||||
#toplinks a {
|
||||
display: block;
|
||||
width: 18px;
|
||||
height: 9px;
|
||||
}
|
||||
|
||||
#toplinks span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#tl_home {
|
||||
background-image: url(images/tl_home.gif);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#tl_contact {
|
||||
background-image: url(images/tl_contact.gif);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#tl_sitemap {
|
||||
background-image: url(images/tl_sitemap.gif);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#tl_home a:hover {
|
||||
background-image: url(images/tl_home-on.gif);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#tl_contact a:hover {
|
||||
background-image: url(images/tl_contact-on.gif);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#tl_sitemap a:hover {
|
||||
background-image: url(images/tl_sitemap-on.gif);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#body {
|
||||
float: right;
|
||||
margin-top: 3px;
|
||||
width: 548px;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#visual {
|
||||
margin: 16px 0;
|
||||
height: 166px;
|
||||
background-image: url(images/visual.jpg);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#content {
|
||||
float: left;
|
||||
padding-right: 14px;
|
||||
width: 356px;
|
||||
border-right: 1px solid #AACCD5;
|
||||
}
|
||||
|
||||
#news {
|
||||
margin-left: 380px;
|
||||
width: 165px;
|
||||
}
|
||||
|
||||
#news h4 {
|
||||
padding-left: 14px;
|
||||
background-image: url(images/li1b.gif);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#news dl {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#news dt {
|
||||
padding: 6px 10px 4px 10px;
|
||||
margin: 0;
|
||||
border-top: 1px solid #DEECF0;
|
||||
background-image: url(images/li3.gif);
|
||||
background-position: 0 11px;
|
||||
background-repeat: no-repeat;
|
||||
font-size: .7em;
|
||||
color: #8CA1AA;
|
||||
}
|
||||
|
||||
#news dd {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-size: .8em;
|
||||
}
|
||||
|
||||
#news h5 {
|
||||
margin: 0;
|
||||
padding-bottom: 2px;
|
||||
font-size: 1.0em;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#threecells {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#threecells div {
|
||||
float: left;
|
||||
font-size: .9em;
|
||||
clear: right;
|
||||
}
|
||||
|
||||
#threecells a {
|
||||
display: block;
|
||||
width: 162px;
|
||||
height: 48px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#threecells span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#cell_1 {
|
||||
width: 162px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
#cell_1 a {
|
||||
background-image: url(images/3colls_p1.jpg);
|
||||
}
|
||||
|
||||
#cell_2 {
|
||||
width: 162px;
|
||||
padding: 0 15px 0 15px;
|
||||
border-left: 1px solid #AACCD5;
|
||||
border-right: 1px solid #AACCD5;
|
||||
}
|
||||
|
||||
#cell_2 a {
|
||||
background-image: url(images/3colls_p2.jpg);
|
||||
}
|
||||
|
||||
#cell_3 {
|
||||
width: 162px;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
#cell_3 a {
|
||||
background-image: url(images/3colls_p3.jpg);
|
||||
}
|
||||
|
||||
#side {
|
||||
padding-bottom: 8px;
|
||||
border-top: 3px solid #fff;
|
||||
width: 165px;
|
||||
background-color: #EAF4F6;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#menu {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#menu a {
|
||||
text-decoration: none;
|
||||
display:block;
|
||||
}
|
||||
|
||||
#menu ul {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#menu li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 11px;
|
||||
font-family: Arial;
|
||||
}
|
||||
|
||||
#menu ul li a {
|
||||
margin-top: 8px;
|
||||
padding: 0 28px;
|
||||
height: 21px;
|
||||
line-height: 21px;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
border-top: 1px solid #AACCD5;
|
||||
border-bottom: 1px solid #AACCD5;
|
||||
background-image: url(images/li1a.gif);
|
||||
background-position: 13px 5px;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#menu ul li ul li a {
|
||||
margin-top: 0;
|
||||
height:19px;
|
||||
line-height: 19px;
|
||||
font-weight:normal;
|
||||
text-transform: capitalize;
|
||||
background-image: url(images/li2.gif);
|
||||
background-color: #DEECF0 ;
|
||||
background-position: 13px 5px;
|
||||
background-repeat: no-repeat;
|
||||
border-top: 1px solid #EEF5F7;
|
||||
border-bottom: 1px none #EEF5F7;
|
||||
}
|
||||
|
||||
#menu ul li ul li ul li a {
|
||||
background-color: #C2DCE3;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
#menu li li li li a {
|
||||
padding-left: 36px;
|
||||
}
|
||||
|
||||
#menu ul li ul li ul li ul li a {
|
||||
background-color: #A1CEDB;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
#ads {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#ads dt {
|
||||
padding: 0;
|
||||
margin: 6px;
|
||||
border-top: 1px solid #fff;
|
||||
border-bottom: 1px solid #fff;
|
||||
}
|
||||
|
||||
#ads dd {
|
||||
margin: 0;
|
||||
padding: 4px 12px;
|
||||
border-bottom: 1px solid #EEF5F7;
|
||||
font-size: .8em;
|
||||
border-bottom: 1px solid #AACCD5;
|
||||
line-height: 1.2em;
|
||||
}
|
||||
|
||||
#foot {
|
||||
clear: both;
|
||||
padding: 1em;
|
||||
background-color: #fff;
|
||||
background-image: url(images/logo_small.gif);
|
||||
background-repeat: no-repeat;
|
||||
font-size: .8em;
|
||||
line-height: 1.4em;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#top_nav {
|
||||
display: none;
|
||||
padding-left: 185px;
|
||||
background-color: #DEECF0;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
#top_nav ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
border-left: 1px solid #fff;
|
||||
background-image: url(images/tn_bg1.gif);
|
||||
background-position: right top;
|
||||
background-repeat: no-repeat;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
#top_nav li {
|
||||
float: left;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-top: 2px solid #f60;
|
||||
border-right: 1px solid #fff;
|
||||
background-color: #E5F1F3;
|
||||
}
|
||||
|
||||
#top_nav a {
|
||||
display: block;
|
||||
padding: 0 1.3em;
|
||||
line-height: 18px;
|
||||
font-family: Arial;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
#top_nav a:hover {
|
||||
background-color: #f60;
|
||||
color: #fff;
|
||||
}
|
119
doc/site/src/default.template
Normal file
|
@ -0,0 +1,119 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<title>Mongrel: {title: }</title>
|
||||
<link rel="stylesheet" href="{relocatable: default.css}" type="text/css" media=
|
||||
"screen" />
|
||||
<meta http-equiv="Content-Type" content=
|
||||
"text/html; charset=us-ascii" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id="head">
|
||||
<div id="logo">
|
||||
<a href="{relocatable: index.html}" title="Mongrel"><span>Mongrel</span></a>
|
||||
</div>
|
||||
|
||||
<div id="slogan">
|
||||
<span>Faster Is Possible</span>
|
||||
</div>
|
||||
|
||||
<div id="toplinks">
|
||||
<ul>
|
||||
<li id="tl_home"><a href="/" title=
|
||||
"Home"><span>Home</span></a></li>
|
||||
|
||||
<li id="tl_contact"><a href="http://rubyforge.org/project/memberlist.php?group_id=1306" title=
|
||||
"Contact"><span>Contact</span></a></li>
|
||||
|
||||
<li id="tl_sitemap"><a href="{relocatable: sitemap.html}" title=
|
||||
"Site map"><span>Site map</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="body">
|
||||
<div id="visual"></div>
|
||||
|
||||
<div id="content">
|
||||
{content: }
|
||||
</div>
|
||||
|
||||
<div id="news">
|
||||
<h4>NEWS</h4>
|
||||
|
||||
<dl>
|
||||
<dt>2006-03-24</dt>
|
||||
|
||||
<dd>
|
||||
<h5><a href="{relocatable: news.html}">Site now up!</a></h5>
|
||||
|
||||
<p>The new website is up and now running. <a href=
|
||||
"{relocatable: news.html}"><img src="images/li4.gif" alt="more" /><br /></a></p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<hr noshade="noshade" size="1" />
|
||||
|
||||
<div id="threecells">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="side">
|
||||
<div id="menu">
|
||||
{menu: }
|
||||
</div>
|
||||
|
||||
<dl id="ads">
|
||||
<dt><a href="http://rubyforge.org/forum/?group_id=1306"><img src="images/side_p1.gif" alt=
|
||||
"Sad Dog" /><br /></a></dt>
|
||||
|
||||
<dd>
|
||||
<p>Mongrel making you sad? Why not say something?</p>
|
||||
</dd>
|
||||
|
||||
<dt><a href="http://rubyforge.org/tracker/?atid=5145&group_id=1306&func=browse"><img src="images/side_p2.gif" alt="Bugs" /><br /></a></dt>
|
||||
|
||||
<dd>
|
||||
<p>Found a bug? Well then report it already?!</p>
|
||||
</dd>
|
||||
|
||||
<dt><a href="http://rubyforge.org/projects/mongrel/"><img src="images/side_p3.gif" alt=
|
||||
"Tools" /><br /></a></dt>
|
||||
|
||||
<dd>
|
||||
<p>Hit the project page for all sorts of other
|
||||
goodies.</p>
|
||||
</dd>
|
||||
|
||||
<dt>
|
||||
<a href="http://rubyforge.org/project/memberlist.php?group_id=1306" title="Contact"><img src="images/3colls_p1.jpg" /></a><br /></a></dt>
|
||||
|
||||
<dd>
|
||||
<p>Contact project people.</p>
|
||||
</dd>
|
||||
|
||||
<dt><a href="{relocatable: documentation.html}" title="Documentation"><img src="images/3colls_p2.jpg" /></a><br /></a></dt>
|
||||
|
||||
<dd>
|
||||
<p>Documentation galore.</p>
|
||||
</dd>
|
||||
|
||||
<dt><a href="http://rubyforge.org/frs/?group_id=1306" title="Downloads"><img src="images/3colls_p3.jpg" /></a><br /></a></dt>
|
||||
<dd>
|
||||
<p>Grab new gear.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div id="foot">
|
||||
Copyright © 2006 <a href="http://www.zedshaw.com/">Zed A. Shaw</a><br />
|
||||
<a href="{relocatable: attributions.html}">Additional contibutions and openly licensed
|
||||
materials used.</a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
24
doc/site/src/documentation.page
Normal file
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
title: Documentation
|
||||
inMenu: true
|
||||
directoryName: Documentation
|
||||
ordering: 3
|
||||
---
|
||||
|
||||
h1. Available Documentation
|
||||
|
||||
|
||||
h2. RDoc API Documentation
|
||||
|
||||
Check out the "RDoc":/rdoc/index.html documentation to get a look at the
|
||||
API and dig into the source. Since Mongrel is currently being used by
|
||||
other frameworks it's documentation is aimed at developers. Real manuals
|
||||
will be written when there's something for "regular" folks to use.
|
||||
|
||||
|
||||
h2. Frequently Asked Questions
|
||||
|
||||
When people ask questions really frequently the results end up in the
|
||||
"FAQ":faq.html or if they're funny they end up in the "FASQ":fasq.html
|
||||
so everyone can have a laugh.
|
||||
|
39
doc/site/src/faq.page
Normal file
|
@ -0,0 +1,39 @@
|
|||
---
|
||||
title: FAQ
|
||||
inMenu: true
|
||||
directoryName: FAQ
|
||||
ordering: 5
|
||||
---
|
||||
|
||||
h1. FAQ
|
||||
|
||||
|
||||
h2. Design
|
||||
|
||||
h3. Q: How is Mongrel designed?
|
||||
|
||||
The design of Mongrel most closely matches "Simple":http://simpleweb.sourceforge.net/
|
||||
which is very nicely designed web server framework for Java. Despite being written
|
||||
in Java it is very clean and simple, thus the name (clever eh?). The main difference
|
||||
between Mongrel and Simple is that Simple monitors returned output from handlers so that
|
||||
it can modify the results. Mongrel instead uses Ruby's blocks to get the same effect.
|
||||
|
||||
As for the internals of Mongrel there are a few key technologies being used:
|
||||
|
||||
* A custom HTTP 1.1 parser written based on the "RFC":http://www.w3.org/Protocols/rfc2616/rfc2616.html
|
||||
standard and using "an ABNF dump":http://www.cs.columbia.edu/sip/syntax/rfc2068.html thankfully
|
||||
put online by someone. The parser is written using "Ragel":http://www.elude.ca/ragel/ and
|
||||
is written C as a Ruby extension.
|
||||
* A URIClassifier that uses a "Ternary Search Trie":http://www.octavian.org/cs/software.html
|
||||
written by Peter A. Friend and modified to quickly look up handlers for a URI based on
|
||||
a prefix. This makes finding any handler from any URI quick and painless and is much
|
||||
faster than the alternative of parsing the path and using nested Hash structures.
|
||||
* A simple server that uses the parser and URIClassifier to process requests, find the
|
||||
right handlers, and then pass the results on to the handler for processing.
|
||||
* Handlers are responsible for using HttpRequest and HttpResponse objects to do their
|
||||
thing and then return results.
|
||||
|
||||
Other than this there's not much more to it.
|
||||
|
||||
|
||||
|
15
doc/site/src/fasq.page
Normal file
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
title: FASQ
|
||||
inMenu: false
|
||||
directoryName: FASQ
|
||||
---
|
||||
|
||||
h1. Frequently Asked Stupid Questions
|
||||
|
||||
Funny stupid questions people ask in classic "doh!" moments.
|
||||
All questioner's identities are hidden to keep them from going
|
||||
crazy on IRC.
|
||||
|
||||
Who will be the first? :-)
|
||||
|
||||
|
BIN
doc/site/src/images/.xvpics/3930442_6cbcae1335.jpg
Normal file
BIN
doc/site/src/images/.xvpics/3colls_p1.jpg
Normal file
BIN
doc/site/src/images/.xvpics/3colls_p2.jpg
Normal file
BIN
doc/site/src/images/.xvpics/3colls_p3.jpg
Normal file
BIN
doc/site/src/images/.xvpics/6267035_eeec5b0f16.jpg
Normal file
BIN
doc/site/src/images/.xvpics/63325054_12298eb2a3.jpg
Normal file
BIN
doc/site/src/images/.xvpics/79968762_e063fc1317.jpg
Normal file
BIN
doc/site/src/images/.xvpics/85895062_beb6249744.jpg
Normal file
BIN
doc/site/src/images/.xvpics/86461088_9a747a6a5e.jpg
Normal file
BIN
doc/site/src/images/.xvpics/87022458_3981942f0c.jpg
Normal file
BIN
doc/site/src/images/.xvpics/90208926_7d64788f30.jpg
Normal file
BIN
doc/site/src/images/.xvpics/92211824_d01a4ce59c.jpg
Normal file
BIN
doc/site/src/images/.xvpics/98452447_1be256a96c.jpg
Normal file
BIN
doc/site/src/images/.xvpics/side_p1.gif
Normal file
BIN
doc/site/src/images/.xvpics/side_p2.gif
Normal file
BIN
doc/site/src/images/.xvpics/side_p3.gif
Normal file
BIN
doc/site/src/images/3930442_6cbcae1335.jpg
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
doc/site/src/images/3colls_p1.jpg
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
doc/site/src/images/3colls_p2.jpg
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
doc/site/src/images/3colls_p3.jpg
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
doc/site/src/images/6267035_eeec5b0f16.jpg
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
doc/site/src/images/63325054_12298eb2a3.jpg
Normal file
After Width: | Height: | Size: 150 KiB |
BIN
doc/site/src/images/79968762_e063fc1317.jpg
Normal file
After Width: | Height: | Size: 205 KiB |
BIN
doc/site/src/images/85895062_beb6249744.jpg
Normal file
After Width: | Height: | Size: 180 KiB |
BIN
doc/site/src/images/86461088_9a747a6a5e.jpg
Normal file
After Width: | Height: | Size: 134 KiB |
BIN
doc/site/src/images/87022458_3981942f0c.jpg
Normal file
After Width: | Height: | Size: 134 KiB |
BIN
doc/site/src/images/90208926_7d64788f30.jpg
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
doc/site/src/images/92211824_d01a4ce59c.jpg
Normal file
After Width: | Height: | Size: 156 KiB |
BIN
doc/site/src/images/98452447_1be256a96c.jpg
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
doc/site/src/images/li1a-c1.gif
Normal file
After Width: | Height: | Size: 131 B |
BIN
doc/site/src/images/li1a.gif
Normal file
After Width: | Height: | Size: 130 B |
BIN
doc/site/src/images/li1b-c1.gif
Normal file
After Width: | Height: | Size: 122 B |
BIN
doc/site/src/images/li1b.gif
Normal file
After Width: | Height: | Size: 122 B |
BIN
doc/site/src/images/li2-c1.gif
Normal file
After Width: | Height: | Size: 59 B |
BIN
doc/site/src/images/li2.gif
Normal file
After Width: | Height: | Size: 59 B |
BIN
doc/site/src/images/li3-c1.gif
Normal file
After Width: | Height: | Size: 59 B |
BIN
doc/site/src/images/li3.gif
Normal file
After Width: | Height: | Size: 59 B |
BIN
doc/site/src/images/li4.gif
Normal file
After Width: | Height: | Size: 65 B |
BIN
doc/site/src/images/side_p1.gif
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
doc/site/src/images/side_p2.gif
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
doc/site/src/images/side_p3.gif
Normal file
After Width: | Height: | Size: 9.1 KiB |
BIN
doc/site/src/images/spaceball.gif
Normal file
After Width: | Height: | Size: 43 B |
BIN
doc/site/src/images/tl_contact-c1-on.gif
Normal file
After Width: | Height: | Size: 79 B |
BIN
doc/site/src/images/tl_contact-c1.gif
Normal file
After Width: | Height: | Size: 79 B |
BIN
doc/site/src/images/tl_contact-on.gif
Normal file
After Width: | Height: | Size: 79 B |
BIN
doc/site/src/images/tl_contact.gif
Normal file
After Width: | Height: | Size: 79 B |
BIN
doc/site/src/images/tl_home-c1-on.gif
Normal file
After Width: | Height: | Size: 77 B |
BIN
doc/site/src/images/tl_home-c1.gif
Normal file
After Width: | Height: | Size: 77 B |
BIN
doc/site/src/images/tl_home-on.gif
Normal file
After Width: | Height: | Size: 77 B |
BIN
doc/site/src/images/tl_home.gif
Normal file
After Width: | Height: | Size: 77 B |
BIN
doc/site/src/images/tl_sitemap-c1-on.gif
Normal file
After Width: | Height: | Size: 79 B |
BIN
doc/site/src/images/tl_sitemap-c1.gif
Normal file
After Width: | Height: | Size: 79 B |
BIN
doc/site/src/images/tl_sitemap-on.gif
Normal file
After Width: | Height: | Size: 79 B |
BIN
doc/site/src/images/tl_sitemap.gif
Normal file
After Width: | Height: | Size: 79 B |
BIN
doc/site/src/images/tn_bg1.gif
Normal file
After Width: | Height: | Size: 56 B |
BIN
doc/site/src/images/tn_bg2.gif
Normal file
After Width: | Height: | Size: 56 B |
BIN
doc/site/src/images/visual.jpg
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
doc/site/src/images/visual_dog.jpg
Normal file
After Width: | Height: | Size: 112 KiB |
52
doc/site/src/index.page
Normal file
|
@ -0,0 +1,52 @@
|
|||
---
|
||||
title: Home
|
||||
inMenu: false
|
||||
directoryName: Home
|
||||
odering: 1
|
||||
---
|
||||
h1. What is Mongrel?
|
||||
|
||||
Mongrel is a fast HTTP library and server for Ruby that is intended for
|
||||
hosting Ruby web applications of any kind using plain HTTP rather than
|
||||
FastCGI or SCGI. It is framework agnostic and already supports
|
||||
Ruby On Rails, Og+Nitro, and Camping frameworks. By using
|
||||
|
||||
|
||||
h2. Getting Started
|
||||
|
||||
The easiest way to get started with Mongrel is to install it via RubyGems
|
||||
and then run a Ruby on Rails application. You can do this easily:
|
||||
|
||||
$ sudo gem install mongrel
|
||||
$ cd myrailsapp
|
||||
$ mongrel_rails start -d
|
||||
|
||||
Which runs Mongrel in the background. You can stop it with:
|
||||
|
||||
$ mongrel_rails stop
|
||||
|
||||
And you're all set.
|
||||
|
||||
|
||||
h2. Performance
|
||||
|
||||
Mongrel's main competitor is WEBrick and "Tomcat":http://tomcat.apache.org/ but not
|
||||
a full webserver like "Apache":http://httpd.apache.org/ or "lighttpd":http://www.lighttpd.net/
|
||||
for serving static content. Mongrel is designed to run a web application with minimal
|
||||
static content capabilities with the idea that you'll put it behind a webserver that's
|
||||
faster for the static stuff.
|
||||
|
||||
So far Mongrel seems competitive with Tomcat and typically blows the doors off WEBrick.
|
||||
Comparing Mongrel with Tomcat right now is not too fair since Tomcat does a whole lot
|
||||
more, but for serving basic content mongrel does pretty good.
|
||||
|
||||
There will be a more formal performance analysis when Mongrel is more stable.
|
||||
|
||||
|
||||
h2. Documentation
|
||||
|
||||
Check out the "RDoc":/rdoc/index.html documentation to get a look at the
|
||||
API and dig into the source. Since Mongrel is currently being used by
|
||||
other frameworks it's documentation is aimed at developers. Real manuals
|
||||
will be written when there's something for "regular" folks to use.
|
||||
|
17
doc/site/src/news.page
Normal file
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
title: News
|
||||
inMenu: true
|
||||
directoryName: News
|
||||
ordering: 2
|
||||
---
|
||||
|
||||
h1. Latest News
|
||||
|
||||
h2. Feb-12: New site created.
|
||||
|
||||
This is kind of an experiment in seeing what type of site is possible
|
||||
using just Creative Commons licensed content. See the "attributions":attributions.html
|
||||
page for more information.
|
||||
|
||||
|
||||
|
10
doc/site/src/sitemap.page
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
title: Sitemap
|
||||
inMenu: true
|
||||
directoryName: Sitemap
|
||||
ordering: 4
|
||||
---
|
||||
|
||||
h1. Sitemap
|
||||
|
||||
{sitemap: }
|
|
@ -229,7 +229,7 @@ module Mongrel
|
|||
# the socket in the proper order. This lets you intermix header and
|
||||
# body content as needed.
|
||||
def start(status=200)
|
||||
@status = status
|
||||
@status = status.to_i
|
||||
yield @header, @body
|
||||
finished
|
||||
end
|
||||
|
@ -242,7 +242,7 @@ module Mongrel
|
|||
end
|
||||
|
||||
def send_status
|
||||
@socket.write("HTTP/1.1 #{@status} #{HTTP_STATUS_CODES[@status]}\r\nContent-Length: #{@body.length}\r\nConnection: close\r\n")
|
||||
@socket.write("HTTP/1.1 #{@status.to_i} #{HTTP_STATUS_CODES[@status.to_i]}\r\nContent-Length:#{body.length}\r\nConnection: close\r\n")
|
||||
end
|
||||
|
||||
def send_header
|
||||
|
@ -256,7 +256,7 @@ module Mongrel
|
|||
|
||||
# connection: close is also added to ensure that the client does not pipeline.
|
||||
@socket.write(@body.read)
|
||||
end
|
||||
end
|
||||
|
||||
# This takes whatever has been done to header and body and then writes it in the
|
||||
# proper format to make an HTTP/1.1 response.
|
||||
|
|
|
@ -75,8 +75,7 @@
|
|||
# * Martin Chase <stillflame@FaerieMUD.org>
|
||||
# * Michael Granger <ged@FaerieMUD.org>
|
||||
#
|
||||
#:include: COPYRIGHT
|
||||
#
|
||||
# modified temporarily by Zed A. Shaw until license attribution can be given.
|
||||
#---
|
||||
#
|
||||
# Please see the file docs/COPYRIGHT for licensing details.
|
||||
|
|