2016-12-17 4 views
1

私はルビーの宝石の中で(そしてテストだけでなく)コードを実行する良い方法を知りたいです。私のルビーの宝石からの出力を見るには良い方法はありますか?

$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) 

、その後、私はdebugger.rbと呼ばれるファイルをロードします。私は、だから私は私のベースファイルに次の行を持っている端末上でruby lib/{gemname}.rbを実行し、いくつかの出力

を見ることができるようにしたい意味

ベースファイルの一番下にそれを必要とすることによって。このファイルから、必要な出力が得られます。

これは動作しますが、クラッタ、この種の私のコードと私は誤ってそれをコミットし、生産に破るそれを見たくありません。

だから、これを行うための良い方法は何ですか?

+1

おそらく助かります。http://stackoverflow.com/questions/8545553/best-way-to-debug-third-party-gems-in-ruby –

+1

あなたの宝石を実行する実行ファイルを作成することを検討しましたか?これはコマンドラインで簡単に実行できます。 –

+0

ええ、私はそれをやっていますが、何かをデバッグしたいときは毎回ビルドする必要があります。また、レールアプリ内で宝石を実行していますが、私は何かを変えるたびにサーバーを再起動しました –

答えて

1

宝石を開発し、デバッグするための私のアプローチは2つの部分があります

1)常に必要な「内部」宝石関連のファイルが含まれるようにrequire_relativeを使用しています。

2)次のコードスニペットを使用してください(通常はインストールされている宝石のバージョンを無視してください)コマンドラインでベースのmy_gem.rbファイルが明示的に実行されると、メインファイルの一番下にあるデバッグ機能を有効にします。

if __FILE__ == $0 
    #debugging code goes here! 
end 

この戦略では、gemをリリースする前に、デバッグコードをヤンクする心配がありません。

関連する問題