Issue #7998 has been updated by Student (Nathan Zook).


+1

While the proposed usage is good, I immediately thought about this:

new_meth_name = module_eval <<-RUBY
 def prefix_#{val}_postfix
   ...
 end
RUBY

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

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/