./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