Rubyist <nuby.ruby.programmer / gmail.com> wrote:
> <doug00 / gmail.com> wrote:
> > What would be even better would be to allow optional labels
> > after end statements, such as "end class", "end def", so the
> > parser can catch more errors.
>
> That sound like a good idea. But what about "if", "when",
> "for", "until" etc?
> Hmm...
> "endif", "end when", "end for", "end until", "end class", "enddef",...

Or how 'bout "if - fi" and "until - done" and "for - done"...
nah.  As much as the Bourne shell has a few constructs that
seem to meet your criteria, I don't think it's the answer.

I have to say, as much as I like the idea of significant
whitespace for *certain* things (preservation of vertical
space; force new programmers to indent), I just don't think it's
the right solution here, either.

Besides, Python has no solution for *which* scope is ended when
code is reverse indented.  It's clean, but not descriptive.

I agree that Ruby's explicit "end"s make it nicer for use in
erb.  And at least this way you can, for your posterity's sake,
do:

    stuff.each do |thing|
      if thing.instance_of?(other_thing)
        thing.action()
      end # if
    end # each stuff

Cheers,
Tim Hammerquist