0

我正在阅读 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'吗?

注意两者liba.rb具有相同的相对位置gemspec

4

1 回答 1

0

使用 require 时,您只需添加所需的文件,例如:

require 'yourfile'

对于上面的示例,您只需要将所需的文件放在您正在处理的文件夹中即可。如果是 agem也没关系,只要加上 require 语句即可。您所看到的是 gem 如何知道包含在 require 中而无需指定文件夹。当您使用 a 时gem,您通常会安装它,然后需要它,而无需指定从何处获取它。

另一种选择是将所需文件放在另一个文件夹中,然后指定该文件/文件夹的路径:

require './yourfolder/yourfile'
于 2013-02-14T18:36:56.537 回答