diff options
Diffstat (limited to 'rubocop/cop/avoid_route_redirect_leading_slash.rb')
-rw-r--r-- | rubocop/cop/avoid_route_redirect_leading_slash.rb | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/rubocop/cop/avoid_route_redirect_leading_slash.rb b/rubocop/cop/avoid_route_redirect_leading_slash.rb index 0b0dc7d3d33..0535ae16a33 100644 --- a/rubocop/cop/avoid_route_redirect_leading_slash.rb +++ b/rubocop/cop/avoid_route_redirect_leading_slash.rb @@ -13,7 +13,9 @@ module RuboCop # root to: redirect('-/autocomplete/users') # - class AvoidRouteRedirectLeadingSlash < RuboCop::Cop::Cop + class AvoidRouteRedirectLeadingSlash < RuboCop::Cop::Base + extend RuboCop::Cop::AutoCorrector + MSG = 'Do not use a leading "/" in route redirects' def_node_matcher :leading_slash_in_redirect?, <<~PATTERN @@ -24,7 +26,9 @@ module RuboCop return unless in_routes?(node) return unless leading_slash_in_redirect?(node) - add_offense(node) + add_offense(node) do |corrector| + corrector.replace(node.loc.expression, remove_leading_slash(node)) + end end def has_leading_slash?(str) @@ -38,12 +42,6 @@ module RuboCop dirname.end_with?('config/routes') || filename.end_with?('routes.rb') end - def autocorrect(node) - lambda do |corrector| - corrector.replace(node.loc.expression, remove_leading_slash(node)) - end - end - def remove_leading_slash(node) node.source.sub('/', '') end |