From: Ayumu Aizawa Date: 2011-07-19T19:42:33+09:00 Subject: [ruby-core:38187] Re: [Ruby 1.9 - Feature #5054] Compress a sequence of ends Hi Guys It seems so strange to me. It is not visible at first sight how many "end" was included :( 2011/7/19 Shota Fukumori : > > Issue #5054 has been updated by Shota Fukumori. > > > Hi, > > I like your proposal. I'd like to merge this. > But this is new syntax, so if we merge this proposal, I recommend to merge at 2.0. > > And I agree to indenting rule by Martin. This rule is more beautiful and human readable. > > P.S.: nobu said "there is editor problem" at rubykaigi. Anyone can write a patch for ruby.vim? > ---------------------------------------- > 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 > >