Commit 32a90100 authored by Stan Hu's avatar Stan Hu
Browse files

Enable Rubocop Performance/InefficientHashSearch

When used with a Hash, `.keys.include?` is bad because:

1. It performs a O(n) search instead of the efficient `.has_key?`
2. It clones all keys into separate array.

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/64975
parent 0b6fa6071465
......@@ -262,17 +262,6 @@ Naming/HeredocDelimiterNaming:
Naming/RescuedExceptionsVariableName:
Enabled: false
# Offense count: 6
# Cop supports --auto-correct.
Performance/InefficientHashSearch:
Exclude:
- 'app/controllers/concerns/sessionless_authentication.rb'
- 'app/models/note.rb'
- 'app/models/user_preference.rb'
- 'ee/app/models/ee/project.rb'
- 'lib/gitlab/import_export/members_mapper.rb'
- 'qa/spec/spec_helper.rb'
# Offense count: 3
# Cop supports --auto-correct.
Performance/ReverseEach:
......
......@@ -13,7 +13,7 @@ def authenticate_sessionless_user!(request_format)
end
def sessionless_user?
current_user && !session.keys.include?('warden.user.user.key')
current_user && !session.key?('warden.user.user.key')
end
def sessionless_sign_in(user)
......
......@@ -292,7 +292,7 @@ def noteable_type=(noteable_type)
end
def special_role=(role)
raise "Role is undefined, #{role} not found in #{SpecialRole.values}" unless SpecialRole.values.include?(role)
raise "Role is undefined, #{role} not found in #{SpecialRole.values}" unless SpecialRole.value?(role)
@special_role = role
end
......
......@@ -26,7 +26,7 @@ def notes_filters
def set_notes_filter(filter_id, issuable)
# No need to update the column if the value is already set.
if filter_id && NOTES_FILTERS.values.include?(filter_id)
if filter_id && NOTES_FILTERS.value?(filter_id)
field = notes_filter_field_for(issuable)
self[field] = filter_id
......
......@@ -46,7 +46,7 @@
if ENV['CI']
config.around do |example|
retry_times = example.metadata.keys.include?(:quarantine) ? 1 : 2
retry_times = example.metadata.key?(:quarantine) ? 1 : 2
example.run_with_retry retry: retry_times
end
end
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment