Refactor parse_options() in push_options.rb

This improves code quality by reducing Cognitive Complexity.

This fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/67091
This commit is contained in:
Christian Couder 2019-09-06 14:57:10 +02:00
parent ec326ecf91
commit 4aa4449ef5
1 changed files with 12 additions and 8 deletions

View File

@ -56,19 +56,23 @@ module Gitlab
next if [namespace, key].any?(&:nil?)
options[namespace] ||= HashWithIndifferentAccess.new
if option_multi_value?(namespace, key)
options[namespace][key] ||= HashWithIndifferentAccess.new(0)
options[namespace][key][value] += 1
else
options[namespace][key] = value
end
store_option_info(options, namespace, key, value)
end
options
end
def store_option_info(options, namespace, key, value)
options[namespace] ||= HashWithIndifferentAccess.new
if option_multi_value?(namespace, key)
options[namespace][key] ||= HashWithIndifferentAccess.new(0)
options[namespace][key][value] += 1
else
options[namespace][key] = value
end
end
def option_multi_value?(namespace, key)
MULTI_VALUE_OPTIONS.any? { |arr| arr == [namespace, key] }
end