If you went to the first round of RubyConf lightning talks you saw me
say this already, but I got enough applause that this needs wider
dissemination.
Here is my STRONG recommendation on how to name gems:
== Use underscores
- fancy_require
- newrelic_rpm
- ruby_parser
This matches the file the user will require and makes it easier for the
user to start using your gem. gem install my_gem will be loaded by
require ‘my_gem’.
== Use dashes for extensions
- net-http-persistent
- rdoc-chm
- autotest-growl
If you’re adding functionality to another gem use a dash. The dash is
different-enough from an underscore to be noticeable. If you tilt the
dash a bit it becomes a slash as well, making it easier for the user to
know what to require. gem install net-http-persistent becomesrequire
‘net/http/persistent’
== Don’t use UPPERCASE letters
OS X and Windows have case-insensitive filesystems by default. Users may
mistakenly require files from a gem using uppercase letters which will
be non-portable if they move it to a non-windows or OS X system. While
this will mostly be a newbie mistake we don’t need to be confusing them
more than necessary.
If you would like to pass this around outside the list I’ve got this on
my blog as well:
Short: http://bit.ly/gem_names
Long: http://blog.segment7.net/articles/2010/11/15/how-to-name-gems