RUBYLIB环境路径

时间:2011-05-13 16:58:44

标签: ruby rspec environment-variables ubuntu-10.10

所以目前我已将以下内容包含在我的.bashrc文件中。

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

我正在尝试使用具有

的规范运行rspec
require 'output_helper'

此文件位于helpers目录中。我的问题是,当我将导出行更改为:

export RUBYLIB=/home/git/project/

它不再找到帮助文件。我认为ruby应该搜索我提供的整个路径,而不仅仅是提供的最外层目录?这是考虑它的正确方法吗?如果没有,我怎么能这样做RUBY将搜索所有子目录及其子目录等?

谢谢,

罗宾

2 个答案:

答案 0 :(得分:5)

PATH类似,您需要明确指定要在其下查找库的目录。但是,这不包括任何子目录,因此您还需要列出任何子子目录,并用冒号分隔它们。

例如:

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

答案 1 :(得分:5)

正如buruzaemon所提到的,Ruby不会搜索子目录,因此您需要在搜索路径中包含所需的所有目录。但是,您可能想要做的是:

require 'app/helpers/output_helper'

这样,您不依赖于以某种方式设置的RUBYLIB环境变量。当您将代码部署到生产环境或与其他人协作时,这些小依赖关系可能会导致烦人的调试会话。

另外,作为旁注,您可以将.指定为搜索路径,而不是使用机器特定的绝对路径。