From 4ba5f40fe53bbbf18533a5c7bcf7dbb8fd41a879 Mon Sep 17 00:00:00 2001
From: Peter Leitzen <pleitzen@gitlab.com>
Date: Wed, 18 Jan 2023 10:55:34 +0000
Subject: [PATCH] RuboCop: Fix offenses for Performance/MethodObjectAsBlock

This is part 1 of 2.
---
 .../performance/method_object_as_block.yml    | 42 -------------------
 app/controllers/concerns/metrics_dashboard.rb |  2 +-
 .../requires_whitelisted_monitoring_client.rb |  2 +-
 .../merge_requests/drafts_controller.rb       |  2 +-
 app/finders/bulk_imports/entities_finder.rb   |  6 +--
 app/models/clusters/cluster.rb                |  2 +-
 app/models/concerns/prometheus_adapter.rb     |  4 +-
 app/models/concerns/token_authenticatable.rb  |  2 +-
 app/models/container_repository.rb            |  2 +-
 app/models/programming_language.rb            |  2 +-
 .../packages/detail/package_presenter.rb      |  2 +-
 .../atomic_processing_service.rb              |  9 ++--
 .../observe_histograms_service.rb             |  2 +-
 .../concerns/users/participable_service.rb    |  2 +-
 app/services/discussions/resolve_service.rb   |  2 +-
 .../jira/requests/projects/list_service.rb    |  4 +-
 .../merge_requests/refresh_service.rb         |  2 +-
 .../debian/generate_distribution_service.rb   |  2 +-
 .../delete_tags_service.rb                    |  5 ++-
 app/workers/gitlab/import/stuck_import_job.rb |  4 +-
 .../object_storage/migrate_uploads_worker.rb  |  2 +-
 .../0_inject_enterprise_edition_module.rb     | 14 +++----
 ee/app/finders/security/findings_finder.rb    | 14 +++----
 .../vulnerabilities/scanners_resolver.rb      |  2 +-
 .../dashboard/projects/create_service.rb      |  2 +-
 .../ingestion/ingest_reports_service.rb       |  5 ++-
 .../tasks/ingest_vulnerability_statistics.rb  |  4 +-
 .../security/store_grouped_scans_service.rb   |  2 +-
 ee/lib/ee/container_registry/client.rb        |  2 +-
 ee/lib/ee/gitlab/ci/config_ee.rb              |  4 +-
 ee/lib/ee/gitlab/etag_caching/router/rails.rb |  2 +-
 .../gitlab/ingestion/bulk_insertable_task.rb  |  2 +-
 .../groups/participants_service_spec.rb       |  4 +-
 lib/peek/views/detailed_view.rb               |  2 +-
 lib/unnested_in_filters/rewriter.rb           | 14 ++++---
 .../email/trigger_email_notification_spec.rb  |  2 +-
 rubocop/cop/avoid_return_from_blocks.rb       |  2 +-
 rubocop/cop/gitlab/mark_used_feature_flags.rb |  2 +-
 rubocop/rubocop.rb                            |  2 +-
 tooling/lib/tooling/find_codeowners.rb        |  2 +-
 tooling/lib/tooling/test_map_packer.rb        |  4 +-
 tooling/quality/test_level.rb                 |  2 +-
 42 files changed, 78 insertions(+), 113 deletions(-)

diff --git a/.rubocop_todo/performance/method_object_as_block.yml b/.rubocop_todo/performance/method_object_as_block.yml
index 8524376772ee5..25efdeef023e7 100644
--- a/.rubocop_todo/performance/method_object_as_block.yml
+++ b/.rubocop_todo/performance/method_object_as_block.yml
@@ -1,45 +1,12 @@
 ---
 Performance/MethodObjectAsBlock:
   Exclude:
-    - 'app/controllers/concerns/metrics_dashboard.rb'
-    - 'app/controllers/concerns/requires_whitelisted_monitoring_client.rb'
-    - 'app/controllers/projects/merge_requests/drafts_controller.rb'
-    - 'app/finders/bulk_imports/entities_finder.rb'
-    - 'app/models/clusters/cluster.rb'
-    - 'app/models/concerns/prometheus_adapter.rb'
-    - 'app/models/concerns/token_authenticatable.rb'
-    - 'app/models/container_repository.rb'
-    - 'app/models/programming_language.rb'
-    - 'app/presenters/packages/detail/package_presenter.rb'
-    - 'app/services/ci/pipeline_processing/atomic_processing_service.rb'
-    - 'app/services/ci/prometheus_metrics/observe_histograms_service.rb'
-    - 'app/services/concerns/users/participable_service.rb'
-    - 'app/services/discussions/resolve_service.rb'
-    - 'app/services/jira/requests/projects/list_service.rb'
-    - 'app/services/merge_requests/refresh_service.rb'
-    - 'app/services/packages/debian/generate_distribution_service.rb'
-    - 'app/services/projects/container_repository/delete_tags_service.rb'
-    - 'app/workers/gitlab/import/stuck_import_job.rb'
-    - 'app/workers/object_storage/migrate_uploads_worker.rb'
-    - 'config/initializers/0_inject_enterprise_edition_module.rb'
-    - 'ee/app/finders/security/findings_finder.rb'
-    - 'ee/app/graphql/resolvers/vulnerabilities/scanners_resolver.rb'
-    - 'ee/app/services/dashboard/projects/create_service.rb'
-    - 'ee/app/services/security/ingestion/ingest_reports_service.rb'
-    - 'ee/app/services/security/ingestion/tasks/ingest_vulnerability_statistics.rb'
-    - 'ee/app/services/security/store_grouped_scans_service.rb'
-    - 'ee/lib/ee/container_registry/client.rb'
-    - 'ee/lib/ee/gitlab/ci/config_ee.rb'
-    - 'ee/lib/ee/gitlab/etag_caching/router/rails.rb'
-    - 'ee/lib/gitlab/ingestion/bulk_insertable_task.rb'
-    - 'ee/spec/services/groups/participants_service_spec.rb'
     - 'lib/api/helpers/packages/conan/api_helpers.rb'
     - 'lib/bulk_imports/pipeline.rb'
     - 'lib/container_registry/base_client.rb'
     - 'lib/container_registry/gitlab_api_client.rb'
     - 'lib/gitlab/ci/build/rules/rule.rb'
     - 'lib/gitlab/ci/build/rules/rule/clause/exists.rb'
