def yield_content(key, *args, &block)
      if block_given? && !content_for?(key)
        haml? ? capture_haml(*args, &block) : yield(*args)
      else
        content = content_blocks[key.to_sym].map { |b| capture(*args, &b) }
        content.join.tap do |c|
          if block_given? && (erb? || erubi? || erubis?)
            @_out_buf << c
          end
        end
      end
    end
def yield_content(key, *args, &block)
      if block_given? && !content_for?(key)
        haml? ? capture_haml(*args, &block) : yield(*args)
      else
        content = content_blocks[key.to_sym].map { |b| capture(*args, &b) }
        content.join.tap do |c|
          if block_given? && (erb? || erubi? || erubis?)
            @_out_buf << c
          end
        end
      end
    end
Render the captured blocks for a given key. For example:

     <head>
       <title>Example</title>
       <%= yield_content :head %>
     </head>

 Would render everything you declared with <tt>content_for
 :head</tt> before closing the <tt><head></tt> tag.

 You can also pass values to the content blocks by passing them
 as arguments after the key:

     <%= yield_content :head, 1, 2 %>

 Would pass <tt>1</tt> and <tt>2</tt> to all the blocks registered
 for <tt>:head</tt>.