From 1f320edb7721bcc86d26add7ba3fcbd185a1ca06 Mon Sep 17 00:00:00 2001
From: Grzegorz Bizon <grzesiek.bizon@gmail.com>
Date: Thu, 23 Jun 2016 13:51:34 +0200
Subject: [PATCH] Minor refactorings in new CI configuration classes

---
 lib/ci/gitlab_ci_yaml_processor.rb               | 5 +++++
 lib/gitlab/ci/config/node/configurable.rb        | 2 +-
 lib/gitlab/ci/config/node/entry.rb               | 3 +--
 lib/gitlab/ci/config/node/validator.rb           | 2 +-
 spec/lib/gitlab/ci/config/node/validator_spec.rb | 4 ++--
 5 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/lib/ci/gitlab_ci_yaml_processor.rb b/lib/ci/gitlab_ci_yaml_processor.rb
index f0c3eae661..e471019568 100644
--- a/lib/ci/gitlab_ci_yaml_processor.rb
+++ b/lib/ci/gitlab_ci_yaml_processor.rb
@@ -91,6 +91,11 @@ module Ci
       {
         stage_idx: @stages.index(job[:stage]),
         stage: job[:stage],
+        ##
+        # Refactoring note:
+        #  - before script behaves differently than after script
+        #  - after script returns an array of commands
+        #  - before script should be a concatenated command
         commands: [job[:before_script] || @before_script, job[:script]].flatten.compact.join("\n"),
         tag_list: job[:tags] || [],
         name: name,
diff --git a/lib/gitlab/ci/config/node/configurable.rb b/lib/gitlab/ci/config/node/configurable.rb
index 61e4f1cee2..590cf3d7b7 100644
--- a/lib/gitlab/ci/config/node/configurable.rb
+++ b/lib/gitlab/ci/config/node/configurable.rb
@@ -52,7 +52,7 @@ module Gitlab
               factory = Node::Factory.new(entry_class)
                 .with(description: metadata[:description])
 
-              (@nodes ||= {}).merge!(symbol => factory)
+              (@nodes ||= {}).merge!(symbol.to_sym => factory)
             end
           end
         end
diff --git a/lib/gitlab/ci/config/node/entry.rb b/lib/gitlab/ci/config/node/entry.rb
index e6f738b179..08d8020f8e 100644
--- a/lib/gitlab/ci/config/node/entry.rb
+++ b/lib/gitlab/ci/config/node/entry.rb
@@ -44,8 +44,7 @@ module Gitlab
           end
 
           def errors
-            @validator.full_errors +
-              nodes.map(&:errors).flatten
+            @validator.messages + nodes.flat_map(&:errors)
           end
 
           def value
diff --git a/lib/gitlab/ci/config/node/validator.rb b/lib/gitlab/ci/config/node/validator.rb
index 02edc9219c..5f62d68710 100644
--- a/lib/gitlab/ci/config/node/validator.rb
+++ b/lib/gitlab/ci/config/node/validator.rb
@@ -11,7 +11,7 @@ module Gitlab
             @node = node
           end
 
-          def full_errors
+          def messages
             errors.full_messages.map do |error|
               "#{@node.key} #{error}".humanize
             end
diff --git a/spec/lib/gitlab/ci/config/node/validator_spec.rb b/spec/lib/gitlab/ci/config/node/validator_spec.rb
index ad875d5538..aa55ce90b3 100644
--- a/spec/lib/gitlab/ci/config/node/validator_spec.rb
+++ b/spec/lib/gitlab/ci/config/node/validator_spec.rb
@@ -19,7 +19,7 @@ describe Gitlab::Ci::Config::Node::Validator do
       it 'returns no errors' do
         validator_instance.validate
 
-        expect(validator_instance.full_errors).to be_empty
+        expect(validator_instance.messages).to be_empty
       end
     end
 
@@ -36,7 +36,7 @@ describe Gitlab::Ci::Config::Node::Validator do
       it 'returns errors' do
         validator_instance.validate
 
-        expect(validator_instance.full_errors).not_to be_empty
+        expect(validator_instance.messages).not_to be_empty
       end
     end
   end
-- 
2.30.9