def _layout_for_option(name)
      case name
      when String     then _normalize_layout(name)
      when Proc       then name
      when true       then Proc.new { |lookup_context, formats| _default_layout(lookup_context, formats, true)  }
      when :default   then Proc.new { |lookup_context, formats| _default_layout(lookup_context, formats, false) }
      when false, nil then nil
      else
        raise ArgumentError,
          "String, Proc, :default, true, or false, expected for `layout'; you passed #{name.inspect}"
      end
    end
def _layout_for_option(name)
      case name
      when String     then _normalize_layout(name)
      when Proc       then name
      when true       then Proc.new { |lookup_context, formats| _default_layout(lookup_context, formats, true)  }
      when :default   then Proc.new { |lookup_context, formats| _default_layout(lookup_context, formats, false) }
      when false, nil then nil
      else
        raise ArgumentError,
          "String, Proc, :default, true, or false, expected for `layout'; you passed #{name.inspect}"
      end
    end
Determine the layout for a given name, taking into account the name type.

 ==== Parameters
 * <tt>name</tt> - The name of the template