def render_area(name)
      [].tap do |output|
        @_area_for.fetch(name, []).reverse_each do |method_name, content|
          output.public_send method_name, content
        end
      end.join.html_safe
    end
def render_area(name)
      [].tap do |output|
        @_area_for.fetch(name, []).reverse_each do |method_name, content|
          output.public_send method_name, content
        end
      end.join.html_safe
    end
Take the instructions we've gathered for the area and replay them one after the other on
 an empty array. These instructions will push, unshift or replace items into our output array,
 which we then join and mark as html_safe.

 These instructions are reversed and replayed when we render the block (rather than as they
 happen) due to the way they are gathered by the layout extension process (in reverse).