gitlab-org--gitlab-foss/lib/gitlab/ci/config/entry/policy.rb
2017-08-25 09:49:18 +02:00

35 lines
838 B
Ruby

module Gitlab
module Ci
class Config
module Entry
##
# Entry that represents a trigger policy for the job.
#
class Policy < Simplifiable
strategy :RefsPolicy, if: -> (config) { config.is_a?(Array) }
strategy :ExpressionsPolicy, if: -> (config) { config.is_a?(Hash) }
class RefsPolicy < Entry::Node
include Entry::Validatable
validations do
validates :config, array_of_strings_or_regexps: true
end
def value
{ refs: @config }
end
end
class ExpressionsPolicy < Entry::Node
include Entry::Validatable
validations do
validates :config, type: Hash
end
end
end
end
end
end
end