2016-05-04 1 views
0

まあ、私はこの問題を探査しましたが、明確な説明を与えることができるものは見つかりませんでした。 実行時にロードされたモジュールパスを検出する一般的な方法はありますか?ルビーコードとc拡張コードの両方が含まれていますか? $ LOAD_PATH変数に多くの場所に定義されている "Interface"モジュールがたくさん含まれている場合、 "require 'Interface'"を呼び出した後、どのモジュールがどのモジュールを使っているのかわかりますか?例えば 、両方実行時にルビーの必要なモジュールパス(またはgemパス)を取得します

/web/blogplus/lib 

/web/blogplus/vendor 

コントローラは

class MyCtrl < Interface 
end 

のようなクラスを実装する場合、レールを起動後、 "インタフェース" という名前の宝石を持っているかすることができます私はMyCtrlが使用しているモジュールを知っていますか?

答えて

1

リフレクションを使用してsource_locationメソッドを使用できます。

Interface.public_methods().map{|m| Interface.public_method(m).source_location }.uniq 
関連する問題