mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
aa3dcabd87
Since Rails 6.0 will support Ruby 2.4.1 or higher `# frozen_string_literal: true` magic comment is enough to make string object frozen. This magic comment is enabled by `Style/FrozenStringLiteralComment` cop. * Exclude these files not to auto correct false positive `Regexp#freeze` - 'actionpack/lib/action_dispatch/journey/router/utils.rb' - 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb' It has been fixed by https://github.com/rubocop-hq/rubocop/pull/6333 Once the newer version of RuboCop released and available at Code Climate these exclude entries should be removed. * Replace `String#freeze` with `String#-@` manually if explicit frozen string objects are required - 'actionpack/test/controller/test_case_test.rb' - 'activemodel/test/cases/type/string_test.rb' - 'activesupport/lib/active_support/core_ext/string/strip.rb' - 'activesupport/test/core_ext/string_ext_test.rb' - 'railties/test/generators/actions_test.rb'
22 lines
676 B
Ruby
22 lines
676 B
Ruby
# frozen_string_literal: true
|
|
|
|
require "active_support/backtrace_cleaner"
|
|
|
|
module Rails
|
|
class BacktraceCleaner < ActiveSupport::BacktraceCleaner
|
|
APP_DIRS_PATTERN = /^\/?(app|config|lib|test|\(\w*\))/
|
|
RENDER_TEMPLATE_PATTERN = /:in `.*_\w+_{2,3}\d+_\d+'/
|
|
EMPTY_STRING = ""
|
|
SLASH = "/"
|
|
DOT_SLASH = "./"
|
|
|
|
def initialize
|
|
super
|
|
@root = "#{Rails.root}/"
|
|
add_filter { |line| line.sub(@root, EMPTY_STRING) }
|
|
add_filter { |line| line.sub(RENDER_TEMPLATE_PATTERN, EMPTY_STRING) }
|
|
add_filter { |line| line.sub(DOT_SLASH, SLASH) } # for tests
|
|
add_silencer { |line| !APP_DIRS_PATTERN.match?(line) }
|
|
end
|
|
end
|
|
end
|