From 5abfc7fa7157e876299d1675f1cc96b78a3feadc Mon Sep 17 00:00:00 2001
From: Grzegorz Bizon <grzesiek.bizon@gmail.com>
Date: Fri, 10 Jun 2016 11:32:49 +0200
Subject: [PATCH] Define ci entry accessor instead of method_missing

---
 lib/gitlab/ci/config/node/configurable.rb | 6 ++++++
 lib/gitlab/ci/config/node/entry.rb        | 7 -------
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/lib/gitlab/ci/config/node/configurable.rb b/lib/gitlab/ci/config/node/configurable.rb
index 120457690d8..b72bc0d592a 100644
--- a/lib/gitlab/ci/config/node/configurable.rb
+++ b/lib/gitlab/ci/config/node/configurable.rb
@@ -55,6 +55,12 @@ module Gitlab
                        { class: entry_class,
                          description: metadata[:description] } }
 
+              define_method(symbol) do
+                raise Entry::InvalidError unless valid?
+
+                @nodes[symbol].try(:value)
+              end
+
               (@allowed_nodes ||= {}).merge!(node)
             end
           end
diff --git a/lib/gitlab/ci/config/node/entry.rb b/lib/gitlab/ci/config/node/entry.rb
index ed1cdd6f15d..f7649784c28 100644
--- a/lib/gitlab/ci/config/node/entry.rb
+++ b/lib/gitlab/ci/config/node/entry.rb
@@ -52,13 +52,6 @@ module Gitlab
             {}
           end
 
-          def method_missing(name, *args)
-            super unless allowed_nodes.has_key?(name)
-            raise InvalidError unless valid?
-
-            @nodes[name].try(:value)
-          end
-
           def add_node(key, entry)
             raise NotImplementedError
           end
-- 
GitLab