-    - 'lib/gitlab/ci/config/external/mapper.rb'
     - 'lib/gitlab/ci/config/yaml/tags/resolver.rb'
     - 'lib/gitlab/ci/pipeline/chain/create_deployments.rb'
     - 'lib/gitlab/ci/pipeline/chain/ensure_environments.rb'
@@ -72,12 +39,6 @@ Performance/MethodObjectAsBlock:
     - 'lib/gitlab/sidekiq_queue.rb'
     - 'lib/gitlab/uploads/migration_helper.rb'
     - 'lib/gitlab/utils.rb'
-    - 'lib/peek/views/detailed_view.rb'
-    - 'lib/unnested_in_filters/rewriter.rb'
-    - 'qa/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb'
-    - 'rubocop/cop/avoid_return_from_blocks.rb'
-    - 'rubocop/cop/gitlab/mark_used_feature_flags.rb'
-    - 'rubocop/rubocop.rb'
     - 'spec/graphql/resolvers/concerns/caching_array_resolver_spec.rb'
     - 'spec/lib/api/entities/merge_request_basic_spec.rb'
     - 'spec/lib/gitlab/import_export/import_test_coverage_spec.rb'
@@ -87,6 +48,3 @@ Performance/MethodObjectAsBlock:
     - 'spec/support/helpers/migrations_helpers.rb'
     - 'spec/support/shared_examples/models/active_record_enum_shared_examples.rb'
     - 'spec/support_specs/helpers/stub_feature_flags_spec.rb'
-    - 'tooling/lib/tooling/find_codeowners.rb'
-    - 'tooling/lib/tooling/test_map_packer.rb'
-    - 'tooling/quality/test_level.rb'
diff --git a/app/controllers/concerns/metrics_dashboard.rb b/app/controllers/concerns/metrics_dashboard.rb
index d4e8e95e016c6..338c3af235b05 100644
--- a/app/controllers/concerns/metrics_dashboard.rb
+++ b/app/controllers/concerns/metrics_dashboard.rb
@@ -37,7 +37,7 @@ def metrics_dashboard
   def all_dashboards
     dashboard_finder
       .find_all_paths(project_for_dashboard)
-      .map(&method(:amend_dashboard))
+      .map { |dashboard| amend_dashboard(dashboard) }
   end
 
   def amend_dashboard(dashboard)
diff --git a/app/controllers/concerns/requires_whitelisted_monitoring_client.rb b/app/controllers/concerns/requires_whitelisted_monitoring_client.rb
index e98c1a308876d..ef3d281589aa6 100644
--- a/app/controllers/concerns/requires_whitelisted_monitoring_client.rb
+++ b/app/controllers/concerns/requires_whitelisted_monitoring_client.rb
@@ -22,7 +22,7 @@ def client_ip_whitelisted?
   end
 
   def ip_whitelist
-    @ip_whitelist ||= Settings.monitoring.ip_whitelist.map(&IPAddr.method(:new))
+    @ip_whitelist ||= Settings.monitoring.ip_whitelist.map { |ip| IPAddr.new(ip) }
   end
 
   def valid_token?
diff --git a/app/controllers/projects/merge_requests/drafts_controller.rb b/app/controllers/projects/merge_requests/drafts_controller.rb
index 74bb3ad1a63a6..fbf9348df15f2 100644
--- a/app/controllers/projects/merge_requests/drafts_controller.rb
+++ b/app/controllers/projects/merge_requests/drafts_controller.rb
@@ -145,7 +145,7 @@ def prepare_notes_for_rendering(notes)
     user_ids = notes.map(&:author_id)
     project.team.max_member_access_for_user_ids(user_ids)
 
-    notes.map(&method(:render_draft_note))
+    notes.map { |note| render_draft_note(note) }
   end
 
   def render_draft_note(note)
