From: Josh Cheek Date: 2011-06-15T20:37:52+09:00 Subject: Re: Plugin best practices --20cf3071cdae06129704a5be9542 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On Wed, Jun 15, 2011 at 4:36 AM, Intransition wrote: > If your making a plugin/extension for another project, do you create a > hyphenated lib file or do you put the library file in a subdirectory, > e.g. say it's a plugin for rdoc, > > lib/rdoc-foo.rb > > Or > > lib/rdoc/foo.rb > > > According to both of the resources I'd reference, it should be the latter. =3D=3D=3D=3D=3D http://guides.rubygems.org/patterns/#use_dashes_for_extens= ions =3D=3D=3D=3D=3D Adding new functionality to an existing gem? Use a dash. Some examples include net-http-persistent and autotest-growl. Usually this implies that you=92ll have to require into their directory tree as well. For example, `g= em install net-http-persistent` becomes `require 'net/http/persistent'`. =3D=3D=3D=3D=3D http://chneukirchen.github.com/rps/ =3D=3D=3D=3D=3D Project names SHOULD only contain underscores as separators in their names. If a project is an enhancement, plugin, extension, etc. for some other project it SHOULD contain a dash in the name between the original nam= e and the project=92s name. File names and directory structure SHOULD corresp= ond like this: Library: foo-bar Directory: lib/foo/bar Namespace: Foo::Bar Library: foo_bar Directory: lib/foo_bar Namespace: FooBar --20cf3071cdae06129704a5be9542--