Well, here’s a quick monkeypatch for adding a method that will do all the ensuring/retrapping for you when you leave a function.
Here’s the code (click for github’s colorized version):
While the syntax for calling it (t.trapr_wrap "SIGINT", Proc.new { ... }, :foo
) isn’t exactly clean, if you’re calling a lot of functions and only want a trap to be active inside, it beats having to repeat undoing your trap every time.
Update: I changed the code for better readability and because I was doing it a silly way. Now it takes actual arguments instead of just ‘*args’.
]]>