最近、一連のコミットが発生した後、バックエンドプロセスが実行に失敗するという問題がありました。さて、私たちは良い男の子と女の子でありrake test
、すべてのチェックイン後に実行しましたが、Railsのライブラリーのロードのいくつかの奇妙さのため、プロダクションモードでMongrelから直接実行したときにのみ発生しました。
私はバグを追跡しましたが、それは新しいRails gemがStringクラスのメソッドを上書きして、実行時のRailsコードでの1つの狭い用途を壊したためです。
とにかく、短い話ですが、実行時にRubyにメソッドが定義されている場所を尋ねる方法はありますか?そのような何かwhereami( :foo )
が返ります/path/to/some/file.rb line #45
か?この場合、それがStringクラスで定義されていることを私に言っても、ライブラリによってオーバーロードされているため、役に立ちません。
以下のためにgrepをするので、私は、私のプロジェクトのソース命を保証することはできません'def foo'
必ずしも私が私が持っている場合はもちろんのこと、必要なものを私に与えることはありません多く def foo
のを時々私は私が使用している可能性があり1実行時までわかりません。