概要
Kernel#untrace_var(varname, hook = nil)
詳細
グローバル変数 varname に関連付けられたフックを解除します。
hook が指定された場合にはそのフックだけを解除します。
省略するか nil を与えた場合は varname のフックを全て解除します。
サンプルコード
active_hook = proc { |val|puts "active #{val}" if val} disable_hook = proc { |val|puts "disable #{val}" unless val} trace_var(:$VERBOSE, active_hook) trace_var(:$VERBOSE, disable_hook) puts "↓↓↓VERBOSE の2個のフックが有効になっている↓↓↓" $VERBOSE = true $VERBOSE = false puts "↑↑↑VERBOSE の2個のフックが有効になっている↑↑↑" untrace_var(:$VERBOSE, active_hook) puts "↓↓↓VERBOSE faseのフックだけ削除された↓↓↓" $VERBOSE = true $VERBOSE = false puts "↑↑↑VERBOSE faseのフックだけ削除された↑↑↑" trace_var(:$VERBOSE, active_hook) untrace_var(:$VERBOSE) puts "↓↓↓出力されない↓↓↓" $VERBOSE = true $VERBOSE = false puts "↑↑↑出力されない↑↑↑"
出力
↓↓↓VERBOSE の2個のフックが有効になっている↓↓↓ active true disable false ↑↑↑VERBOSE の2個のフックが有効になっている↑↑↑ ↓↓↓VERBOSE faseのフックだけ削除された↓↓↓ disable false ↑↑↑VERBOSE faseのフックだけ削除された↑↑↑ ↓↓↓出力されない↓↓↓ ↑↑↑出力されない↑↑↑