Путь к окружающей среде RUBYLIB - PullRequest
2 голосов
/ 13 мая 2011

Итак, в настоящее время я включил в свой файл .bashrc следующее.

export RUBYLIB=/home/git/project/app/helpers

Я пытаюсь запустить rspec со спецификацией, которая имеет

require 'output_helper'

Этот файл находится в каталоге помощников. Мой вопрос заключается в том, что когда я меняю строку экспорта на:

export RUBYLIB=/home/git/project/

Больше не находит вспомогательный файл. Я думал, что ruby ​​должен искать весь путь, который я предоставляю, а не только самый внешний каталог? Это правильный способ думать об этом? А если нет, то как я могу сделать так, чтобы RUBY просматривал все подкаталоги, их подкаталоги и т. Д.?

Спасибо

Robin

Ответы [ 2 ]

5 голосов
/ 13 мая 2011

Как упоминает buruzaemon, Ruby не выполняет поиск в подкаталогах, поэтому вам необходимо включить все нужные вам каталоги в свой путь поиска.Однако то, что вы, вероятно, захотите сделать:

require 'app/helpers/output_helper'

Таким образом, вы не зависите от переменной окружения RUBYLIB, установленной определенным образом.При развертывании кода в рабочей среде или совместной работе с другими эти небольшие зависимости могут раздражать сеансы отладки.

Также в качестве дополнительного примечания можно указать . в качестве пути поиска, а не использоватьмашинные абсолютные пути.

5 голосов
/ 13 мая 2011

Подобно PATH, вам нужно явно указать каталог, в котором нужно искать библиотеки. Однако это не будет включать дочерние каталоги внутри, поэтому вам также нужно будет перечислить все дочерние каталоги, разделив их двоеточием.

Например:

export RUBYLIB=/home/git/project:/home/git/project/app/helpers
...