2011-05-13 129 views
2

所以目前我已经在我的.bashrc文件中包含以下内容。RUBYLIB环境路径

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

我试图与具有

require 'output_helper' 

此文件中的规范运行RSpec的是在佣工目录。我的问题是,当我将出口行更改为:

export RUBYLIB=/home/git/project/ 

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

感谢,

罗宾

回答

5

由于buruzaemon提到,Ruby没有搜索子目录,所以你需要包括所有你在你的搜索路径想要的目录。不过,你可能想要做的是:

require 'app/helpers/output_helper' 

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

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

4

类似PATH,你需要明确命名要在其中寻找库的目录。但是,这不会包含任何子目录,因此您还需要列出任何子子目录,并用冒号分隔它们。

例如:

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