diff options
Diffstat (limited to 'doc/site/src')
-rw-r--r-- | doc/site/src/default.template | 14 | ||||
-rw-r--r-- | doc/site/src/docs/gem_plugin.page | 51 | ||||
-rw-r--r-- | doc/site/src/faq.page | 2 | ||||
-rw-r--r-- | doc/site/src/images/config_tool_snap.png | bin | 0 -> 38023 bytes | |||
-rw-r--r-- | doc/site/src/news.page | 51 |
5 files changed, 117 insertions, 1 deletions
diff --git a/doc/site/src/default.template b/doc/site/src/default.template index 37fbbce..9ce3f06 100644 --- a/doc/site/src/default.template +++ b/doc/site/src/default.template @@ -46,6 +46,20 @@ <h4>NEWS</h4> <dl> + <dt>Mar-12-2006</dt> + <dd> + <h5><a href="{relocatable: news.html}">Mongrel 0.3.10 -- Big Release Day</a></h5> + + <p>I normally do lots of little releases rather than large big ones, but this + release involved lots of little touches all over the entire code base. It + now has a ton of features and should have the best Rails support yet. It's + even got <b>GemPlugins</b> to a leve that anyone can use it. Read the + news for the full scoop. + </p> + <a href="http://rubyforge.org/frs/?group_id=1306" title="Downloads">Download</a> + <a href="{relocatable: news.html}"><img src="{relocatable: images/li4.gif}" alt="more" /><br /></a></p> + </dd> + <dt>Mar-06-2006</dt> <dd> <h5><a href="{relocatable: news.html}">Mongrel 0.3.9 -- Gem Based Plugins</a></h5> diff --git a/doc/site/src/docs/gem_plugin.page b/doc/site/src/docs/gem_plugin.page index 346f7b7..40586bf 100644 --- a/doc/site/src/docs/gem_plugin.page +++ b/doc/site/src/docs/gem_plugin.page @@ -17,6 +17,57 @@ new commands. such as "mongrel_rails dostuff". Handlers and Filters are on their way. +h2. Why Plugins for Mongrel? + +If you've ever used other systems that have plugins you'll find there are +several painful parts to writing your own plugin: + +* You don't have their developer tools so it takes forever to get started. +* You don't know how to structure the project or even where to start. +* Once you get it built you have to figure out how to register and install it. +* When you want to update it you have to somehow get the update out to users. +* You have to manage dependencies between your plugin and other plugins. +* Including and using your own resources (images, html files, etc.) or config files + is really painful. Not sure why this is but it's really annoying. + +Most people solve many of the problems by the "sourdough method". They +take a plugin that currently works, copy it, and base their plugin +on the prototype. This works great until you want to do something +original or until you find out the original author did something wrong. + +GemPlugin solves this problem by relying on the regular RubyGems +package management system to give you: + +* A simple way to package, distribute, manage, and update your Mongrel plugins. +* Dynamic loading based on the gem dependencies and not on specific configurations. +* Segregated extensions for Mongrel in case you want a different license than LGPL. +* All the capabilities of RubyGems. GemPlugin doesn't mess with them at all. +* A little generator that starts your project off right similar to how Rails generators work. +* The ability to package resources (images, configs, etc.) with your gem and then load them + dynamically no matter where the gem eventually gets installed. + +In the end GemPlugins are just RubyGems that get loaded a special way +so they are activated right away. The only extra thing is a bit of +"magic" that puts plugins into a nice little namespace outside of +the usual Ruby module and class hierarchy. + +The advantage for Mongrel is that people can write their own +plugins and distribute them easily without anything more complex +than what all Ruby developers already have: RubyGems. + +h2. How They Work + +Mongrel plugins (a.k.a. GemPlugins) are really very simple. Basically +when you use the GemPlugin API you tell it what kind of dependencies +will trigger a gem to be loaded. GemPlugin then goes through all of +the installed gems and loads any that meet the dependency description. +Then your plugin just registers itself in the right "plugin category" +and everything starts working. The user of your plugin won't have to +do too much unless you want to give them additional configuration. + +The best way to understand this is to actually build a plugin +and watch it work. + h2. Your First Plugin diff --git a/doc/site/src/faq.page b/doc/site/src/faq.page index 1c55d50..9bcab42 100644 --- a/doc/site/src/faq.page +++ b/doc/site/src/faq.page @@ -83,7 +83,7 @@ h3. Q: How did you make this site? The site was actually incredibly easy to create. I simply went to "OSWD":http://openwebdesign.org/ and found a design that fit what I wanted for the site. I then went to "Flickr":http://flickr.com/ and found pictures of various animals that were licensed under the -"Creative Commons":http://openwebdesign.org/ license. Once I chopped the images up, worked them +"Creative Commons":http://creativecommons.org/ license. Once I chopped the images up, worked them into the design structure, and wrote an initial set of content I was done. The tool I use to generate the site is called "webgen":http://webgen.rubyforge.org/ which diff --git a/doc/site/src/images/config_tool_snap.png b/doc/site/src/images/config_tool_snap.png Binary files differnew file mode 100644 index 0000000..05e1b14 --- /dev/null +++ b/doc/site/src/images/config_tool_snap.png diff --git a/doc/site/src/news.page b/doc/site/src/news.page index a95a426..caee7ac 100644 --- a/doc/site/src/news.page +++ b/doc/site/src/news.page @@ -7,6 +7,57 @@ ordering: 2 h1. Latest News +h2. Mar-12: Mongrel 0.3.10 -- Big Release Day + +This release is a bigger release than those in the +past but it was necessary as it touched many little +parts of the code base and includes a more complete +GemPlugin functionality. This release features the +following changes: + +* GemPlugin now supports including and easily finding resources and config files + you package with your gems. +* GemPlugin loading doesn't use any deprecated RubyGems APIs. +* GemPlugin comes with a generator called *gpgen* that will make it easy to start off + a plugin project. +* A complete document on "Writing A Mongrel Plugin":/docs/gem_plugin.html that + also explains how they work. +* The "Mongrel Config Tool":/images/config_tool_snap.png that demonstrates + building a useful command for controlling a Mongrel server. +** It uses a "Camping":http://camping.rubyforge.org/ to present an interface. +** Demonstrates combining Camping handlers with Mongrel handlers. +** Shows how to use the new GemPlugin resources API to include ERB templates, images, + and CSS stylesheets which are loaded out of the gem (no external install needed). +* Restructuring of the project source a bit to support testing all the + default plugins and to make building much easier. +* Properly loads any gems that depend on Rails (including GemPlugins) until the + very last minute after Rails is loaded and configured. +* A slight hack courtesy of Sean Treadway which jacks up the default server + listen queue from 5 to 1024. This should work on all platforms where + available and should improve concurrency for everyone. +* A more complete and useful Camping postamble that makes it the same size + as the WEBrick one. Also makes sure that Camping handlers and Mongrel + handlers can live in peace together. + +There's also a bunch of bug fixes: + +* Should work well with edge rails now and tries to be very nice. +* It holds of Rails configuration until the absolute latest time to + avoid having the daemonize call from closing log files Rails opens. +* Tweaks to the API docs in various places and cleaned out dead code. +* Lots of fixes to the build. If you get the source and are on Unix + you can just do "rake install" to install the whole thing via gems. + +This release has been tested on Linux, OSX, and FreeBSD with only +light testing on Win32. I'll be making the 0.3.11 release Win32 +specific so that the config tool can be useful for those folks too. + +Otherwise this is a large release so please grab it and test like +mad. + +"Download 0.3.10":http://rubyforge.org/frs/?group_id=1306 + + h2. Mar-06: Mongrel 0.3.9 -- Gem Based Plugins This release features the beginning of a plugin system based |