Philip Rhoades wrote in post #1084734:
> I have an existing script that looks like:
>
> lots of code
> .
> .
> .
> if ..
>    some lines of code
>    if ..
>      some lines of code
>      if ..
>        some lines of code
>        if ..
>          some lines of code
>          if ..
>            some lines of code
> etc
>
> This makes it difficult to see the overall logic

stick it in a method:

def mymethod
  return unless ...
  some lines of code
  return unless ...
  some lines of code
end

lots of code
.
.
mymethod

But if you must keep it within the same scope (lots of local variables 
as you say, that you don't want to pass as arguments), then throw/catch 
is another option.

lots of code
.
.
catch(:done) do
  throw :done unless ...
  some lines of code
  throw :done unless ...
  some lines of code
end

-- 
Posted via http://www.ruby-forum.com/.