Mega Modules

"ALL BASE COMMON"

Introduction

Mega Modules is an open-source collection of classes and modules for the Ruby programming language. The goal of the project is to offer large set of high-quality programming “parts” that target the needs of a variety of applications.

Mega has a great slogan, “ALL BASE COMMON”. The notion is that the more we share in the way of a common foundation, the better that foundation can serve us. There are a number of advantages to this approach.

* Better Code-reuse
* Collaborative Improvements
* Name Consistency
* One-stop Shop and Installation

Status

Initially we have been focusing on very general purpose components. The next phase will begin to incorporate components for more specific use cases.

Please see the RDoc API documention for a list of the available classes and modules.

Installation

The easiest way to install is using the Ruby Gems.

> gem install mega

To manually install simply uncompress the package and run setup.rb. Eg.

> tar -xvzf mega-x.y.z.tbz
> cd mega-x.y.z
> sudo ruby setup.rb

Mega Modules is dependent on Nano Methods. If installing with the Gem, ‘nano’ will be installed automatically. Be sure to install Nano Methods manually is installing via setup.rb. (see nano.rubyforge.org)

Usage

There are two means of using the Mega library. The traditional way is to require the particular class or module needed.

require 'mega/<name>'

The alternative is to use the auto-require mode. By requiring ‘mega’ and calling the Kernal#autorequire_classes method, Calibre will automatically require the appropriate files when you first attempt to use a cooresponding classs or module. Eg.

require 'mega'
autorequire_classes

The auto-requiring also handily applies to many of Ruby’s built-in, but reserved classes and modules.

Please see the API Docs for details pertaining to the functionality of each class or module.

Authorship

This collection was put together by, and much of it written by Thomas Sawyer (aka Trans Onoma). He can be reached via email at transfire at gmail.com.

All said, this package is a collection of work by many persons, but if it matters, the collection per collection is licensed:

Mega Modules
Copyright (c) 2004,2005 Thomas Sawyer
Ruby License

Some of the code is licensed differently according to the original authors license. Thus far they are one of the following: Ruby, GPL, LGPL, MIT or Artistic. Copies of these licenses accompany this document. I am in the proccess of asking the particular authors to consider allowing the use of a common license, namely the Ruby license, so one license can serve for all. (UPDATE: Not very many left under seperate licenses.)

Any code file not specifically labelled shall fall under the Ruby License.

Contributing Authors

This following is a list of persons whose code has been incorporated in whole or in part. Our deepest gratitude for their hard work.

  • Thomas Sawyer

  • Gavin Sinclair

  • Hal Fulton

  • Paul Brannan

  • Florian Gross

  • Florian Frank

  • Renald Buter

  • Daniel J. Berger

  • Michael Granger

  • Michael Neumann

  • Mohammad Khan

  • Derek Lewis

  • Thomas-Ivo Heinen

  • Jan Molic

  • Shashank Date

  • Austin Ziegler

  • Ara T. Howard

  • George Moschovitis

  • Jamis Buck

(Please notify me, if anyone is missing.)

Contributing

If you have any classes or modules that you think have general applicability and would like to see them included in this project, don’t hesitiate to submit. There’s a very good chance it will be included. Also, if you have better versions of the classes and module already included or simply have a patch, they too are more than welcome –we want Mega Modules to be of the highest quality. [NOTE: We are still pre-1.0, so code is more open to potential change.]

Pitch

ALL YOUR BASE ARE BELONG TO RUBY

1

A lot of mental anguish went into finding good titles for Mega Modules and Nano Methods. Of course, in the end only one theme can take the honor. Other good names which were considered: Ruby Warchest w/ Atomix, Ruby Downs & Ace, Ruby Pillbox & Pills (a _why suggestion) and Trix & Atomx. Then the names that almost won out and were used for a good while: Carats & Facets –good names but not quite as “accessible”. Finally let’s not forget even older “working” titles used along the way: teh original Tomslib, then Succ, then ABC and finally Raspberry.

# Copyright ©2005 Thomas Sawyer # –.com : The web page without a name. # (ruby-lang.org) Do you Ruby?