diff --git a/app/finders/bulk_imports/entities_finder.rb b/app/finders/bulk_imports/entities_finder.rb
index 78446f104d03d..2b6507cc7b5c9 100644
--- a/app/finders/bulk_imports/entities_finder.rb
+++ b/app/finders/bulk_imports/entities_finder.rb
@@ -12,9 +12,9 @@ def execute
       ::BulkImports::Entity
         .preload(:failures) # rubocop: disable CodeReuse/ActiveRecord
         .by_user_id(user.id)
-        .then(&method(:filter_by_bulk_import))
-        .then(&method(:filter_by_status))
-        .then(&method(:sort))
+        .then { |entities| filter_by_bulk_import(entities) }
+        .then { |entities| filter_by_status(entities) }
+        .then { |entities| sort(entities) }
     end
 
     private
diff --git a/app/models/clusters/cluster.rb b/app/models/clusters/cluster.rb
index 25d41d68b9e91..af6cafc4a621f 100644
--- a/app/models/clusters/cluster.rb
+++ b/app/models/clusters/cluster.rb
@@ -245,7 +245,7 @@ def calculate_reactive_cache
     end
 
     def persisted_applications
-      APPLICATIONS_ASSOCIATIONS.map(&method(:public_send)).compact
+      APPLICATIONS_ASSOCIATIONS.filter_map { |association_name| public_send(association_name) } # rubocop:disable GitlabSecurity/PublicSend
     end
 
     def applications
diff --git a/app/models/concerns/prometheus_adapter.rb b/app/models/concerns/prometheus_adapter.rb
index df29701711924..b85ac9ad4a6e1 100644
--- a/app/models/concerns/prometheus_adapter.rb
+++ b/app/models/concerns/prometheus_adapter.rb
@@ -49,7 +49,9 @@ def query(query_name, *args)
       query_class = query_klass_for(query_name)
       query_args = build_query_args(*args)
 
-      with_reactive_cache(query_class.name, *query_args, &query_class.method(:transform_reactive_result))
+      with_reactive_cache(query_class.name, *query_args) do |result|
+        query_class.transform_reactive_result(result)
+      end
     end
 
     # Cache metrics for specific environment
diff --git a/app/models/concerns/token_authenticatable.rb b/app/models/concerns/token_authenticatable.rb
index d91ec161b8421..cc3e8f174b3c5 100644
--- a/app/models/concerns/token_authenticatable.rb
+++ b/app/models/concerns/token_authenticatable.rb
@@ -86,7 +86,7 @@ def add_authentication_token_field(token_field, options = {})
 
     def token_authenticatable_module
       @token_authenticatable_module ||=
-        const_set(:TokenAuthenticatable, Module.new).tap(&method(:include))
+        const_set(:TokenAuthenticatable, Module.new).tap { |mod| include mod }
     end
   end
 end
diff --git a/app/models/container_repository.rb b/app/models/container_repository.rb
index db0fcd915b39e..a1079abe5fd6d 100644
--- a/app/models/container_repository.rb
+++ b/app/models/container_repository.rb
@@ -497,7 +497,7 @@ def delete_tags!
 
     digests = tags.map { |tag| tag.digest }.compact.to_set
 
-    digests.map(&method(:delete_tag_by_digest)).all?
+    digests.map { |digest| delete_tag_by_digest(digest) }.all?
   end
 
   def delete_tag_by_digest(digest)
diff --git a/app/models/programming_language.rb b/app/models/programming_language.rb
index 4156c6725183d..e3693046423a5 100644
--- a/app/models/programming_language.rb
+++ b/app/models/programming_language.rb
@@ -7,7 +7,7 @@ class ProgrammingLanguage < ApplicationRecord
   # Returns all programming languages which match any of the given names (case
   # insensitively).
   scope :with_name_case_insensitive, ->(*names) do
-    sanitized_names = names.map(&method(:sanitize_sql_like))
+    sanitized_names = names.map { |name| sanitize_sql_like(name) }
     where(arel_table[:name].matches_any(sanitized_names))
   end
 
diff --git a/app/presenters/packages/detail/package_presenter.rb b/app/presenters/packages/detail/package_presenter.rb
index b82b558f0cd0d..37d144d9e98a9 100644
--- a/app/presenters/packages/detail/package_presenter.rb
+++ b/app/presenters/packages/detail/package_presenter.rb
@@ -29,7 +29,7 @@ def detail_view
         package_detail[:nuget_metadatum] = @package.nuget_metadatum if @package.nuget_metadatum
         package_detail[:composer_metadatum] = @package.composer_metadatum if @package.composer_metadatum
         package_detail[:conan_metadatum] = @package.conan_metadatum if @package.conan_metadatum
-        package_detail[:dependency_links] = @package.dependency_links.map(&method(:build_dependency_links))
+        package_detail[:dependency_links] = @package.dependency_links.map { |link| build_dependency_links(link) }
         package_detail[:pipeline] = build_pipeline_info(@package.pipeline) if @package.pipeline
         package_detail[:pipelines] = build_pipeline_infos(@package.pipelines) if @package.pipelines.present?
 
