Каков наилучший способ управления требуемыми путями в рубиновой программе?Управление путями Ruby
Позвольте мне привести простой пример, рассмотрим структуру типа:
\MyProgram
\MyProgram\src\myclass.rb
\MyProgram\test\mytest.rb
Если в моем тесте я использую require '../src/myclass'
то я могу назвать только тест из \MyProgram\test
папки, но я хочу, чтобы быть в состоянии назвать его с любого пути!
Решение, которое я придумал, чтобы определить, во всех исходных файлах следующей строки:
ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(ROOT)
и затем всегда использовать require "#{ROOT}/src/myclass"
Есть ли лучший способ сделать это?
Хотя это делает мой позвоночник покалывание, это лучший вариант, я видел для этого _inside_ рубина до сих пор. – Matt
То есть, я предпочитаю добавлять (не дописывать) путь к пути ruby, так как вы случайно не топаете над тем, что существует в стандартных библиотеках ruby. – Matt
Разве вы не имели в виду «Предпочитаю вместо этого добавлять (вместо добавления)»? (другими словами: разве вы не хотите, чтобы ваши вещи имели приоритет?) Мой первоначальный пример был «$: << newpath», который был добавлен, теперь он исправлен «unshift», как это сделал предыдущий ответ. Спасибо – inger