Tengo una extensión Buildr que estoy empaquetando como una gema. Tengo una colección de scripts que quiero agregar a un paquete. Actualmente, tengo estos scripts almacenados como un gran bloque de texto que estoy escribiendo para archivar. Preferiría tener archivos individuales que pueda copiar directamente o leer/escribir de nuevo. Me gustaría que estos archivos se empaquetaran en la gema. No tengo problemas para empaquetarlos (solo los coloco en el sistema de archivos antes del rake install
) pero no puedo entender cómo acceder a ellos. ¿Hay algún tipo de paquete de Gem Resources?Acceso a los archivos empaquetados en una gema Ruby
8
A
Respuesta
16
Hay básicamente dos maneras,
1) Puede cargar recursos en relación con un archivo de rubí en su joya utilizando __FILE__
:
def path_to_resources
File.join(File.dirname(File.expand_path(__FILE__)), '../path/to/resources')
end
2) puede añadir rutas arbitrarias de su joya a la $LOAD_PATH
variable y luego caminar el $LOAD_PATH
para encontrar recursos, por ejemplo,
Gem::Specification.new do |spec|
spec.name = 'the-name-of-your-gem'
spec.version ='0.0.1'
# this is important - it specifies which files to include in the gem.
spec.files = Dir.glob("lib/**/*") + %w{History.txt Manifest.txt} +
Dir.glob("path/to/resources/**/*")
# If you have resources in other directories than 'lib'
spec.require_paths << 'path/to/resources'
# optional, but useful to your users
spec.summary = "A more longwinded description of your gem"
spec.author = 'Your Name'
spec.email = '[email protected]'
spec.homepage = 'http://www.yourpage.com'
# you did document with RDoc, right?
spec.has_rdoc = true
# if you have any dependencies on other gems, list them thusly
spec.add_dependency('hpricot')
spec.add_dependency('log4r', '>= 1.0.5')
end
y luego,
$LOAD_PATH.each { |dir| ... look for resources relative to dir ... }
Cuestiones relacionadas
- 1. Ruby: ¿Cómo escribir una gema?
- 2. Cómo modificar una gema Ruby
- 3. ¿Qué es una gema Ruby?
- 4. ¿Cómo comparo los valores empaquetados en Perl?
- 5. gema matemática Ruby
- 6. ¿Cómo ejecuto una gema de Ruby?
- 7. ¿Cómo acceder a la versión de una gema desde Ruby?
- 8. Cómo llamar dinámicamente a los métodos de acceso en Ruby
- 9. Ruby gema listada, pero no se cargará (gema en dir de usuario, no ruby dir)
- 10. El acceso a los archivos .config en Roslyn REPL
- 11. Instalación de gema bcrypt-ruby en Windows
- 12. Ruby: lista de correo biblioteca o gema
- 13. ¿Cómo cambiar los permisos de acceso a archivos en linux?
- 14. Ruby, Rails: gema mysql2, ¿alguien usa esta gema? ¿Es estable?
- 15. ¿Cómo incluir archivos de datos en una Ruby Gem?
- 16. Ruby on Rails: ¿Eliminar una dependencia al instalar una gema?
- 17. ¿Cuáles son los buenos usos de los módulos empaquetados OCaml?
- 18. Ruby LESS equivalente de gema en Python
- 19. ¿Cómo hacer referencia a los archivos fuente de la imagen que vienen empaquetados con mi aplicación de estilo metro?
- 20. Acceso a varios archivos en VIM
- 21. Acceder a las variables de los archivos incluidos en Ruby
- 22. Viendo el código fuente de una gema
- 23. Acceso a archivos de fuentes en PDF
- 24. Aplicación Sinatra en una gema
- 25. Acceso a archivos grandes En C
- 26. Impedir el acceso a archivos en una carpeta determinada
- 27. simultánea de acceso a archivos
- 28. ¿Cómo incluir un controlador con una gema Ruby on Rails?
- 29. Muestra de volteo en flotadores SSE empaquetados
- 30. Uso de .htaccess para restringir el acceso a los archivos
Primero funcionó como un amuleto. :) – Drew
Utilice Gem.data_dir para encontrar la ruta correcta. – ch2500