Creo que es bastante acertado. Por defecto, Rubygems agregará el directorio lib a la ruta de carga, pero puede insertar cualquier directorio al que quiera utilizando la variable $ :. es decir,
$:.push File.expand_path(File.dirname(__FILE__) + '/../surfcompstuff')
Eso significa que cuando haya decir, surfer.rb
en ese directorio, puede require "surfer"
en cualquier lugar y el archivo será encontrado.
Además, como una convención, las clases y los singletons obtienen un archivo y los módulos obtienen un directorio. Por ejemplo, si usted tenía el módulo LolCatz
y la clase LolCatz::Moar
que se vería así:
lib/
appname.rb
lolcatz/
moar.rb
Es por eso que hay una carpeta lib/nombreaplic porque la mayoría de las bibliotecas se encuentran en el espacio de nombres appname
.
Además, si intenta ejecutar el comando newgem --simple [projectname]
que generará rápidamente un andamio para usted con los elementos esenciales para un proyecto de Ruby (y por extensión, una gema de Ruby). Hay otras herramientas que hacen esto, lo sé, pero newgem es bastante común. Por lo general, me deshago del archivo TODO y todas las cosas del script.
Tenga en cuenta que tendrá que joya [sudo] instalar newgem para obtener el comando newgem ... –
dulce. No sabía sobre newgem. Mis proyectos sin rieles a menudo han reflejado la estructura de Rails porque la he encontrado familiar. Gracias por este consejo de mejores prácticas. –
Otro archivo importante podría ser "LICENCIA" – bluehavana