E
Eric Hodel
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:
=3D=3D 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'.
=3D=3D 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'
=3D=3D 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=
say this already, but I got enough applause that this needs wider =
dissemination.
Here is my STRONG recommendation on how to name gems:
=3D=3D 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'.
=3D=3D 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'
=3D=3D 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=