diff --git a/app/services/ci/pipeline_processing/atomic_processing_service.rb b/app/services/ci/pipeline_processing/atomic_processing_service.rb
index 508d9c3f2e1b1..2b8eb104be5b6 100644
--- a/app/services/ci/pipeline_processing/atomic_processing_service.rb
+++ b/app/services/ci/pipeline_processing/atomic_processing_service.rb
@@ -42,13 +42,14 @@ def process!
       end
 
       def update_stages!
-        pipeline.stages.ordered.each(&method(:update_stage!))
+        pipeline.stages.ordered.each { |stage| update_stage!(stage) }
       end
 
       def update_stage!(stage)
         # Update processables for a given stage in bulk/slices
-        ids = @collection.created_processable_ids_for_stage_position(stage.position)
-        ids.in_groups_of(BATCH_SIZE, false, &method(:update_processables!))
+        @collection
+          .created_processable_ids_for_stage_position(stage.position)
+          .in_groups_of(BATCH_SIZE, false) { |ids| update_processables!(ids) }
 
         status = @collection.status_for_stage_position(stage.position)
         stage.set_status(status)
@@ -62,7 +63,7 @@ def update_processables!(ids)
           .ordered_by_stage
           .select_with_aggregated_needs(project)
 
-        created_processables.each(&method(:update_processable!))
+        created_processables.each { |processable| update_processable!(processable) }
       end
 
       def update_pipeline!
diff --git a/app/services/ci/prometheus_metrics/observe_histograms_service.rb b/app/services/ci/prometheus_metrics/observe_histograms_service.rb
index 6bd3d2121ba97..10b3d61247be0 100644
--- a/app/services/ci/prometheus_metrics/observe_histograms_service.rb
+++ b/app/services/ci/prometheus_metrics/observe_histograms_service.rb
@@ -27,7 +27,7 @@ def initialize(project, params)
       def execute
         params
           .fetch(:histograms, [])
-          .each(&method(:observe))
+          .each { |data| observe(data) }
 
         ServiceResponse.success(http_status: :created)
       end
diff --git a/app/services/concerns/users/participable_service.rb b/app/services/concerns/users/participable_service.rb
index 281b25080906c..1a03b444b6878 100644
--- a/app/services/concerns/users/participable_service.rb
+++ b/app/services/concerns/users/participable_service.rb
@@ -38,7 +38,7 @@ def groups
     end
 
     def render_participants_as_hash(participants)
-      participants.map(&method(:participant_as_hash))
+      participants.map { |participant| participant_as_hash(participant) }
     end
 
     def participant_as_hash(participant)
diff --git a/app/services/discussions/resolve_service.rb b/app/services/discussions/resolve_service.rb
index 54fc452ac8584..20b4ec0921f38 100644
--- a/app/services/discussions/resolve_service.rb
+++ b/app/services/discussions/resolve_service.rb
@@ -16,7 +16,7 @@ def initialize(project, user = nil, params = {})
     end
 
     def execute
-      discussions.each(&method(:resolve_discussion))
+      discussions.each { |discussion| resolve_discussion(discussion) }
 
       after_resolve_cleanup
     end
diff --git a/app/services/jira/requests/projects/list_service.rb b/app/services/jira/requests/projects/list_service.rb
index ac9e9bf0be9f2..09cab3c659bb3 100644
--- a/app/services/jira/requests/projects/list_service.rb
+++ b/app/services/jira/requests/projects/list_service.rb
@@ -29,7 +29,9 @@ def build_service_response(response)
         end
 
         def map_projects(response)
-          response.map { |v| JIRA::Resource::Project.build(client, v) }.select(&method(:match_query?))
+          response
+            .map { |v| JIRA::Resource::Project.build(client, v) }
+            .select { |jira_project| match_query?(jira_project) }
         end
 
         def match_query?(jira_project)
diff --git a/app/services/merge_requests/refresh_service.rb b/app/services/merge_requests/refresh_service.rb
index ce49d5dd43cae..6599b4732ff69 100644
--- a/app/services/merge_requests/refresh_service.rb
+++ b/app/services/merge_requests/refresh_service.rb
@@ -16,7 +16,7 @@ def execute(oldrev, newrev, ref)
 
     def refresh_merge_requests!
       # n + 1: https://gitlab.com/gitlab-org/gitlab-foss/issues/60289
-      Gitlab::GitalyClient.allow_n_plus_1_calls(&method(:find_new_commits))
+      Gitlab::GitalyClient.allow_n_plus_1_calls { find_new_commits }
 
       # Be sure to close outstanding MRs before reloading them to avoid generating an
       # empty diff during a manual merge
