Issue #5054 has been updated by Jon Forums.
I'm still _very_ much for the current style and haven't wrapped my mind around the new visual look. It all looks like some wacky mashup of Ruby and Python. That said, here's another one.
module MyModule
class MyClass
def my_method
10.times do
if rand < 0.5
p :small
5_end
Here's hoping no one writes or has to read a `29_end`...ever.
BTW, are there any additional lexing/parsing costs to any of the ideas that would make MRI perform slower for most use cases?
Jon
----------------------------------------
Feature #5054: Compress a sequence of ends
http://redmine.ruby-lang.org/issues/5054
Author: Yasushi ANDO
Status: Assigned
Priority: Normal
Assignee: Yasushi ANDO
Category: Joke
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