mirror of
https://github.com/sinatra/sinatra
synced 2023-03-27 23:18:01 -04:00
get rid of backtrace cleaning
This commit is contained in:
parent
b6701db3fa
commit
ccb66b0f30
2 changed files with 1 additions and 58 deletions
|
@ -648,21 +648,11 @@ module Sinatra
|
||||||
end
|
end
|
||||||
|
|
||||||
def dump_errors!(boom)
|
def dump_errors!(boom)
|
||||||
backtrace = clean_backtrace(boom.backtrace)
|
|
||||||
msg = ["#{boom.class} - #{boom.message}:",
|
msg = ["#{boom.class} - #{boom.message}:",
|
||||||
*backtrace].join("\n ")
|
*boom.backtrace].join("\n ")
|
||||||
@env['rack.errors'].puts(msg)
|
@env['rack.errors'].puts(msg)
|
||||||
end
|
end
|
||||||
|
|
||||||
def clean_backtrace(trace)
|
|
||||||
return trace unless settings.clean_trace?
|
|
||||||
|
|
||||||
trace.reject { |line|
|
|
||||||
line =~ /lib\/sinatra.*\.rb/ ||
|
|
||||||
(defined?(Gem) && line.include?(Gem.dir))
|
|
||||||
}.map! { |line| line.gsub(/^\.\//, '') }
|
|
||||||
end
|
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
attr_reader :routes, :before_filters, :after_filters, :templates, :errors
|
attr_reader :routes, :before_filters, :after_filters, :templates, :errors
|
||||||
|
|
||||||
|
@ -1053,7 +1043,6 @@ module Sinatra
|
||||||
set :raise_errors, Proc.new { test? }
|
set :raise_errors, Proc.new { test? }
|
||||||
set :dump_errors, Proc.new { !test? }
|
set :dump_errors, Proc.new { !test? }
|
||||||
set :show_exceptions, Proc.new { development? }
|
set :show_exceptions, Proc.new { development? }
|
||||||
set :clean_trace, true
|
|
||||||
set :sessions, false
|
set :sessions, false
|
||||||
set :logging, false
|
set :logging, false
|
||||||
set :method_override, false
|
set :method_override, false
|
||||||
|
|
|
@ -135,52 +135,6 @@ class SettingsTest < Test::Unit::TestCase
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'clean_trace' do
|
|
||||||
def clean_backtrace(trace)
|
|
||||||
Sinatra::Base.new.send(:clean_backtrace, trace)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'is enabled on Base' do
|
|
||||||
assert @base.clean_trace?
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'is enabled on Application' do
|
|
||||||
assert @application.clean_trace?
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'does nothing when disabled' do
|
|
||||||
backtrace = [
|
|
||||||
"./lib/sinatra/base.rb",
|
|
||||||
"./myapp:42",
|
|
||||||
("#{Gem.dir}/some/lib.rb" if defined?(Gem))
|
|
||||||
].compact
|
|
||||||
|
|
||||||
klass = Class.new(Sinatra::Base)
|
|
||||||
klass.disable :clean_trace
|
|
||||||
|
|
||||||
assert_equal backtrace, klass.new.send(:clean_backtrace, backtrace)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'removes sinatra lib paths from backtrace when enabled' do
|
|
||||||
backtrace = [
|
|
||||||
"./lib/sinatra/base.rb",
|
|
||||||
"./lib/sinatra/compat.rb:42",
|
|
||||||
"./lib/sinatra/main.rb:55 in `foo'"
|
|
||||||
]
|
|
||||||
assert clean_backtrace(backtrace).empty?
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'removes ./ prefix from backtrace paths when enabled' do
|
|
||||||
assert_equal ['myapp.rb:42'], clean_backtrace(['./myapp.rb:42'])
|
|
||||||
end
|
|
||||||
|
|
||||||
if defined?(Gem)
|
|
||||||
it 'removes gem lib paths from backtrace when enabled' do
|
|
||||||
assert clean_backtrace(["#{Gem.dir}/some/lib"]).empty?
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'run' do
|
describe 'run' do
|
||||||
it 'is disabled on Base' do
|
it 'is disabled on Base' do
|
||||||
assert ! @base.run?
|
assert ! @base.run?
|
||||||
|
|
Loading…
Add table
Reference in a new issue