Feature #4475

default variable name for parameter

Added by jordi (jordi polo) almost 7 years ago. Updated 2 months ago.

Target version:



There is a very common pattern in Ruby:

object.method do |variable_name|
variable_name doing something


Many times in fact the name of the object is so self explanatory that we don't care about the name of the variable of the block. It is common to see things like :

@my_sons.each { |s| s.sell_to_someone }


Account.all.each { |a| my_account << }

People tend to choose s or a because we have the class or the object name just there to remind you about the context.

I would like to know if can be a good idea to have a default name for that parameter. I think it is Groovy that does something like:

Account.all.each { my_account << }

Where it is automagically filled and it doesn't need to be declared.

I think it is as readable or more (for newbies who don't know what is ||) and we save some typing :)



#1 Updated by wardrop (Tom Wardrop) almost 7 years ago

I like the suggestion. The magic variable I'd use for this pattern would be 'this'. For example:

posts.each { = 'Santa Clause' }

The rule would be: The first argument of any block would be accessible from within the block through the special variable 'this'.

#2 [ruby-core:43439] Updated by nahi (Hiroshi Nakamura) almost 6 years ago

  • Description updated (diff)
  • Category set to core
  • Status changed from Open to Assigned
  • Assignee set to matz (Yukihiro Matsumoto)

#3 [ruby-core:49705] Updated by mame (Yusuke Endoh) over 5 years ago

  • Target version set to 2.6

#4 Updated by naruse (Yui NARUSE) 2 months ago

  • Target version deleted (2.6)

Also available in: Atom PDF