2013-04-10 75 views
0

我有一個我寫過的gem,它有一些處理程序,每個處理程序在gem中都有自己的ruby文件。我需要添加在命令行中指定文件的功能,該文件將以與其他處理程序相同的方式加載。該文件通常不在寶石的默認加載路徑中。需要在Ruby的加載路徑之外的文件

我不確定最好的方法來做到這一點。我可以取文件名,然後將包含的目錄添加到加載路徑,然後加載文件。我可以讓用戶指定一個包含處理程序的目錄,而不是指定文件,或者我確定有一個更好的方法可以做到,但我還沒有想到。

+0

你能提供一個例子文件樹? – 2013-04-11 01:31:35

+0

爲什麼不直接指定完整路徑加載(「/ path/to/some/directory」)。這將開始在安裝ruby的驅動器的根目錄。我一直使用它來加載irb中的自定義腳本。 – engineersmnky 2013-04-11 18:25:13

+0

@ChrisHeald:這裏的目錄樹不相關。 gem中的文件是標準格式,但問題是從gem外部加載文件,該文件可以位於用戶指定的任何位置。 – Jericon 2013-04-11 20:01:42

回答

0

此使用require_relative和擴大使用Dir.pwd文件路徑是固定的:

req_path = File.expand_path(arg, Dir.pwd) 
require_relative req_path 
+0

這在一定程度上起作用。它與ruby 1.8不兼容。* – Jericon 2013-04-26 22:14:24