From 668a19a2f325c4e9fe2fd97d391ad3d2cd18c42a Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 2 May 2023 15:07:45 -0400 Subject: [PATCH] Fix Performance/DeletePrefix cop (#24796) --- .rubocop_todo.yml | 15 --------------- .../authorize_interactions_controller.rb | 2 +- .../concerns/signature_verification.rb | 2 +- app/controllers/intents_controller.rb | 2 +- app/lib/activitypub/case_transform.rb | 2 +- app/lib/permalink_redirector.rb | 2 +- app/lib/webfinger_resource.rb | 2 +- .../activitypub/fetch_remote_actor_service.rb | 2 +- app/services/resolve_account_service.rb | 2 +- app/services/tag_search_service.rb | 2 +- 10 files changed, 9 insertions(+), 24 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 4410802d0..52b15c9bc 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -303,21 +303,6 @@ Performance/CollectionLiteralInLoop: - 'config/deploy.rb' - 'lib/mastodon/media_cli.rb' -# This cop supports unsafe autocorrection (--autocorrect-all). -# Configuration parameters: SafeMultiline. -Performance/DeletePrefix: - Exclude: - - 'app/controllers/authorize_interactions_controller.rb' - - 'app/controllers/concerns/signature_verification.rb' - - 'app/controllers/intents_controller.rb' - - 'app/lib/activitypub/case_transform.rb' - - 'app/lib/permalink_redirector.rb' - - 'app/lib/webfinger_resource.rb' - - 'app/services/activitypub/fetch_remote_actor_service.rb' - - 'app/services/backup_service.rb' - - 'app/services/resolve_account_service.rb' - - 'app/services/tag_search_service.rb' - # This cop supports unsafe autocorrection (--autocorrect-all). Performance/MapCompact: Exclude: diff --git a/app/controllers/authorize_interactions_controller.rb b/app/controllers/authorize_interactions_controller.rb index 02a6b6d06..bf28d1842 100644 --- a/app/controllers/authorize_interactions_controller.rb +++ b/app/controllers/authorize_interactions_controller.rb @@ -59,7 +59,7 @@ class AuthorizeInteractionsController < ApplicationController end def uri_param - params[:uri] || params.fetch(:acct, '').gsub(/\Aacct:/, '') + params[:uri] || params.fetch(:acct, '').delete_prefix('acct:') end def set_body_classes diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb index 931725943..db3144adb 100644 --- a/app/controllers/concerns/signature_verification.rb +++ b/app/controllers/concerns/signature_verification.rb @@ -244,7 +244,7 @@ module SignatureVerification end if key_id.start_with?('acct:') - stoplight_wrap_request { ResolveAccountService.new.call(key_id.gsub(/\Aacct:/, ''), suppress_errors: false) } + stoplight_wrap_request { ResolveAccountService.new.call(key_id.delete_prefix('acct:'), suppress_errors: false) } elsif !ActivityPub::TagManager.instance.local_uri?(key_id) account = ActivityPub::TagManager.instance.uri_to_actor(key_id) account ||= stoplight_wrap_request { ActivityPub::FetchRemoteKeyService.new.call(key_id, id: false, suppress_errors: false) } diff --git a/app/controllers/intents_controller.rb b/app/controllers/intents_controller.rb index ca89fc7fe..ea024e30e 100644 --- a/app/controllers/intents_controller.rb +++ b/app/controllers/intents_controller.rb @@ -9,7 +9,7 @@ class IntentsController < ApplicationController if uri.scheme == 'web+mastodon' case uri.host when 'follow' - return redirect_to authorize_interaction_path(uri: uri.query_values['uri'].gsub(/\Aacct:/, '')) + return redirect_to authorize_interaction_path(uri: uri.query_values['uri'].delete_prefix('acct:')) when 'share' return redirect_to share_path(text: uri.query_values['text']) end diff --git a/app/lib/activitypub/case_transform.rb b/app/lib/activitypub/case_transform.rb index d36e01b8f..da2c5eb8b 100644 --- a/app/lib/activitypub/case_transform.rb +++ b/app/lib/activitypub/case_transform.rb @@ -13,7 +13,7 @@ module ActivityPub::CaseTransform when Symbol then camel_lower(value.to_s).to_sym when String camel_lower_cache[value] ||= if value.start_with?('_:') - "_:#{value.gsub(/\A_:/, '').underscore.camelize(:lower)}" + "_:#{value.delete_prefix('_:').underscore.camelize(:lower)}" else value.underscore.camelize(:lower) end diff --git a/app/lib/permalink_redirector.rb b/app/lib/permalink_redirector.rb index 063a2188b..0fcec683d 100644 --- a/app/lib/permalink_redirector.rb +++ b/app/lib/permalink_redirector.rb @@ -52,7 +52,7 @@ class PermalinkRedirector end def path_segments - @path_segments ||= @path.gsub(/\A\//, '').split('/') + @path_segments ||= @path.delete_prefix('/').split('/') end def find_status_url_by_id(id) diff --git a/app/lib/webfinger_resource.rb b/app/lib/webfinger_resource.rb index 420945485..7e1a7196d 100644 --- a/app/lib/webfinger_resource.rb +++ b/app/lib/webfinger_resource.rb @@ -57,7 +57,7 @@ class WebfingerResource end def resource_without_acct_string - resource.gsub(/\Aacct:/, '') + resource.delete_prefix('acct:') end def local_username diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb index c29570086..8df8c7587 100644 --- a/app/services/activitypub/fetch_remote_actor_service.rb +++ b/app/services/activitypub/fetch_remote_actor_service.rb @@ -67,7 +67,7 @@ class ActivityPub::FetchRemoteActorService < BaseService end def split_acct(acct) - acct.gsub(/\Aacct:/, '').split('@') + acct.delete_prefix('acct:').split('@') end def supported_context? diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb index 870d67ec8..6204fefd6 100644 --- a/app/services/resolve_account_service.rb +++ b/app/services/resolve_account_service.rb @@ -100,7 +100,7 @@ class ResolveAccountService < BaseService end def split_acct(acct) - acct.gsub(/\Aacct:/, '').split('@') + acct.delete_prefix('acct:').split('@') end def fetch_account! diff --git a/app/services/tag_search_service.rb b/app/services/tag_search_service.rb index b66ccced9..d5d197427 100644 --- a/app/services/tag_search_service.rb +++ b/app/services/tag_search_service.rb @@ -2,7 +2,7 @@ class TagSearchService < BaseService def call(query, options = {}) - @query = query.strip.gsub(/\A#/, '') + @query = query.strip.delete_prefix('#') @offset = options.delete(:offset).to_i @limit = options.delete(:limit).to_i @options = options