说我的宝石是 VideoPlayer 。文件夹结构是:
VideoPlayer/
/bin
vidplay.rb
/lib
VideoPlayer.rb
Subtitler.rb
Screenshotter.rb
我希望人们从命令行调用vidplay
,并让vidplay
引用VideoPlayer
,Subtitler
和Screenshotter
文件中的代码。< / p>
如果我只是在vidplay.rb
,require '../lib/VideoPlayer.rb'
内写,它会抛出一个错误,说它不能要求这样的文件。我想&#34;也许它自动需要lib/
&#34;中的所有内容,但它显然不是;如果我不需要任何,它会说VideoPlayer是一个未初始化的常量。
那么这是如何运作的?
答案 0 :(得分:1)
我通常会将lib
目录添加到库加载路径($:
)。您可以将其添加到bin文件的顶部。
lib = File.expand_path('../../lib', __FILE__)
$:.unshift(lib) unless $:.include?(lib)
然后你可以做一个正常的要求:
require 'videoplayer'
希望这有帮助。