所以目前我已经在我的.bashrc文件中包含了以下内容。
export RUBYLIB=/home/git/project/app/helpers
我正在尝试使用具有以下规范的规范运行 rspec
require 'output_helper'
此文件位于帮助程序目录中。 我的问题是,当我将导出行更改为:
export RUBYLIB=/home/git/project/
它不再找到帮助程序文件。 我认为 ruby 应该搜索我提供的整个路径,而不仅仅是提供的最外层目录? 这是正确的思考方式吗? 如果没有,我怎样才能使 RUBY 搜索所有子目录及其子目录等?
谢谢
知更鸟
与 PATH
类似,您需要显式命名要在其下查找库的目录。但是,这不包括其中的任何子目录,因此您还需要列出任何子子目录,并用冒号分隔它们。
例如:
export RUBYLIB=/home/git/project:/home/git/project/app/helpers
正如buruzaemon 所提到的,Ruby 不搜索子目录,因此您需要在搜索路径中包含所需的所有目录。 但是,您可能想要做的是:
require 'app/helpers/output_helper'
这样,您就不依赖于以某种方式设置RUBYLIB
环境变量。 当您将代码部署到生产环境或与他人协作时,这些小依赖项可能会导致烦人的调试会话。
此外,作为旁注,您可以将.
指定为搜索路径,而不是使用特定于计算机的绝对路径。