sé que puedo exigir a todos los ficheros de un directorio utilizando¿Cómo se requieren todos los archivos en un directorio, en una joya?
Dir['path/to/files/**/*.rb'].each { |file| require file }
Sin embargo, yo estoy tratando de hacer que un archivo de instalación de la gema, así:
class MyGem
module NS; end
end
Dir['lib/my_gem/files/**/*.rb'].each { |file| require file }
(donde todo el los archivos en lib/my_gem/files
son espacios de nombre en MyGem :: NS). Con una estructura de directorios que tiene este aspecto:
lib
|-- my_gem
| |-- files
| | |-- file1.rb
| | |-- file2.rb
| | |-- file3.rb
| | `-- ... (many more)
`-- my_gem.rb
my_gem.gemspec
Y, bueno, no parece el comando Dir
a trabajar cuando requiero mi joya en otro archivo, ya que parece que buscar las rutas de archivos en tiempo de ejecución en mi raíz de proyecto (de cualquier proyecto que haya requerido mi gema).
¿Cómo puedo solicitar todos los archivos en lib/my_gem/files
en lib/my_gem.rb
?
+1 ¡Justo lo que estaba buscando! – neezer
Esto encuentra todos los archivos rb y no solo los principales, como con cada gema debes tener una sola declaración de requerimiento para incluir esa gema en la aplicación, no necesitas requerir todos los archivos uno por uno, sino uno solo –