проблема пути при использовании 'require' и символических ссылок - PullRequest
2 голосов
/ 27 февраля 2011

У меня есть следующие скрипты:

  • "/ folderA / bin / command.rb", которая вызывает require 'some_library'
  • "/ folderA / Библиотека / some_library.rb"
  • "~ / scripts / command.rb", который является символической ссылкой на "/folderA/bin/command.rb"

Когда я запускаю ruby ~/scripts/command.rb (вызывая символическую ссылку), он работает нормально, но из-за символической ссылки __FILE__ означает "~ / scripts", а не "/ folderA / bin /". Моя лучшая идея для решения этой проблемы пути заключается в следующем:

$:.push File.dirname(Pathname.new(__FILE__).realpath) + '/../lib'

Это решение выглядит очень грязным. Есть ли лучший способ организовать это?

1 Ответ

0 голосов
/ 27 февраля 2011

я бы предложил создать автономный гем из / folderA и затем использовать нужный вам код в ~ / scripts из гема (т.е. требуется 'folderA')

надеюсь, что это поможет найти более чистое решение.

...