diff --git a/app/services/packages/debian/generate_distribution_service.rb b/app/services/packages/debian/generate_distribution_service.rb
index 9b313202400fc..faac3da023e84 100644
--- a/app/services/packages/debian/generate_distribution_service.rb
+++ b/app/services/packages/debian/generate_distribution_service.rb
@@ -106,7 +106,7 @@ def generate_component_file(component, component_file_type, architecture, packag
                                   .with_debian_architecture_name(architecture&.name)
                                   .with_debian_file_type(package_file_type)
                                   .find_each
-                                  .map(&method(:package_stanza_from_fields))
+                                  .map { |package_file| package_stanza_from_fields(package_file) }
         reuse_or_create_component_file(component, component_file_type, architecture, paragraphs.join("\n"))
       end
 
diff --git a/app/services/projects/container_repository/delete_tags_service.rb b/app/services/projects/container_repository/delete_tags_service.rb
index a3e533c670e6a..9378bb313605a 100644
--- a/app/services/projects/container_repository/delete_tags_service.rb
+++ b/app/services/projects/container_repository/delete_tags_service.rb
@@ -22,8 +22,9 @@ def execute(container_repository)
       private
 
       def delete_tags
-        delete_service.execute
-                      .tap(&method(:log_response))
+        delete_service
+          .execute
+          .tap { |response| log_response(response) }
       end
 
       def delete_service
diff --git a/app/workers/gitlab/import/stuck_import_job.rb b/app/workers/gitlab/import/stuck_import_job.rb
index efbea7d8133b4..7278106efb991 100644
--- a/app/workers/gitlab/import/stuck_import_job.rb
+++ b/app/workers/gitlab/import/stuck_import_job.rb
@@ -37,7 +37,7 @@ def track_metrics(with_jid_count, without_jid_count)
 
       def mark_imports_without_jid_as_failed!
         enqueued_import_states_without_jid
-          .each(&method(:mark_as_failed))
+          .each { |import_state| mark_as_failed(import_state) }
           .size
       end
 
@@ -61,7 +61,7 @@ def mark_imports_with_jid_as_failed!
         )
 
         completed_import_states
-          .each(&method(:mark_as_failed))
+          .each { |import_state| mark_as_failed(import_state) }
           .size
       end
 
diff --git a/app/workers/object_storage/migrate_uploads_worker.rb b/app/workers/object_storage/migrate_uploads_worker.rb
index 3e681c3f111f0..3fe4231bb55fd 100644
--- a/app/workers/object_storage/migrate_uploads_worker.rb
+++ b/app/workers/object_storage/migrate_uploads_worker.rb
@@ -99,7 +99,7 @@ def retrieve_applicable_args!(args)
     end
 
     def migrate(uploads)
-      uploads.map(&method(:process_upload))
+      uploads.map { |upload| process_upload(upload) }
     end
 
     def process_upload(upload)
diff --git a/config/initializers/0_inject_enterprise_edition_module.rb b/config/initializers/0_inject_enterprise_edition_module.rb
index cc67e384d83f1..b7e204d55b214 100644
--- a/config/initializers/0_inject_enterprise_edition_module.rb
+++ b/config/initializers/0_inject_enterprise_edition_module.rb
@@ -10,17 +10,15 @@ def prepend_mod_with(constant_name, namespace: Object, with_descendants: false)
   end
 
   def extend_mod_with(constant_name, namespace: Object)
-    each_extension_for(
-      constant_name,
-      namespace,
-      &method(:extend))
+    each_extension_for(constant_name, namespace) do |constant|
+      extend constant
+    end
   end
 
   def include_mod_with(constant_name, namespace: Object)
-    each_extension_for(
-      constant_name,
-      namespace,
-      &method(:include))
+    each_extension_for(constant_name, namespace) do |constant|
+      include constant
+    end
   end
 
   def prepend_mod(with_descendants: false)
diff --git a/ee/app/finders/security/findings_finder.rb b/ee/app/finders/security/findings_finder.rb
index 61b6cc7288a92..8c12d51c82a5d 100644
--- a/ee/app/finders/security/findings_finder.rb
+++ b/ee/app/finders/security/findings_finder.rb
@@ -44,7 +44,7 @@ def execute
     delegate :project, :has_security_findings?, to: :pipeline, private: true
 
     def findings
-      security_findings.map(&method(:build_vulnerability_finding))
+      security_findings.map { |finding| build_vulnerability_finding(finding) }
     end
 
     def report_finding_for(security_finding)
@@ -102,12 +102,12 @@ def all_security_findings
               .latest
               .page(page)
               .per(per_page)
-              .then(&method(:by_uuid))
-              .then(&method(:by_confidence_levels))
-              .then(&method(:by_report_types))
-              .then(&method(:by_severity_levels))
-              .then(&method(:by_scanner_external_ids))
-              .then(&method(:by_state))
+              .then { |relation| by_uuid(relation) }
+              .then { |relation| by_confidence_levels(relation) }
+              .then { |relation| by_report_types(relation) }
+              .then { |relation| by_severity_levels(relation) }
+              .then { |relation| by_scanner_external_ids(relation) }
+              .then { |relation| by_state(relation) }
     end
 
     def per_page
diff --git a/ee/app/graphql/resolvers/vulnerabilities/scanners_resolver.rb b/ee/app/graphql/resolvers/vulnerabilities/scanners_resolver.rb
index d1bc28b64584d..ac16ddab48e04 100644
--- a/ee/app/graphql/resolvers/vulnerabilities/scanners_resolver.rb
+++ b/ee/app/graphql/resolvers/vulnerabilities/scanners_resolver.rb
@@ -11,7 +11,7 @@ def resolve(**args)
         vulnerable
           .vulnerability_scanners
           .with_report_type
