diff options
Diffstat (limited to 'lib/gitlab/ci/config/node/entry.rb')
-rw-r--r-- | lib/gitlab/ci/config/node/entry.rb | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/lib/gitlab/ci/config/node/entry.rb b/lib/gitlab/ci/config/node/entry.rb deleted file mode 100644 index 8717eabf81e..00000000000 --- a/lib/gitlab/ci/config/node/entry.rb +++ /dev/null @@ -1,83 +0,0 @@ -module Gitlab - module Ci - class Config - module Node - ## - # Base abstract class for each configuration entry node. - # - class Entry - class InvalidError < StandardError; end - - attr_reader :config, :metadata - attr_accessor :key, :parent, :description - - def initialize(config, **metadata) - @config = config - @metadata = metadata - @entries = {} - - @validator = self.class.validator.new(self) - @validator.validate(:new) - end - - def [](key) - @entries[key] || Node::Undefined.new - end - - def compose!(deps = nil) - return unless valid? - - yield if block_given? - end - - def leaf? - @entries.none? - end - - def descendants - @entries.values - end - - def ancestors - @parent ? @parent.ancestors + [@parent] : [] - end - - def valid? - errors.none? - end - - def errors - @validator.messages + descendants.flat_map(&:errors) - end - - def value - if leaf? - @config - else - meaningful = @entries.select do |_key, value| - value.specified? && value.relevant? - end - - Hash[meaningful.map { |key, entry| [key, entry.value] }] - end - end - - def specified? - true - end - - def relevant? - true - end - - def self.default - end - - def self.validator - Validator - end - end - end - end - end -end |