summaryrefslogtreecommitdiff
path: root/lib/gitlab/ci/config/node/factory.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/ci/config/node/factory.rb')
-rw-r--r--lib/gitlab/ci/config/node/factory.rb73
1 files changed, 0 insertions, 73 deletions
diff --git a/lib/gitlab/ci/config/node/factory.rb b/lib/gitlab/ci/config/node/factory.rb
deleted file mode 100644
index 5387f29ad59..00000000000
--- a/lib/gitlab/ci/config/node/factory.rb
+++ /dev/null
@@ -1,73 +0,0 @@
-module Gitlab
- module Ci
- class Config
- module Node
- ##
- # Factory class responsible for fabricating node entry objects.
- #
- class Factory
- class InvalidFactory < StandardError; end
-
- def initialize(node)
- @node = node
- @metadata = {}
- @attributes = {}
- end
-
- def value(value)
- @value = value
- self
- end
-
- def metadata(metadata)
- @metadata.merge!(metadata)
- self
- end
-
- def with(attributes)
- @attributes.merge!(attributes)
- self
- end
-
- def create!
- raise InvalidFactory unless defined?(@value)
-
- ##
- # We assume that unspecified entry is undefined.
- # See issue #18775.
- #
- if @value.nil?
- Node::Unspecified.new(
- fabricate_unspecified
- )
- else
- fabricate(@node, @value)
- end
- end
-
- private
-
- def fabricate_unspecified
- ##
- # If node has a default value we fabricate concrete node
- # with default value.
- #
- if @node.default.nil?
- fabricate(Node::Undefined)
- else
- fabricate(@node, @node.default)
- end
- end
-
- def fabricate(node, value = nil)
- node.new(value, @metadata).tap do |entry|
- entry.key = @attributes[:key]
- entry.parent = @attributes[:parent]
- entry.description = @attributes[:description]
- end
- end
- end
- end
- end
- end
-end