我正在阅读gemspec文件,目录看起来像
gem/
lib/
a.rb
gem.gemspec
在gemspec中有一行
$:.push File.expand_path('../lib', __FILE__)
我想这意味着将lib
文件夹添加到Ruby的加载路径中,所以在那里你可以require
填充。
但为什么../lib
不仅仅是lib
?
使用与上述相同的示例,如果您要在a.rb
中加载代码,那么您不是仅仅require 'a'
而不是require '../a'
吗?
请注意lib
和a.rb
与gemspec
的相对位置相同。
答案 0 :(得分:0)
使用require时,您只需添加所需的文件,如:
require 'yourfile'
对于上面的示例,您只需要在您正在处理的文件夹中包含所需的文件。如果它是gem
,则无关紧要,您只需添加require语句即可。您所看到的是gem如何知道要包含在require中而不必指定文件夹。当您使用gem
时,通常会安装它,然后需要它,而不指定从何处获取它。
另一个选项是将所需文件放在另一个文件夹中,然后指定该文件/文件夹的路径:
require './yourfolder/yourfile'