2012-04-29 4 views
15

これはGemspecのファイルsurveyor gemにあります。次の行は何をしますか?

$:.push File.expand_path("../lib", __FILE__) 
require "surveyor/version" 

$:.pushはどうしてですか?私にはちょうどrequires../lib/surveyor/versionファイルのように見えます。もしそうなら、私はちょうどそれを次の1行に置き換えることはできないのですか?

require File.expand_path('../lib/surveyor/version', __FILE__) 

どちらも同じですか?そうでない場合は、違いは何ですか?それはこの宝石から他​​のファイルがrequire Dできるよう__FILE__は、この配列に格納されているフォルダのサブフォルダ/libを追加することでありますので、

+4

ちょっとした注意: '$ LOAD_PATH << File.expand_path ...'は同じで、やや難解なIMHOです。 –

+0

確かに、チップのおかげで – CuriousMind

+3

Symbolhound.comはこのような構文を検索するのに便利です。 –

答えて

15

$:は、Rubyのロードパスです。

+0

基本的に、完全なパスを書き込む必要がありません。それはそれを説明する。ありがとう! – CuriousMind

+0

@ガウリッシュ:それだけでなく。宝石は、それがロード経路にあると仮定することができます。ロード経路に追加しなくても、完全な経路でロードする必要がある場合はロードできません。 –

関連する問題