What you are seeking is either tap
, already implemented:
[1, 2, 3].tap { |ary|
puts ary.inspect
ary.each { |e|
# ...
}
'hello' ' ' + 'world' # return value demo
} # returns the original array
Or ergo
method, coming soon:
class Object; def ergo; yield self end end # gotta define it manually as of Ruby 2.0.0
[1, 2, 3].ergo { |ary|
puts ary.inspect
ary.each { |e|
# ...
}
'hello' ' ' + 'world' # return value demo
} # returns the block return value