./lib/dolt/sinatra/actions.rb in dolt-0.24.0 vs ./lib/dolt/sinatra/actions.rb in dolt-0.25.0
- old
+ new
@@ -26,30 +26,40 @@
response.status = status
response["Location"] = url
body ""
end
- def render_error(error, repo, ref)
+ def render_error(error, repo, ref, data = {})
if error.class.to_s == "Rugged::ReferenceError" && ref == "HEAD"
- return body(renderer.render("empty", { :repository => repo, :ref => ref }))
+ return body(renderer.render("empty", {
+ :repository => repo,
+ :ref => ref
+ }.merge(data)))
end
template = error.class.to_s == "Rugged::IndexerError" ? :"404" : :"500"
add_headers(response)
body(renderer.render(template, {
:error => error,
:repository_slug => repo,
:ref => ref
- }))
+ }.merge(data)))
rescue Exception => err
err_backtrace = err.backtrace.map { |s| "<li>#{s}</li>" }
error_backtrace = error.backtrace.map { |s| "<li>#{s}</li>" }
body(<<-HTML)
<h1>Fatal Dolt Error</h1>
<p>
Dolt encountered an exception, and additionally
triggered another exception trying to render the error.
</p>
+ <p>Tried to render the #{template} template with the following data:</p>
+ <dl>
+ <dt>Repository</dt>
+ <dd>#{repo}</dd>
+ <dt>Ref</dt>
+ <dd>#{ref}</dd>
+ </dl>
<h2>Error: #{err.class} #{err.message}</h2>
<ul>#{err_backtrace.join()}</ul>
<h2>Original error: #{error.class} #{error.message}</h2>
<ul>#{error_backtrace.join()}</ul>
HTML