From 4cddd7054123cebac7d9bc58b7187a0acbccded8 Mon Sep 17 00:00:00 2001 From: Ryan Tomayko Date: Tue, 13 Jan 2009 12:09:53 -0800 Subject: [PATCH] Better file/line detection in sinatra_warn --- lib/sinatra/compat.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/sinatra/compat.rb b/lib/sinatra/compat.rb index 7bef6eda..c1b564bb 100644 --- a/lib/sinatra/compat.rb +++ b/lib/sinatra/compat.rb @@ -10,7 +10,9 @@ require 'sinatra/main' # Like Kernel#warn but outputs the location that triggered the warning. def sinatra_warn(*message) - line = caller[1].sub(/:in .*/, '') + line = caller. + detect { |line| line !~ /(?:lib\/sinatra\/|__DELEGATE__)/ }. + sub(/:in .*/, '') warn "#{line}: warning: #{message.join(' ')}" end