2013-11-02 63 views
0

我試圖要求:紅寶石文件的位置,並要求他們

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' 

但是它給了我一個錯誤,說明它不能加載lib/shrt.rb文件中所需的文件。在PROJECT_DIR/,我通過耙跑了Ruby的測試文件:

ruby 'test/shrt_test.rb' 

任何想法,我在做什麼錯誤?

回答

0

我需要需要通過以下方式中的文件:

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

...在文件中我試圖要求在測試文件。我需要使用require_relative '../lib/shrt'這個文件。

編輯但是現在,當我rake install寶石,我使用的捆紮機,並運行它,我得到`require': cannot load such file -- ./lib/shrt/version (LoadError)

EDIT 2version文件通過require_relative,而不是隻require解決了這一問題。

1

請問:

require './lib/shrt.rb' 

不工作?我一直以這種方式需要項目中的文件。

+2

擴展是沒有必要的。 Ruby會自動添加它。 –

+0

好的。我更關心的是分享這條路,而不太關心那裏的延伸。 :) – chaseadamsio

+0

不,當我將該代碼放入測試文件並通過Rake運行時,出現此錯誤「無法加載此類文件 - ./shrt/version(LoadError)'。 '我想在'lib/shrt.rb'中要求的文件中需要'version.rb'文件。 – raf