ソースコードでrequire
が表示されたらそれは宝石のインストールから来た場合必要なモジュールが宝石から来たのか、それともコアモジュールであるのかをどうやって判断するのですか?
require "blah"
は、どのように私は、そのライブラリ(「何とか」)がコアルビーのインストールによって提供されたかどうかを調べるか、ですか?
ソースコードでrequire
が表示されたらそれは宝石のインストールから来た場合必要なモジュールが宝石から来たのか、それともコアモジュールであるのかをどうやって判断するのですか?
require "blah"
は、どのように私は、そのライブラリ(「何とか」)がコアルビーのインストールによって提供されたかどうかを調べるか、ですか?
を見つけたあなたは$LOADED_FEATURES
を読むことができるし、パスが宝石から来たかどうかをチェック確認するために、その配列に見ることができますない。
# return true if library is an external gem
$LOADED_FEATURES.grep(/library/).grep(/gems/).size > 0
これはうまくいくと思います。私もそれを試しました。しかし、私はどこかのメタデータには残念ですが、代わりにファイルシステムのパスにキーワードを求めています。しかたがない。 – DragonFax
require
がロードされたライブラリファイルを検出すると、そのファイルへのフルパスが$LOADED_FEATURES
アレイに追加されます。ですから、機能はコアのインストールに属しているかどうかをテストしていることを意味し、それはblah
$LOADED_FEATURES.find_all { |path| puts path if /blah/ =~ path }
'$ LOADED_FEATURES.select {| path | path.include?( '探すべきもの')} 'はうまくいきます。配列を返し、あなたが望む方法でそれを使うことができます。 – vgoff
Ruby Coreには絶対に「require」が必要ありません。おそらくあなたは[標準ライブラリ](http://ruby-doc.org/stdlib-2.0/)を意味していますか? –