[Nitro] RDog ping
james.britt at gmail.com
Wed Jun 21 14:52:21 EDT 2006
Andrew Thompson wrote:
> On Wed, Jun 21, 2006 at 07:55:09AM -0700, James Britt wrote:
>>>I like the sound of this Rue project. Is it a complete RDoc
>>>replacement, or does it just mod Roc?
>>It uses the built-in rdoc to drive the Rue template. Normally (I think)
>>the output is a set of HTML pages that use AJAX to fetch and render the
>>API content. Not sure where the YAML is created (perhaps it feeds the
>>sever for delivering content; I've only poked around, not properly run it).
>>But it does include an rdoc template that generates the YAML (again,
>>driven by the built-in rdoc that Dave Thomas wrote).
> Rdoc allows you to write new 'generators', it ships with 3; the xml the
> html and the ri ones, anyone can develop more but it's a real pain in
> the ass to do so.
Rue is a template; if I run
rdoc --template 'rue' -1
I get (usually) a slew of data/*.txt files and an HTML page or so that
will use Ajax to render those data files.
If I run
rdoc --template 'rue-yaml' -1 > my-data.yml
I get a big YAML file.
But Rue also includes rdoc-hacks.rb, which mods the default rdoc
behavior (which may be a simpler approach than writing a generator from
The YAML emitted by Rue looks much much nicer than the default ri/rdoc
YAML, which embeds object types into the text. The Rue YAML is simply
structure tagged text; you can play with a hash of arrays of hashes (r
arrays ...) and reorganize it as you like.
You can grab Rue here (an unofficial download spot; the actual Ruedoc
project seems to have withered away):
One thought was to load in the YAML and hold a custom API data-model in
memory, unnormalized and optimized for searching and commenting.
(Though I wonder if Madeleine might be a fit as well).
And, as with Madeleine, have it back itself up with periodic snapshots,
using Og + Kirbybase or Sqlite.
If the memory footprint isn't too great, it might work as a standalone,
desktop Ruby API server, faster than ri (which is parsing YAML off disk
on every query), with options to add your own notes and comments.
Bundle it up with Nitro+Mongrel, some nice AJAX calls, or whatever.
"In Ruby, no one cares who your parents were, all they care
about is if you know what you are talking about."
- Logan Capaldo
More information about the Nitro-general