-          .map(&Representation::VulnerabilityScannerEntry.method(:new))
+          .map { |entry| Representation::VulnerabilityScannerEntry.new(entry) }
       end
     end
   end
diff --git a/ee/app/services/dashboard/projects/create_service.rb b/ee/app/services/dashboard/projects/create_service.rb
index e59fec9b28758..e893d0abec2c0 100644
--- a/ee/app/services/dashboard/projects/create_service.rb
+++ b/ee/app/services/dashboard/projects/create_service.rb
@@ -64,7 +64,7 @@ def find_invalid_ids(projects_to_add, project_ids)
       end
 
       def add_projects(projects)
-        projects.partition(&method(:add_project))
+        projects.partition { |project| add_project(project) }
       end
 
       def add_project(project)
diff --git a/ee/app/services/security/ingestion/ingest_reports_service.rb b/ee/app/services/security/ingestion/ingest_reports_service.rb
index 86d296261f9e8..97b7aea7d863d 100644
--- a/ee/app/services/security/ingestion/ingest_reports_service.rb
+++ b/ee/app/services/security/ingestion/ingest_reports_service.rb
@@ -28,8 +28,9 @@ def execute
       delegate :project, to: :pipeline, private: true
 
       def store_reports
-        latest_security_scans.flat_map(&method(:ingest))
-                             .then(&method(:mark_resolved_vulnerabilities))
+        latest_security_scans
+          .flat_map { |scan| ingest(scan) }
+          .then { |ids| mark_resolved_vulnerabilities(ids) }
       end
 
       def latest_security_scans
diff --git a/ee/app/services/security/ingestion/tasks/ingest_vulnerability_statistics.rb b/ee/app/services/security/ingestion/tasks/ingest_vulnerability_statistics.rb
index a1452e508ed2a..ea09605da9762 100644
--- a/ee/app/services/security/ingestion/tasks/ingest_vulnerability_statistics.rb
+++ b/ee/app/services/security/ingestion/tasks/ingest_vulnerability_statistics.rb
@@ -67,8 +67,8 @@ def update_values
         end
 
         def sql_safe_severity_counts
-          @sql_safe_severity_counts ||= severity_counts.transform_keys(&method(:quote_column_name))
-                                                       .transform_values(&method(:quote))
+          @sql_safe_severity_counts ||= severity_counts.transform_keys { |key| quote_column_name(key) }
+                                                       .transform_values { |value| quote(value) }
         end
 
         def severity_counts
diff --git a/ee/app/services/security/store_grouped_scans_service.rb b/ee/app/services/security/store_grouped_scans_service.rb
index f187bee2f976e..ad0e5cea8b2b2 100644
--- a/ee/app/services/security/store_grouped_scans_service.rb
+++ b/ee/app/services/security/store_grouped_scans_service.rb
@@ -44,7 +44,7 @@ def report_type
     end
 
     def sorted_artifacts
-      @sorted_artifacts ||= artifacts.each(&method(:prepare_report_for)).sort do |a, b|
+      @sorted_artifacts ||= artifacts.each { |artifact| prepare_report_for(artifact) }.sort do |a, b|
         report_a = a.security_report
         report_b = b.security_report
 
diff --git a/ee/lib/ee/container_registry/client.rb b/ee/lib/ee/container_registry/client.rb
index ba04eccdd7e59..5840d5334073e 100644
--- a/ee/lib/ee/container_registry/client.rb
+++ b/ee/lib/ee/container_registry/client.rb
@@ -78,7 +78,7 @@ def get_upload_url(name, digest)
       def faraday_raw
         strong_memoize(:faraday_raw) do
           faraday_base do |conn|
-            initialize_connection(conn, options, &method(:accept_raw_manifest))
+            initialize_connection(conn, options) { |connection| accept_raw_manifest(connection) }
           end
         end
       end
diff --git a/ee/lib/ee/gitlab/ci/config_ee.rb b/ee/lib/ee/gitlab/ci/config_ee.rb
index 3e7ac72903441..c08a2ddb77c8b 100644
--- a/ee/lib/ee/gitlab/ci/config_ee.rb
+++ b/ee/lib/ee/gitlab/ci/config_ee.rb
@@ -16,8 +16,8 @@ def rescue_errors
         override :build_config
         def build_config(config)
           super
-            .then(&method(:process_required_includes))
-            .then(&method(:process_security_orchestration_policy_includes))
+            .then { |config| process_required_includes(config) }
+            .then { |config| process_security_orchestration_policy_includes(config) }
         end
 
         def process_required_includes(config)
diff --git a/ee/lib/ee/gitlab/etag_caching/router/rails.rb b/ee/lib/ee/gitlab/etag_caching/router/rails.rb
index 23250b31d7d8b..f03c9657cfc29 100644
--- a/ee/lib/ee/gitlab/etag_caching/router/rails.rb
+++ b/ee/lib/ee/gitlab/etag_caching/router/rails.rb
@@ -29,7 +29,7 @@ def all_routes
             end
 
             def ee_routes
