Вы можете использовать переменную вне метода, используя переменную экземпляра.
def terminate_tool
p @debug_file # "debug.txt"
end
@debug_file = "debug.txt"
terminate_tool
Я бы порекомендовал передать его методу.
def terminate_tool(debug_file)
p debug_file # "debug.txt"
end
terminate_tool("debug.txt")
Я не совсем уверен, какова ваша конечная цель с учетом вашего минимального примера кода. Однако чтение про проц, блоков и лямбд может помочь http://innig.net/software/ruby/closures-in-ruby.html
Кроме того, переменная экземпляра не будет проходить до экземпляров класса.
def terminate_tool
p @debug_file # "debug.txt"
end
class A
def foo
p @debug_file # nil
end
end
@debug_file = "debug.txt"
terminate_tool
a = A.new
a.foo