From: Steve Klabnik Date: 2011-07-19T22:32:20+09:00 Subject: [ruby-core:38192] [Ruby 1.9 - Feature #5054] Compress a sequence of ends Issue #5054 has been updated by Steve Klabnik. > I disagree in this case. I don't see much here that could (or should) > reasonably be flattened: we've got a method with two nested scopes, in a > class in a namespace module. None of that (except *possibly* the inner > scope) is unreasonable to my eyes. I actually agree, in this case. However, this means you might have cascading ends once, at the end of a file. This is infrequent enough that I don't see it as a problem, I guess. Certainly not a problem enough to add syntax to the language, and add syntax that enables other bad programming habits. I also find this 'feature' to be very visually disruptive. Especially when I see matching ends everywhere else... I really hope that this doesn't catch on. ---------------------------------------- Feature #5054: Compress a sequence of ends http://redmine.ruby-lang.org/issues/5054 Author: ANDO Yasushi ANDO Status: Open Priority: Normal Assignee: Category: Target version: Though as matz said at rubykaigi2011 ruby is a quite good language, many people hate a long sequence of `end' like this: module MyModule class MyClass def my_method 10.times do if rand < 0.5 p :small end end end end end So, I'd like to propose introducing a special keyword, en(n+)d. Using this keyword, we can rewrite the above example like this: module MyModule class MyClass def my_method 10.times do if rand < 0.5 p :small ennnnnd I know matz's already rejected a python-style block. He wrote: > it works badly with > * tab/space mixture > * templates, e.g. eRuby > * expression with code chunk, e.g lambdas and blocks http://www.ruby-forum.com/topic/108457 These bad things won't occur by introducing en(n+)d. Some implementations already exists. JRuby - https://gist.github.com/1088363 CRuby - http://www.atdot.net/sp/raw/kn9iol - http://d.hatena.ne.jp/ku-ma-me/20110718/p1 Thanks for your consideration. -- http://redmine.ruby-lang.org