Ruby文件位置并要求它们

时间:2013-11-02 21:12:30

标签: ruby

我想要求:

PROJECT_DIR/lib/shrt.rb

从:

PROJECT_DIR/test/shrt_test.rb

我试过了:

require File.expand_path('.././lib/shrt.rb')
# and
require './lib/shrt.rb'
# and
require_relative '../lib/shrt.rb'

但是它给出了一个错误,指出它无法加载shrt.rblib/文件中所需的文件。在PROJECT_DIR/中,我通过Rake运行了一个Ruby测试文件:

ruby 'test/shrt_test.rb'

知道我做错了什么吗?

2 个答案:

答案 0 :(得分:1)

的作用:

require './lib/shrt.rb'

不行吗?我总是要求项目中的文件。

答案 1 :(得分:0)

我需要按以下方式要求文件:

require './lib/shrt/version'
require './lib/shrt/client'

...在我试图在测试文件中要求的文件中。我使用require_relative '../lib/shrt'要求该文件。

编辑但是现在,当我rake install宝石时,我正在使用Bundler并运行它,我得到`require': cannot load such file -- ./lib/shrt/version (LoadError)

编辑2 通过require_relative文件require而非version解决了问题。