2012-02-26 7 views
0

Rails 3.xサーバ(rails s)を起動すると、ロードされている各ファイルのパスと名前を表示できますか?`require`に渡されたファイル名を出力するには?

以下のような何かが、レールによってrequire dはファイルごとに(例えば、各railtieの読み込みを考える):私は単にputs呼び出しを使用して上記の操作を行うことができています

Loading boot.rb... 
Loading application.rb... 
Loading environment.rb... 
Loading development.rb... 
Loading routes.rb... 

注意上記のファイルでは、それは私が目指しているものではありません。代わりに、require dというファイル名を、アプリケーション内だけでなく、requireが呼び出されるたびに、任意のコードで印刷したいと考えています。たとえば、requireへの呼び出しのファイル名をRailsコード内に出力します。

UPDATE

おかげ@ScottJShea。 application.rb

:私は、次のコードを使用し、あなたがkernel.rbを編集する必要がありますように

require File.expand_path('../boot', __FILE__) 

module Kernel 
    def require_and_print(string) 
    puts string 
    require_original(string) 
    end 
    alias_method :require_original, :require 
    alias_method :require, :require_and_print 
end 
.... 

答えて

2

が見えます。レスポンダがこれを示唆しているのはSO Postです(requireメソッドに制限することはできますが)。

module Kernel 
    def load_and_print(string) 
    $:.each do |p| 
     if File.exists? File.join(p, string) 
     puts File.join(p, string) 
     break 
     end 
    end 
    load_original(string) 
    end 

    alias_method :load_original, :load 
    alias_method :load, :load_and_print 

end 
+0

スーパーです。その例をrequireに使用します。私が使ったコードで答えが更新されました。 – Zabba

+0

うれしいよ:) – ScottJShea