Ruby Standard Library Doc. Status Report

Introduction

The following is a status report on nearly all of the important files in the Ruby standard library. Some are missing and will be added in time.

The priority indicates how important it is to properly document the given file. The status shows whether it has been attempted or not. The score is a mark out of 10 on how complete the documentation is.

If you'd like to help, pick a high-priority open file whose usage you are familiar with and start documenting! Grab the latest version from CVS, add some RDoc comments to it, and submit it to Gavin Sinclair. Several files already have comprehensive RD comments, so the conversion to RDoc is not difficult, just time-consuming. These are the ideal files for a first-timer.

The Report

 
ext/enumerator/enumerator.c Pri: high Stat: done Score: 7
Some methods unclear. Overall example usage would be good.
 
 
ext/etc/etc.c Pri: high Stat: done Score: 8
Add example usage to the module documentation and it's perfect.
 
 
ext/fcntl/fcntl.c Pri: medium Stat: done Score: 10
 
 
ext/iconv/iconv.c Pri: medium Stat: done Score: 7
Mostly done; one or two things to iron out.
 
 
ext/strscan/strscan.c Pri: medium Stat: done Score: 9
One FIXME, and #initialize might be incorrectly documented.
 
 
ext/zlib/zlib.c Pri: high Stat: done Score: 6
Just entered docs from author's RD documentation, improved English and formatting, and added class/module docs. Some undocumented methods and some unclear ones. More examples and general effort needed.
 
 
lib/English.rb Pri: medium Stat: done Score: 10
 
 
lib/abbrev.rb Pri: medium Stat: done Score: 10
 
 
lib/base64.rb Pri: medium Stat: done Score: 9
A couple of methods are unclear in their purpose, which some better documentation could address.
 
 
lib/benchmark.rb Pri: high Stat: done Score: 9.5
Benchmark.benchmark is a bit unclear.
 
 
lib/cgi.rb Pri: high Stat: done Score: 10
 
 
lib/cgi/session.rb Pri: high Stat: done Score: 9
 
 
lib/cgi/session/pstore.rb Pri: high Stat: done Score: 9
 
 
lib/complex.rb Pri: high Stat: done Score: 9
 
 
lib/csv.rb Pri: high Stat: done Score: 7
Looks pretty complete, but poorly formatted.
 
 
lib/date.rb Pri: high Stat: done Score: 7
Awaiting RDoc :def: feature to document dynamic methods.
 
 
lib/date/format.rb Pri: high Stat: open Score: -
I'm not sure what it does, but it's probably pretty important.
 
 
lib/delegate.rb Pri: high Stat: done Score: 9
 
 
lib/drb/acl.rb Pri: medium Stat: open Score: -
 
 
lib/drb/drb.rb Pri: high Stat: done Score: 10
Extremely well documented; but the rest of the drb package remains to be done.
 
 
lib/drb/eq.rb Pri: medium Stat: open Score: -
 
 
lib/drb/extserv.rb Pri: medium Stat: open Score: -
 
 
lib/drb/extservm.rb Pri: medium Stat: open Score: -
 
 
lib/drb/gw.rb Pri: medium Stat: open Score: -
 
 
lib/drb/invokemethod.rb Pri: medium Stat: open Score: -
 
 
lib/drb/observer.rb Pri: medium Stat: open Score: -
 
 
lib/drb/ssl.rb Pri: medium Stat: open Score: -
 
 
lib/drb/timeridconv.rb Pri: medium Stat: open Score: -
 
 
lib/e2mmap.rb Pri: low Stat: open Score: 3
Most of the documentation is there, but it's a weird library, probably only used by other libraries, and therefore a low priority. Not in good RDoc format.
 
 
lib/erb.rb Pri: low Stat: done Score: 9
A few unimportant methods that should perhaps be documented.
 
 
lib/eregex.rb Pri: low Stat: open Score: -
Not a serious file.
 
 
lib/fileutils.rb Pri: high Stat: done Score: 10
 
 
lib/finalize.rb Pri: medium Stat: open Score: 3
Skimpy RDoc comments exist. Need examples, etc.
 
 
lib/find.rb Pri: high Stat: done Score: 10
 
 
lib/forwardable.rb Pri: high Stat: done Score: 9
 
 
lib/ftools.rb Pri: high Stat: done Score: 9
One or two methods are hard to explain. Bad variable choices don't help. But it's done.
 
 
lib/generator.rb Pri: Stat: done Score: 9
Looks fairly well documented. Needs review.
 
 
lib/getoptlong.rb Pri: high Stat: open Score: 3
Skimpy RDoc comments exist. Need examples, etc. Also explain that despite the wide use of getoptlong, optparse is more advanced.
 
 
lib/gserver.rb Pri: medium Stat: done Score: 8
Class-level doco is sufficient to grok this, but method doco would be nice as well.
 
 
lib/ipaddr.rb Pri: medium Stat: done Score: 7
Formatting needs work.
 
 
lib/jcode.rb Pri: medium Stat: open Score: -
File-level comment explaining what it is and does would be nice.
 
 
lib/logger.rb Pri: high Stat: done Score: 10
All done. Could be better in some way, I suppose, but it's an easy library to understand.
 
 
lib/mailread.rb Pri: low Stat: open Score: -
Never heard of it. Looks good for its task, though (reading a whole mbox file is my guess).
 
 
lib/mathn.rb Pri: medium Stat: open Score: -
Not a commonly used/mentioned library, but looks OK. It loads 'complex', 'rational', and 'matrix', and defines some methods for inter-operation.
 
 
lib/matrix.rb Pri: high Stat: done Score: 9
A couple of todos at EOF.
 
 
lib/mkmf.rb Pri: high Stat: open Score: -
Not much of a library, but some usage notes at the file level would be good.
 
 
lib/monitor.rb Pri: medium Stat: done Score: 4
Serious issues remain. Is it superseded by something? (Wishful thinking.)
 
 
lib/mutex_m.rb Pri: medium Stat: open Score: 1
Some file-level documentation exists.
 
 
lib/net/ftp.rb Pri: high Stat: done Score: 9
A few things to tidy up.
 
 
lib/net/http.rb Pri: high Stat: done Score: 9
Some formatting errors.
 
 
lib/net/imap.rb Pri: high Stat: done Score: 10
 
 
lib/net/pop.rb Pri: high Stat: done Score: 10
 
 
lib/net/smtp.rb Pri: high Stat: done Score: 10
 
 
lib/net/telnet.rb Pri: high Stat: done Score: 10
 
 
lib/observer.rb Pri: high Stat: done Score: 9
Put examples etc. at class level, not file level.
 
 
lib/open-uri.rb Pri: high Stat: open Score: 6
Good examples, but some cleanup to be done.
 
 
lib/open3.rb Pri: high Stat: open Score: -
Not much work to do here.
 
 
lib/optparse.rb Pri: high Stat: done Score: 7
Good documentation of OptionParser *class*, not of methods. The latter is not really needed, as the usage example tells you all you need to know. Still, should finish it off at some stage.
 
 
lib/ostruct.rb Pri: high Stat: done Score: 10
 
 
lib/parsedate.rb Pri: high Stat: open Score: -
Easy.
 
 
lib/pathname.rb Pri: medium Stat: done Score: 10
All done. Many methods merely say "See FileTest.xyz", but that doesn't matter.
 
 
lib/ping.rb Pri: medium Stat: open Score: 9
Just some rearranging here and you're done.
 
 
lib/pp.rb Pri: medium Stat: open Score: -
Thoroughly commented in RD.
 
 
lib/prettyprint.rb Pri: low Stat: open Score: -
I doubt it's of use to many users; it's used by 'pp'.
 
 
lib/pstore.rb Pri: high Stat: open Score: 9
 
 
lib/racc/parser.rb Pri: low Stat: open Score: -
I don't really know what this is, and it looks tough.
 
 
lib/rational.rb Pri: high Stat: done Score: 9
 
 
lib/rdoc/* Pri: medium Stat: open Score: -
Not really relevant to your average stdlib user (certainly not the internals), but we should document the programmatic interface.
 
 
lib/readbytes.rb Pri: low Stat: open Score: -
Easy.
 
 
lib/resolv-replace.rb Pri: medium Stat: open Score: -
Easy.
 
 
lib/resolv.rb Pri: high Stat: open Score: -
Difficult, though RDed already.
 
 
lib/rinda/rinda.rb Pri: medium Stat: open Score: 5
Methods are documented in two of three classes. Introduction required.
 
 
lib/rinda/ring.rb Pri: medium Stat: open Score: -
 
 
lib/rinda/tuplespace.rb Pri: medium Stat: open Score: 5
Methods are documented in two of three classes. Introduction required.
 
 
lib/rss/* Pri: high Stat: open Score: 1
Nothing more than a link to a tutorial at the moment.
 
 
lib/scanf.rb Pri: high Stat: open Score: -
Thoroughly RDed.
 
 
lib/set.rb Pri: high Stat: done Score: 10
 
 
lib/shell.rb Pri: medium Stat: open Score: -
Nothing there at the moment.
 
 
lib/shellwords.rb Pri: low Stat: done Score: 9
 
 
lib/singleton.rb Pri: high Stat: open Score: 7
Pretty easy.
 
 
lib/soap/* Pri: Stat: open Score: -
 
 
lib/sync.rb Pri: medium Stat: open Score: -
Looks difficult.
 
 
lib/tempfile.rb Pri: high Stat: open Score: 7
Some improvements to be made.
 
 
lib/test/unit.rb Pri: Stat: done Score: 10
 
 
lib/test/unit/* Pri: Stat: open Score: -
Must review which files need to be documented.
 
 
lib/thread.rb Pri: high Stat: done Score: 7
First pass; issues remain.
 
 
lib/thwait.rb Pri: medium Stat: done Score: 9
Need to ensure correctness.
 
 
lib/time.rb Pri: high Stat: done Score: 10
 
 
lib/timeout.rb Pri: high Stat: open Score: -
Easy.
 
 
lib/tmpdir.rb Pri: medium Stat: open Score: -
Pretty easy.
 
 
lib/tracer.rb Pri: low Stat: open Score: -
 
 
lib/tsort.rb Pri: medium Stat: done Score: 8
Lyle did a good job; just need to check consistency.
 
 
lib/un.rb Pri: medium Stat: open Score: -
Pretty easy.
 
 
lib/uri.rb Pri: medium Stat: done Score: 8
Some improvements possible: background, roadmap, examples; reduce some of the formalism (not all); some English and formatting corrections.
 
 
lib/uri/common.rb Pri: medium Stat: done Score: 8
See lib/uri.rb.
 
 
lib/uri/ftp.rb Pri: medium Stat: done Score: 8
See lib/uri.rb.
 
 
lib/uri/generic.rb Pri: medium Stat: done Score: 8
See lib/uri.rb.
 
 
lib/uri/http.rb Pri: medium Stat: done Score: 8
See lib/uri.rb.
 
 
lib/uri/https.rb Pri: medium Stat: done Score: 8
See lib/uri.rb.
 
 
lib/uri/ldap.rb Pri: medium Stat: done Score: 8
See lib/uri.rb.
 
 
lib/uri/mailto.rb Pri: medium Stat: done Score: 8
See lib/uri.rb.
 
 
lib/weakref.rb Pri: high Stat: open Score: -
Usage example is there.
 
 
lib/webrick.rb Pri: high Stat: open Score: -
 
 
lib/webrick/* Pri: Stat: open Score: -
 
 
lib/wsdl/* Pri: high Stat: open Score: -
 
 
lib/xmlrpc/* Pri: high Stat: done Score: 6
Only a link to the project ('xmlrpc4r') website, which contains full documentation.
 
 
lib/xsd/* Pri: high Stat: open Score: -
 
 
lib/yaml.rb Pri: high Stat: open Score: -
Should thoroughly document the YAML module.
 
 
lib/yaml/* Pri: Stat: open Score: -