-              EE_ROUTE_DEFINITONS.map(&method(:build_rails_route))
+              EE_ROUTE_DEFINITONS.map { |route_definition| build_rails_route(route_definition) }
             end
           end
         end
diff --git a/ee/lib/gitlab/ingestion/bulk_insertable_task.rb b/ee/lib/gitlab/ingestion/bulk_insertable_task.rb
index 75eedfe839ae3..71455b68745e5 100644
--- a/ee/lib/gitlab/ingestion/bulk_insertable_task.rb
+++ b/ee/lib/gitlab/ingestion/bulk_insertable_task.rb
@@ -93,7 +93,7 @@ def bulk_insert
       end
 
       def bulk_upsert
-        klass.bulk_upsert!(insert_objects, unique_by: unique_by, returns: uses, &method(:slice_attributes))
+        klass.bulk_upsert!(insert_objects, unique_by: unique_by, returns: uses) { |attr| slice_attributes(attr) }
       end
 
       def after_ingest
diff --git a/ee/spec/services/groups/participants_service_spec.rb b/ee/spec/services/groups/participants_service_spec.rb
index 7981548ff5ca9..bda7337fb4342 100644
--- a/ee/spec/services/groups/participants_service_spec.rb
+++ b/ee/spec/services/groups/participants_service_spec.rb
@@ -44,7 +44,7 @@ def user_to_autocompletable(user)
       service.instance_variable_set(:@noteable, epic)
       result = service.execute(epic)
 
-      expected_users = (@users + [user]).map(&method(:user_to_autocompletable))
+      expected_users = (@users + [user]).map { |user| user_to_autocompletable(user) }
 
       expect(result).to include(*expected_users)
     end
@@ -67,7 +67,7 @@ def user_to_autocompletable(user)
       result = service.execute(epic)
 
       expected_users = (group.self_and_hierarchy.flat_map(&:users) + subproject.users)
-        .map(&method(:user_to_autocompletable))
+        .map { |user| user_to_autocompletable(user) }
 
       expect(expected_users.count).to eq(5)
       expect(result).to include(*expected_users)
diff --git a/lib/peek/views/detailed_view.rb b/lib/peek/views/detailed_view.rb
index 1301c6aa6fd1a..c37c6bb8561ee 100644
--- a/lib/peek/views/detailed_view.rb
+++ b/lib/peek/views/detailed_view.rb
@@ -33,7 +33,7 @@ def calls
       def details
         call_details
           .sort { |a, b| b[:duration] <=> a[:duration] }
-          .map(&method(:format_call_details))
+          .map { |call| format_call_details(call) }
       end
 
       def warnings
diff --git a/lib/unnested_in_filters/rewriter.rb b/lib/unnested_in_filters/rewriter.rb
index ed1e4ce2d9fda..9eb1c0b8273d2 100644
--- a/lib/unnested_in_filters/rewriter.rb
+++ b/lib/unnested_in_filters/rewriter.rb
@@ -45,7 +45,7 @@ def serialized_arel_value
 
       def serialized_array_values
         values.map(&:value)
-              .then { array_type.serialize(_1) }
+              .then { |value| array_type.serialize(value) }
               .then { |array| quote(array) }
       end
 
@@ -58,7 +58,7 @@ def sql_type
       end
 
       def column
-        columns.find { _1.name == attribute }
+        columns.find { |column| column.name == attribute }
       end
 
       def unprepared_statement_collector
@@ -180,12 +180,12 @@ def log_rewrite
     end
 
     def filter_query
-      model.from(from).then { add_relation_defaults(_1) }
+      model.from(from).then { |relation| add_relation_defaults(relation) }
     end
 
     def index_only_filter_query
       model.where(model.primary_key => filter_query.select(model.primary_key))
-           .then { add_relation_defaults(_1) }
+           .then { |relation| add_relation_defaults(relation) }
     end
 
     def add_relation_defaults(new_relation)
@@ -229,7 +229,9 @@ def model_column_names
     # Actively filter any nodes that don't belong to the primary queried table to prevent sql type resolution issues
     # Context: https://gitlab.com/gitlab-org/gitlab/-/issues/370271#note_1151019824
     def arel_in_nodes
-      where_clause_arel_nodes.select(&method(:in_predicate?)).select { model_column_names.include?(_1.left.name) }
+      where_clause_arel_nodes
+        .select { |arel_node| in_predicate?(arel_node) }
+        .select { |arel_node| model_column_names.include?(arel_node.left.name) }
     end
 
     # `ActiveRecord::WhereClause#ast` is returning a single node when there is only one
@@ -270,7 +272,7 @@ def filter_attributes
     end
 
     def order_attributes
-      @order_attributes ||= order_values.flat_map(&method(:extract_column_name))
+      @order_attributes ||= order_values.flat_map { |order_value| extract_column_name(order_value) }
     end
 
     def extract_column_name(order_value)
