0

gemspec ファイルを読んでいましたが、ディレクトリは次のようになります

gem/
  lib/
  a.rb
  gem.gemspec

gemspecには行があります

$:.push File.expand_path('../lib', __FILE__)

libRubyのロードパスにフォルダを追加して、そこに詰め込めるようにすることを意味すると思いますrequire

しかし、なぜ../lib単純ではないのlibでしょうか?

上記と同じ例を使用すると、 でコードをロードしたい場合はa.rbrequire 'a'代わりにrequire '../a'?

libとの両方a.rbが からの相対位置が同じであることに注意してくださいgemspec

4

1 に答える 1

0

require を使用する場合、必要なファイルを次のように追加する必要があります。

require 'yourfile'

上記の例では、作業中のフォルダーに必要なファイルが必要です。の場合はgem問題ありません。require ステートメントを追加するだけです。あなたが見ているのは、フォルダーを指定しなくても、require に含まれていることを gem がどのように認識しているかです。を使用するgem場合は、通常、インストールしてから、取得元を指定せずに要求します。

もう 1 つのオプションは、必要なファイルを別のフォルダーに配置し、そのファイル/フォルダーへのパスを指定することです。

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