Sha256: c10831300f5f485d50a319f37725a0daa26d78267da5d3de5fe016075ced8afa

Contents?: true

Size: 1.01 KB

Versions: 10

Compression:

Stored size: 1.01 KB

Contents

require 'rails/backtrace_cleaner'
class Rails::BacktraceCleaner
  def replace_filter(index, &block)
    @filters[index] = block
  end

  def clean(backtrace, kind = :silent)
    safe = super.map {|l| l.html_safe}
    def safe.join(*args)
      (joined = super).html_safe
    end
    safe
  end
end

backtrace_cleaner = Rails.backtrace_cleaner
backtrace_cleaner.replace_filter(0) do |line|
  if match = line.match(/^(.+):(\d+):in/) || match = line.match(/^(.+):(\d+)\s*$/)
    file, line_number = match[1], match[2]
    %[<a href="#{Footnotes::Filter.prefix(file, line_number, 1).html_safe}">#{line.sub("#{Rails.root.to_s}/",'').html_safe}</a>].html_safe
  else
    line
  end
end

gems_paths = (Gem.path + [Gem.default_dir]).uniq.map!{ |p| Regexp.escape(p) }
unless gems_paths.empty?
  gems_regexp = %r{\>#{gems_paths.join('|')}/gems/}
  backtrace_cleaner.replace_filter(3) {|line| line.sub(gems_regexp, '>') }
end
backtrace_cleaner.remove_silencers!
backtrace_cleaner.add_silencer { |line| line !~ /\>\/?(app|config|lib|test)/ }

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
rails-footnotes-3.7.9 lib/rails-footnotes/backtracer.rb
rails-footnotes-3.7.8 lib/rails-footnotes/backtracer.rb
rails-footnotes-3.7.7 lib/rails-footnotes/backtracer.rb
rails-footnotes-3.7.6 lib/rails-footnotes/backtracer.rb
rails-footnotes-3.7.5 lib/rails-footnotes/backtracer.rb
rails-footnotes-3.7.5.rc4 lib/rails-footnotes/backtracer.rb
rails-footnotes-3.7.5.rc3 lib/rails-footnotes/backtracer.rb
rails-footnotes-3.7.5.rc2 lib/rails-footnotes/backtracer.rb
rails-footnotes-3.7.5.rc1 lib/rails-footnotes/backtracer.rb
rails-footnotes-3.7.4 lib/rails-footnotes/backtracer.rb