module Indentation

must not have the word m-o-d-u-l-e above the next line (so that a Regexp can figure out the m-o-d-u-l-e name)

Constants

AUTHORS

Optional String or Array of Strings

DEPENDENCIES_JRUBY
DEPENDENCIES_MRI
DEPENDENCIES_RUBY

Trying to install this under Ruby 1.8.7 I get:

Error installing MM-0.0.6.gem:
simplecov requires multi_json (~> 1.0.3, runtime)

So I have commented out some dependencies. FIX: these dependency collections need to be specific to a LANGUAGE_VERSION. Maybe RUNTIME_VERSIONS as well.

We also need :simplecov => nil, but only on Ruby > 1.8 }
DESCRIPTION

Optional String

DEVELOPMENT_DEPENDENCIES_JRUBY
DEVELOPMENT_DEPENDENCIES_MRI
DEVELOPMENT_DEPENDENCIES_RUBY
EMAILS

Optional String or Array of Strings

GEM_NAME

Required String

HOMEPAGE

Optional String

LANGUAGE

Required Symbol This specifies the language the project is written in (not including the version, which is in LANGUAGE_VERSION). A project should only have one LANGUAGE (not including, for example DSLs such as templating languages). If a project has more than one language (not including DSLs), it should be split. TEMPORARY EXCEPTION: see :frankenstein choice below. The reason is that mixing up languages in one project complicates packaging, deployment, metrics, directory structure, and many other aspects of development. Choices are currently:

* :ruby (implies packaging as gem - contains ZERO java code)
* :java (implies packaging as jar, ear, war, sar, etc (depending on TYPE) - contains ZERO ruby code, with exception of meta_info.rb)
* :frankenstein (implies packaging as gem - contains BOTH ruby and java code - will probably deprecate this in favor of two separate projects)
LANGUAGE_VERSION

This differs from Runtime version - this specifies the version of the syntax of LANGUAGE

RUNTIME_VERSIONS

This is different from aGem::Specification.platform, which appears to be concerned with OS. This defines which implentation of Ruby, Java, etc can be used. Required Hash, in same format as DEPENDENCIES_RUBY. The version part is used by required_ruby_version Allowable keys depend on LANGUAGE. They are in VALID_<language.upcase>_RUNTIMES

SUMMARY

Required String

TYPE

Required Symbol Choices are currently:

* :library - reusable functionality, not intended to stand alone
* :utility - intended for use on command line
* :web_app - an application that uses a web browser for it's GUI
* :service - listens on some port. May include command line tools to manage the server.
* :gui - has a Swing, Fox, WXwidget, etc GUI
VERSION

Required String

YARD_EXCLUDE

An Array of strings that YARD will interpret as regular expressions of files to be excluded.