パルカワ2

最近はFlutterをやっています

メソッドを抜けたらある処理を実行する、をRubyでやってみる

パーフェクトRuby見てたら、出来そうだなーと思ったのでやってみました。
本当はガードオブジェクト作りたい。

def hoge
  trace = TracePoint.new(:return, :raise) do |tp|
    next if tp.method_id != :hoge
    # io.closeなど、ここにhoge()が終わったら実行したい処理を書く
    trace.disable
  end
  trace.enable

  # なんかそれっぽい処理

end

hoge()

TracePoint面白い。
http://docs.ruby-lang.org/ja/2.1.0/class/TracePoint.html