diff options
author | Ash McKenzie <amckenzie@gitlab.com> | 2019-09-09 04:07:46 +0000 |
---|---|---|
committer | Ash McKenzie <amckenzie@gitlab.com> | 2019-09-09 04:07:46 +0000 |
commit | 154f474bca2c432cdd2778de111a94191b537aa4 (patch) | |
tree | 8794c9c1ef4576a9e6855bda2dd9932a1fb9fbd0 /lib | |
parent | 1eeee0dd246f271f2eca140505758298bc74c930 (diff) | |
parent | 4aa4449ef5109eb0784f63fe1b7a3fc15bea8497 (diff) | |
download | gitlab-ce-154f474bca2c432cdd2778de111a94191b537aa4.tar.gz |
Merge branch 'reduce-parse-options-complexity' into 'master'
Refactor parse_options() in push_options.rb
Closes #67091
See merge request gitlab-org/gitlab-ce!32756
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/push_options.rb | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/lib/gitlab/push_options.rb b/lib/gitlab/push_options.rb index a2296d265cd..93c0f3132d0 100644 --- a/lib/gitlab/push_options.rb +++ b/lib/gitlab/push_options.rb @@ -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 |