Further off-topic, but I almost exclusively see tap used as some kind of clever way around a return line, e.g. instead of:<p><pre><code>    def build_hash_or_whatever
      hash = Hash.new
      hash[:foo] = some_generating_method
      hash[:bar] = &quot;some value&quot; if whatever?
      # More hash construction nonsense
      hash
    end
</code></pre>
With tap it is:<p><pre><code>    def build_hash_or_whatever
      Hash.new.tap do |hash|
        hash[:foo] = some_generating_method
        hash[:bar] = &quot;some value&quot; if whatever?
        # More hash construction nonsense
      end
    end
</code></pre>
I think the tap-form is significantly worse and I don&#x27;t understand the aversion to a single line that clearly shows what you are returning.