diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 4410802d011ae7645a7e2007e7aa8f20d195d369..52b15c9bced22f9cec8a1fc49a5f6068277f9b92 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 02a6b6d06bce2f9b32f08978ce454f939cda3305..bf28d18423ffa9c4d5a9cfacb1d438a290c435db 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 9317259433db655975e92be4007808c9cfbe0264..db3144adbe0bc4054dbf5176291e85a0626d0338 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 ca89fc7fe65f0fc09b933efcf95aa2b9c8527800..ea024e30e6bcf9d17890a5fd122fafb30975b70a 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 d36e01b8f2ec3be8b6ae7f843208147a9fdf1d3e..da2c5eb8b057749165dd435ac1f4c0c8f7c2bbe3 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 063a2188b5f2af594646dff17f2f145ee6283e5f..0fcec683d961b8a1ea7ac56efee6d8f1ca8f21e5 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 42094548595f0726baeabeca23e685b92dffd4e8..7e1a7196d7a51077171959ec1d8ff9e3deebe089 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 c29570086050130272e3da8c072b54a9cb4c191b..8df8c75876644dc0fe51299f4684eec627c71aca 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 870d67ec8daced1c5721b8899a227416da33232e..6204fefd6ff790f4c0e6a2108253236cfd7ee54b 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 b66ccced9de72419b91325db3ff4da00d956e2ad..d5d1974275c039ca5a509f4e9f54c16508c2237c 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