Module: Gitlab::Config::Entry::Validatable

Extended by:
ActiveSupport::Concern
Included in:
Gitlab::Ci::Config::Entry::AllowFailure, Gitlab::Ci::Config::Entry::Artifacts, Gitlab::Ci::Config::Entry::Cache, Gitlab::Ci::Config::Entry::Caches, Gitlab::Ci::Config::Entry::Commands, Gitlab::Ci::Config::Entry::Coverage, Gitlab::Ci::Config::Entry::Files, Gitlab::Ci::Config::Entry::Hidden, Gitlab::Ci::Config::Entry::IdToken, Gitlab::Ci::Config::Entry::Include, Gitlab::Ci::Config::Entry::Include::Rules, Gitlab::Ci::Config::Entry::Include::Rules::Rule, Gitlab::Ci::Config::Entry::Includes, Gitlab::Ci::Config::Entry::Inherit::Default::ArrayStrategy, Gitlab::Ci::Config::Entry::Inherit::Variables::ArrayStrategy, Gitlab::Ci::Config::Entry::Jobs, Gitlab::Ci::Config::Entry::Key::SimpleKey, Gitlab::Ci::Config::Entry::Kubernetes, Gitlab::Ci::Config::Entry::Need::CrossPipelineDependency, Gitlab::Ci::Config::Entry::Need::JobString, Gitlab::Ci::Config::Entry::Needs, Gitlab::Ci::Config::Entry::Paths, Gitlab::Ci::Config::Entry::Policy::ComplexPolicy, Gitlab::Ci::Config::Entry::Policy::RefsPolicy, Gitlab::Ci::Config::Entry::Port, Gitlab::Ci::Config::Entry::Ports, Gitlab::Ci::Config::Entry::Prefix, Gitlab::Ci::Config::Entry::Product::Matrix, Gitlab::Ci::Config::Entry::Product::Parallel::ParallelBuilds, Gitlab::Ci::Config::Entry::Product::Variables, Gitlab::Ci::Config::Entry::Publish, Gitlab::Ci::Config::Entry::PullPolicy, Gitlab::Ci::Config::Entry::Release, Gitlab::Ci::Config::Entry::Release::Assets, Gitlab::Ci::Config::Entry::Release::Assets::Link, Gitlab::Ci::Config::Entry::Release::Assets::Links, Gitlab::Ci::Config::Entry::Reports, Gitlab::Ci::Config::Entry::Reports::CoverageReport, Gitlab::Ci::Config::Entry::Retry::FullRetry, Gitlab::Ci::Config::Entry::Retry::SimpleRetry, Gitlab::Ci::Config::Entry::Rules, Gitlab::Ci::Config::Entry::Rules::Rule, Gitlab::Ci::Config::Entry::Rules::Rule::Changes::ComplexChanges, Gitlab::Ci::Config::Entry::Rules::Rule::Changes::SimpleChanges, Gitlab::Ci::Config::Entry::Services, Gitlab::Ci::Config::Entry::Stage, Gitlab::Ci::Config::Entry::Stages, Gitlab::Ci::Config::Entry::Tags, Gitlab::Ci::Config::Entry::Timeout, Gitlab::Ci::Config::Entry::Trigger::ComplexTrigger::CrossProjectTrigger, Gitlab::Ci::Config::Entry::Trigger::ComplexTrigger::SameProjectTrigger, Gitlab::Ci::Config::Entry::Trigger::Forward, Gitlab::Ci::Config::Entry::Trigger::SimpleTrigger, Gitlab::Ci::Config::Entry::Variable::ComplexVariable, Gitlab::Ci::Config::Entry::Variable::SimpleVariable, Gitlab::Ci::Config::Entry::Variables, Gitlab::Ci::Config::Entry::Workflow, Gitlab::Ci::Config::Header::Input, ArrayOfStrings, Boolean, ComposableArray, ComposableHash
Defined in:
lib/gitlab/config/entry/validatable.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(node) ⇒ Object



9
10
11
12
13
# File 'lib/gitlab/config/entry/validatable.rb', line 9

def self.included(node)
  node.with_aspect -> do
    validate(:new)
  end
end

Instance Method Details

#compose!(deps = nil, &blk) ⇒ Object



23
24
25
26
27
# File 'lib/gitlab/config/entry/validatable.rb', line 23

def compose!(deps = nil, &blk)
  super(deps, &blk)

  validate(:composed)
end

#errorsObject



29
30
31
# File 'lib/gitlab/config/entry/validatable.rb', line 29

def errors
  validator.messages + descendants.flat_map(&:errors)
end

#validate(context = nil) ⇒ Object



19
20
21
# File 'lib/gitlab/config/entry/validatable.rb', line 19

def validate(context = nil)
  validator.validate(context)
end

#validatorObject



15
16
17
# File 'lib/gitlab/config/entry/validatable.rb', line 15

def validator
  @validator ||= self.class.validator.new(self)
end