From 99ee39bf6c21eef8cebc431fb79286d5347d1d21 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Thu, 9 Jun 2016 13:01:19 +0200 Subject: [PATCH] Add comments to new CI config classes and modules --- lib/gitlab/ci/config.rb | 5 +++-- lib/gitlab/ci/config/node/configurable.rb | 11 +++++++++++ lib/gitlab/ci/config/node/entry.rb | 3 +++ lib/gitlab/ci/config/node/global.rb | 4 ++++ lib/gitlab/ci/config/node/null.rb | 6 ++++++ lib/gitlab/ci/config/node/script.rb | 8 ++++++++ 6 files changed, 35 insertions(+), 2 deletions(-) diff --git a/lib/gitlab/ci/config.rb b/lib/gitlab/ci/config.rb index 2d02036af1..b48d3592f1 100644 --- a/lib/gitlab/ci/config.rb +++ b/lib/gitlab/ci/config.rb @@ -1,8 +1,9 @@ module Gitlab module Ci + ## + # Base GitLab CI Configuration facade + # class Config - class LoaderError < StandardError; end - delegate :valid?, :errors, to: :@global ## diff --git a/lib/gitlab/ci/config/node/configurable.rb b/lib/gitlab/ci/config/node/configurable.rb index e0a0b40fc6..d3ed72649b 100644 --- a/lib/gitlab/ci/config/node/configurable.rb +++ b/lib/gitlab/ci/config/node/configurable.rb @@ -2,6 +2,17 @@ module Gitlab module Ci class Config module Node + ## + # This mixin is responsible for adding DSL, which purpose is to + # simplifly process of adding child nodes. + # + # This can be used only if parent node is a configuration entry that + # holds a hash as a configuration value, for example: + # + # job: + # script: ... + # artifacts: ... + # module Configurable extend ActiveSupport::Concern diff --git a/lib/gitlab/ci/config/node/entry.rb b/lib/gitlab/ci/config/node/entry.rb index 6b59461a58..7d7e6f26cb 100644 --- a/lib/gitlab/ci/config/node/entry.rb +++ b/lib/gitlab/ci/config/node/entry.rb @@ -2,6 +2,9 @@ module Gitlab module Ci class Config module Node + ## + # Base abstract class for each configuration entry node. + # class Entry class InvalidError < StandardError; end diff --git a/lib/gitlab/ci/config/node/global.rb b/lib/gitlab/ci/config/node/global.rb index 7411f8c863..911dc51da4 100644 --- a/lib/gitlab/ci/config/node/global.rb +++ b/lib/gitlab/ci/config/node/global.rb @@ -2,6 +2,10 @@ module Gitlab module Ci class Config module Node + ## + # This class represents a global entry - root node for entire + # GitLab CI Configuration file. + # class Global < Entry include Configurable diff --git a/lib/gitlab/ci/config/node/null.rb b/lib/gitlab/ci/config/node/null.rb index bf8bc62dc9..ab7b0abaf2 100644 --- a/lib/gitlab/ci/config/node/null.rb +++ b/lib/gitlab/ci/config/node/null.rb @@ -1,6 +1,12 @@ module Gitlab module Ci class Config + ## + # This class represents a configuration entry that is not being used + # in configuration file. + # + # This implements Null Object pattern. + # module Node class Null < Entry def value diff --git a/lib/gitlab/ci/config/node/script.rb b/lib/gitlab/ci/config/node/script.rb index 34d18ad278..84f9ec0eb0 100644 --- a/lib/gitlab/ci/config/node/script.rb +++ b/lib/gitlab/ci/config/node/script.rb @@ -2,6 +2,14 @@ module Gitlab module Ci class Config module Node + ## + # Entry that represents a script. + # + # Each element in the value array is a command that will be executed + # by GitLab Runner. Currently we concatenate this commands with + # new line character as a separator what is compatbile with + # implementation in Runner. + # class Script < Entry include ValidationHelpers