2017-02-07 6 views
-2

以下の方法がありますか?特定のメソッドが呼び出された場合にメタプログラミングを使用して行を追加する方法

メソッドが別のメソッドの本体の最後の行として呼び出されるときはいつでも、メソッド呼び出しを1組の行で囲む必要があります。

次の方法:私は考えることができる最も簡単な方法はtapある

def my_method 
    x = do_some_stuff 
    byebug 
    x 
end 
+0

「特定の方法」(タイトルが言うように)、または最終的に(本体が言うように)どんな方法ですか? 「一対の線」は何を意味しますか? – sawa

+2

私には、「特定の壁が緑色ならば、ハンマーでネジを掘る」のように聞こえます。これ以上の情報がなければ、間違った方法で問題に近づいていると言えます。達成しようとしていることを説明できますか? – Stefan

+0

こんにちは私は私がしたいことをもっと詳しく見せるために私の例を編集しました。 – user2320239

答えて

1

def my_method 
    do_some_stuff 
    byebug 
end 

がに変換する必要があります

def my_method 
    do_some_stuff.tap { |return_value| byebug } 
end 

tapはブロック(開始を実行byebug)ブロックが復帰した後に受信機を返します。

byebug内では、var localでローカル変数を調べることができ、現在の値はreturn_valueです。

+0

は十分なメタプログラミングではありません:) –

+0

これは途中ですが、問題は戻り値を調べることができるということです。なぜそれを変数に代入したいのですか? – user2320239

+0

@ user2320239私は回答。 – Stefan

関連する問題