code: def render_template(partial, variable=nil, &block)
        render_options = global_options.clone
        render_options[:captured_block] = view.capture(self, &block) if block_given?
        render_options[:options] = render_options
        variable ||= render_options.delete(:variable) || :template
        render_options[variable] = self
  
        view.render partial, render_options
      end
docs: Render a partial, treating it as a template, and any code in the block argument will impact how the template renders
     <%= WithTemplate::Base.new(self).render_template("shared/wizard") do |blocks| %>
       <% blocks.queue :step1 %>
       <% blocks.queue :step2 do %>
         My overridden Step 2 |
       <% end %>
       <% blocks.queue :step3 %>
       <% blocks.queue do %>
         | Anonymous Step 4
       <% end %>
     <% end %>
  
     <!-- In /app/views/shared/wizard -->
     <% blocks.define :step1 do %>
       Step 1 |
     <% end %>
  
     <% blocks.define :step2 do %>
       Step 2 |
     <% end %>
  
     <% blocks.define :step3 do %>
       Step 3
     <% end %>
  
     <% blocks.queued_blocks.each do |block| %>
       <%= blocks.render block %>
     <% end %>
  
     <!-- Will render: Step 1 | My overridden Step 2 | Step 3 | Anonymous Step 4-->
   Options:
   [+partial+]
     The partial to render as a template
   [+block+]
     An optional block with code that affects how the template renders