¿Cuál es la mejor forma de administrar las rutas requeridas en un programa ruby?Ruby path management
Déjenme darles un ejemplo básico, considere una estructura como:
\MyProgram
\MyProgram\src\myclass.rb
\MyProgram\test\mytest.rb
Si en mi prueba yo uso require '../src/myclass'
entonces sólo puedo llamar a la prueba de \MyProgram\test
carpeta, pero yo quiero ser capaz de llamarlo de cualquier camino!
La solución que se me ocurrió es definir en todos los archivos de origen de la línea siguiente:
ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(ROOT)
y luego utilice siempre require "#{ROOT}/src/myclass"
¿Hay una mejor manera de hacerlo?
Mientras que hace que mi columna vertebral cosquilleo, esta es la mejor opción que he visto para hacer esto _inside_ de ruby hasta el momento. – Matt
Es decir, prefiero agregar (no anteponer) la ruta a la ruta de Ruby, ya que no inadvertidamente pisar algo que existe en las bibliotecas de ruby estándar. – Matt
¿No quiso decir 'prefiero preceder (no agregar)' en su lugar? (en otras palabras: ¿realmente no quieres asegurarte de que tus cosas tengan prioridad?) Mi ejemplo original era '$: << newpath' que se agregaba, ahora lo arreglé por 'unshift', como lo hizo la respuesta anterior. Gracias – inger