diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-09-14 19:52:28 +0200 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-09-19 10:07:12 +0200 |
commit | ba5bd3d1d64b1f56c39e4ddd03270de6820b2f7b (patch) | |
tree | 7d85a4c4c4b7cf74d7cf1e973a0a5991fb5007d7 /lib/gitlab/ci/config/node/environment.rb | |
parent | a4638dddf22797f46d72ea7b73c8453ba68645ab (diff) | |
download | gitlab-ce-ba5bd3d1d64b1f56c39e4ddd03270de6820b2f7b.tar.gz |
Add new CI configuration entry for the environment
Diffstat (limited to 'lib/gitlab/ci/config/node/environment.rb')
-rw-r--r-- | lib/gitlab/ci/config/node/environment.rb | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/lib/gitlab/ci/config/node/environment.rb b/lib/gitlab/ci/config/node/environment.rb index 6f04180039e..e2fb1ab131e 100644 --- a/lib/gitlab/ci/config/node/environment.rb +++ b/lib/gitlab/ci/config/node/environment.rb @@ -3,28 +3,45 @@ module Gitlab class Config module Node ## - # Entry that represents environment variables. + # Entry that represents an environment. # class Environment < Entry include Validatable validations do - include LegacyValidationHelpers + validates :name, presence: true validate do - unless string_or_array_of_strings?(config) - errors.add(:config, - 'should be a string or an array of strings') + unless hash? || string? + errors.add(:config, 'should be a hash or a string') end end + end + + def hash? + @config.is_a?(Hash) + end + + def string? + @config.is_a?(String) + end - def string_or_array_of_strings?(field) - validate_string(field) || validate_array_of_strings(field) + def name + case + when string? then @config + when hash? then @config[:name] end end + def url + @config[:url] if hash? + end + def value - Array(@config) + case + when string? then { name: @config } + when hash? then @config + end end end end |