From: Eric Hodel Date: 2010-11-16T07:19:58+09:00 Subject: How to Name Gems - A STRONG Recommendation 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