Issue #7998 has been updated by trans (Thomas Sawyer).


=begin
It has been suggested long long ago. Probably more than once. Here is a link to one: https://bugs.ruby-lang.org/issues/3753.

Once we start looking at code like that for a while will we then start to think, why not just:

    public foo()
      ...
    end

    protected foo()
      ...
    end

    private bar()
      ...
    end

=end

----------------------------------------
Feature #7998: "def" should return a value (the symbol of the method name) instead of nil
https://bugs.ruby-lang.org/issues/7998#change-37276

Author: pmarreck (Peter Marreck)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: next minor


The C code that implements Ruby method definitions already creates a symbol corresponding to the method name.

I propose that the "def... end" block returns this symbol.

This would allow the following elegant Ruby code:

protected def foo(); end

private def bar(); end

since "protected" and "private" already take symbol arguments.

I estimate that this would be extremely easy to implement while creating extremely minimal existing code impact.

I proposed this idea to the #ruby IRC channel on freenode.net and it was received very well, they encouraged me to file this ticket! Thank you for considering.


-- 
http://bugs.ruby-lang.org/