From fa57a003cc73988f777e28fe89119dc56b3b5e98 Mon Sep 17 00:00:00 2001 From: Cezary Baginski Date: Sat, 28 Mar 2009 01:48:27 +0100 Subject: [PATCH] Minor backtrace cleaning fixes (for Vim) --- railties/lib/rails/backtrace_cleaner.rb | 7 ++++--- railties/test/backtrace_cleaner_test.rb | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/railties/lib/rails/backtrace_cleaner.rb b/railties/lib/rails/backtrace_cleaner.rb index 923ed8b..6d653a5 100644 --- a/railties/lib/rails/backtrace_cleaner.rb +++ b/railties/lib/rails/backtrace_cleaner.rb @@ -10,14 +10,15 @@ module Rails lib/rack ) RAILS_NOISE = %w( script/server ) RUBY_NOISE = %w( rubygems/custom_require benchmark.rb ) + SPEC_NOISE = %w( rspec rspec-rails ) - ALL_NOISE = VENDOR_DIRS + SERVER_DIRS + RAILS_NOISE + RUBY_NOISE + ALL_NOISE = VENDOR_DIRS + SERVER_DIRS + RAILS_NOISE + RUBY_NOISE + SPEC_NOISE def initialize super add_filter { |line| line.sub("#{RAILS_ROOT}/", '') } add_filter { |line| line.sub(ERB_METHOD_SIG, '') } - add_filter { |line| line.sub('./', '/') } # for tests + add_filter { |line| line.sub('./', '') } # for tests add_gem_filters @@ -31,7 +32,7 @@ module Rails def add_gem_filters Gem.path.each do |path| # http://gist.github.com/30430 - add_filter { |line| line.sub(/(#{path})\/gems\/([a-z]+)-([0-9.]+)\/(.*)/, '\2 (\3) \4')} + add_filter { |line| line.sub(/(#{path})\/gems\/([a-z]+[a-z-]*[a-z]+)-([0-9.]+)\/(.*)/, '\2 (\3) \4')} end vendor_gems_path = Rails::GemDependency.unpacked_path.sub("#{RAILS_ROOT}/",'') diff --git a/railties/test/backtrace_cleaner_test.rb b/railties/test/backtrace_cleaner_test.rb index 7a1b361..fa163c7 100644 --- a/railties/test/backtrace_cleaner_test.rb +++ b/railties/test/backtrace_cleaner_test.rb @@ -42,6 +42,23 @@ class BacktraceCleanerVendorGemTest < ActiveSupport::TestCase assert_equal "nosuchgem (1.2.3) lib/foo.rb", @result[0] end + test "should format multipart-named installed gems correctly" do + @backtrace = [ "#{Gem.default_dir}/gems/nosuchgem-nosuchmodule-1.2.3/lib/foo.rb" ] + @result = @cleaner.clean(@backtrace) + assert_equal "nosuchgem-nosuchmodule (1.2.3) lib/foo.rb", @result[0] + + @backtrace = [ "#{Gem.default_dir}/gems/nosuchgem-nosuchmodule-nosuchitem-1.2.3/lib/foo.rb" ] + @result = @cleaner.clean(@backtrace) + assert_equal "nosuchgem-nosuchmodule-nosuchitem (1.2.3) lib/foo.rb", @result[0] + + end + + test "should shorten relative paths correctly" do + @backtrace = [ "./spec/models/foo.rb" ] + @result = @cleaner.clean(@backtrace) + assert_equal "spec/models/foo.rb", @result[0] + end + test "should format installed gems not in Gem.default_dir correctly" do @target_dir = Gem.path.detect { |p| p != Gem.default_dir } # skip this test if default_dir is the only directory on Gem.path -- 1.5.6.3