summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMario de la Ossa <mdelaossa@gitlab.com>2018-03-06 21:16:55 +0000
committerSean McGivern <sean@mcgivern.me.uk>2018-03-06 21:16:55 +0000
commitf9d61717cfa1956fd75a3c9bc4577172affd730e (patch)
tree960dea31740bb82de98b852a5c1f8f088d4d1ad4
parent135ef031024ea95d3dc014c5f0ef46983372f2f3 (diff)
downloadgitlab-ce-f9d61717cfa1956fd75a3c9bc4577172affd730e.tar.gz
Gitlab::Utils - backport `.ensure_array_from_string` from EE
-rw-r--r--lib/gitlab/utils.rb8
-rw-r--r--spec/lib/gitlab/utils_spec.rb16
2 files changed, 23 insertions, 1 deletions
diff --git a/lib/gitlab/utils.rb b/lib/gitlab/utils.rb
index fa22f0e37b2..dc9391f32cf 100644
--- a/lib/gitlab/utils.rb
+++ b/lib/gitlab/utils.rb
@@ -67,5 +67,13 @@ module Gitlab
nil
end
+
+ # Used in EE
+ # Accepts either an Array or a String and returns an array
+ def ensure_array_from_string(string_or_array)
+ return string_or_array if string_or_array.is_a?(Array)
+
+ string_or_array.split(',').map(&:strip)
+ end
end
end
diff --git a/spec/lib/gitlab/utils_spec.rb b/spec/lib/gitlab/utils_spec.rb
index bda239b7871..71a743495a2 100644
--- a/spec/lib/gitlab/utils_spec.rb
+++ b/spec/lib/gitlab/utils_spec.rb
@@ -1,7 +1,7 @@
require 'spec_helper'
describe Gitlab::Utils do
- delegate :to_boolean, :boolean_to_yes_no, :slugify, :random_string, :which, to: :described_class
+ delegate :to_boolean, :boolean_to_yes_no, :slugify, :random_string, :which, :ensure_array_from_string, to: :described_class
describe '.slugify' do
{
@@ -83,4 +83,18 @@ describe Gitlab::Utils do
expect(which('sh', 'PATH' => '/bin')).to eq('/bin/sh')
end
end
+
+ describe '.ensure_array_from_string' do
+ it 'returns the same array if given one' do
+ arr = ['a', 4, true, { test: 1 }]
+
+ expect(ensure_array_from_string(arr)).to eq(arr)
+ end
+
+ it 'turns comma-separated strings into arrays' do
+ str = 'seven, eight, 9, 10'
+
+ expect(ensure_array_from_string(str)).to eq(%w[seven eight 9 10])
+ end
+ end
end