Why does Ruby seem to hoist variable declarations from inside a case statement even if that code path is not executed?
Why can I refer to a variable outside of an if/unless/case statement that never ran?