Module Indentation
In: lib/indentation/meta_info.rb

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

GEM_NAME = "indentation"   Required String
VERSION = '0.1.1'   Required String
AUTHORS = ["Sam Dana"]   Optional String or Array of Strings
EMAILS = ["s.dana@prometheuscomputing.com"]   Optional String or Array of Strings
HOMEPAGE = "http://samueldana.github.com/indentation/"   Optional String
SUMMARY = %q{A library of extensions to Ruby's Array and String classes that allow indentation manipulation of Strings and Arrays of Strings.}   Required String
DESCRIPTION = SUMMARY   Optional String
LANGUAGE = :ruby   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 = ['> 1.8.1', '< 1.9.3']   This differs from Runtime version - this specifies the version of the syntax of LANGUAGE
RUNTIME_VERSIONS = { :mri => ['> 1.8.1', '< 1.9.3'], :jruby => ['1.6.4']   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
TYPE = :library   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
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 }
DEPENDENCIES_MRI = { }
DEPENDENCIES_JRUBY = { }
DEVELOPMENT_DEPENDENCIES_RUBY = { }
DEVELOPMENT_DEPENDENCIES_MRI = { }
DEVELOPMENT_DEPENDENCIES_JRUBY = { }
YARD_EXCLUDE = []   An Array of strings that YARD will interpret as regular expressions of files to be excluded.

[Validate]