From: furtive.clown@... Date: 2007-11-13T04:10:08+09:00 Subject: Re: alias_method :tap, :affect This is the first I've heard of Object#tap. It seems backward because you almost always want the result of the block, not the object back again. All of my ruby scripts use class Object def as yield self end end E.g, a recent script of mine does platform_audio_files = audio_stems.map { |f| f + "." + audio_ext[platform] }.as { |t| t + audio_basenames }.map { |f| File.join(audio_dir, f) } I know this could be written platform_audio_files = (audio_stems.map { |f| f + "." + audio_ext[platform] } + audio_basenames).map { |f| File.join(audio_dir, f) } but I find that uncouth compared to the former. If ruby is adding anything, it should be the behavior of Object#as, not Object#tap.