diff --git a/qa/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb b/qa/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb
index b70590e65c8f5..4e9d74a51179b 100644
--- a/qa/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb
+++ b/qa/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb
@@ -45,7 +45,7 @@ def mailhog_json
           mailhog_data = JSON.parse(mailhog_response.body)
           total = mailhog_data.dig('total')
           subjects = mailhog_data.dig('items')
-            .map(&method(:mailhog_item_subject))
+            .map { |item| mailhog_item_subject(item) }
 
           Runtime::Logger.debug(%Q[Total number of emails: #{total}])
           Runtime::Logger.debug(%Q[Subjects:\n#{subjects.join("\n")}])
diff --git a/rubocop/cop/avoid_return_from_blocks.rb b/rubocop/cop/avoid_return_from_blocks.rb
index 61edfd0a789e5..c6a7a87c548ba 100644
--- a/rubocop/cop/avoid_return_from_blocks.rb
+++ b/rubocop/cop/avoid_return_from_blocks.rb
@@ -32,7 +32,7 @@ def on_block(node)
         return unless top_block?(node)
 
         block_body.each_node(:return) do |return_node|
-          next if parent_blocks(node, return_node).all?(&method(:whitelisted?))
+          next if parent_blocks(node, return_node).all? { |block_node| whitelisted?(block_node) }
 
           add_offense(return_node)
         end
diff --git a/rubocop/cop/gitlab/mark_used_feature_flags.rb b/rubocop/cop/gitlab/mark_used_feature_flags.rb
index d1722a47c8ade..ffd59c8fffcf6 100644
--- a/rubocop/cop/gitlab/mark_used_feature_flags.rb
+++ b/rubocop/cop/gitlab/mark_used_feature_flags.rb
@@ -187,7 +187,7 @@ def trackable_flag?(node)
         # Marking all event's feature flags as used as Gitlab::UsageDataCounters::HLLRedisCounter.track_event{,context}
         # is mostly used with dynamic event name.
         def track_usage_data_counters_known_events!
-          usage_data_counters_known_event_feature_flags.each(&method(:save_used_feature_flag))
+          usage_data_counters_known_event_feature_flags.each { |feature_flag_name| save_used_feature_flag(feature_flag_name) }
         end
 
         def usage_data_counters_known_event_feature_flags
diff --git a/rubocop/rubocop.rb b/rubocop/rubocop.rb
index 6b5491b27fc25..c17ecf054cea1 100644
--- a/rubocop/rubocop.rb
+++ b/rubocop/rubocop.rb
@@ -7,6 +7,6 @@
 require_relative 'ext/variable_force'
 
 # Auto-require all cops under `rubocop/cop/**/*.rb`
-Dir[File.join(__dir__, 'cop', '**', '*.rb')].sort.each(&method(:require))
+Dir[File.join(__dir__, 'cop', '**', '*.rb')].sort.each { |file| require file }
 
 # rubocop:enable Naming/FileName
diff --git a/tooling/lib/tooling/find_codeowners.rb b/tooling/lib/tooling/find_codeowners.rb
index 6a90f86eeccb3..cc37d4db1ec70 100644
--- a/tooling/lib/tooling/find_codeowners.rb
+++ b/tooling/lib/tooling/find_codeowners.rb
@@ -89,7 +89,7 @@ def normalize_pattern(pattern)
     end
 
     def consolidate_paths(matched_files)
-      matched_files.group_by(&File.method(:dirname)).flat_map do |dir, files|
+      matched_files.group_by { |file| File.dirname(file) }.flat_map do |dir, files|
         # First line is the dir itself
         if find_dir_maxdepth_1(dir).lines.drop(1).sort == files.sort
           "#{dir}\n"
diff --git a/tooling/lib/tooling/test_map_packer.rb b/tooling/lib/tooling/test_map_packer.rb
index 151ce88111f48..15191e35c54f2 100644
--- a/tooling/lib/tooling/test_map_packer.rb
+++ b/tooling/lib/tooling/test_map_packer.rb
@@ -6,11 +6,11 @@ class TestMapPacker
     MARKER = 1
 
     def pack(map)
-      map.transform_values(&method(:create_tree_from_tests))
+      map.transform_values { |tests| create_tree_from_tests(tests) }
     end
 
     def unpack(compact_map)
-      compact_map.transform_values(&method(:retrieve_tests_from_tree))
+      compact_map.transform_values { |tree| retrieve_tests_from_tree(tree) }
     end
 
     private
diff --git a/tooling/quality/test_level.rb b/tooling/quality/test_level.rb
index 29da7dddd039f..7e164d9ecd5fe 100644
--- a/tooling/quality/test_level.rb
+++ b/tooling/quality/test_level.rb
@@ -116,7 +116,7 @@ def prefixes_for_pattern
     def prefixes_for_regex
       return '' if prefixes.empty?
 
-      regex_prefix = prefixes.map(&Regexp.method(:escape)).join('|')
+      regex_prefix = prefixes.map { |prefix| Regexp.escape(prefix) }.join('|')
 
       "(#{regex_prefix})"
     end
-- 
GitLab