diff --git a/lib/gitlab/ci/config/node/configurable.rb b/lib/gitlab/ci/config/node/configurable.rb index 7b428c1362..374ff71d0f 100644 --- a/lib/gitlab/ci/config/node/configurable.rb +++ b/lib/gitlab/ci/config/node/configurable.rb @@ -19,13 +19,7 @@ module Gitlab included do validations do - validate :hash_config_value - - def hash_config_value - unless self.config.is_a?(Hash) - errors.add(:config, 'should be a configuration entry hash') - end - end + validates :config, hash: true end end diff --git a/lib/gitlab/ci/config/node/validators.rb b/lib/gitlab/ci/config/node/validators.rb index 36d48394a8..dc9cdb9a22 100644 --- a/lib/gitlab/ci/config/node/validators.rb +++ b/lib/gitlab/ci/config/node/validators.rb @@ -12,6 +12,14 @@ module Gitlab end end end + + class HashValidator < ActiveModel::EachValidator + def validate_each(record, attribute, value) + unless value.is_a?(Hash) + record.errors.add(attribute, 'should be a configuration entry hash') + end + end + end end end end diff --git a/spec/lib/gitlab/ci/config/node/validators/array_of_strings_validator_spec.rb b/spec/lib/gitlab/ci/config/node/validators/array_of_strings_validator_spec.rb deleted file mode 100644 index e69de29bb2..0000000000