From 84290a452dcdd2271337e2301b846c9498b74c86 Mon Sep 17 00:00:00 2001
From: Grzegorz Bizon <grzesiek.bizon@gmail.com>
Date: Tue, 13 Dec 2016 14:51:23 +0100
Subject: [PATCH] Make it possible to mix `Gitlab::Routing` in

---
 lib/gitlab/ci/status/core.rb    |  2 +-
 lib/gitlab/routing.rb           |  6 ++++++
 spec/lib/gitlab/routing_spec.rb | 23 +++++++++++++++++++++++
 3 files changed, 30 insertions(+), 1 deletion(-)
 create mode 100644 spec/lib/gitlab/routing_spec.rb

diff --git a/lib/gitlab/ci/status/core.rb b/lib/gitlab/ci/status/core.rb
index 12c0ca1d6d5..46fef8262c1 100644
--- a/lib/gitlab/ci/status/core.rb
+++ b/lib/gitlab/ci/status/core.rb
@@ -4,7 +4,7 @@ module Gitlab
       # Base abstract class fore core status
       #
       class Core
-        include Gitlab::Routing.url_helpers
+        include Gitlab::Routing
         include Gitlab::Allowable
 
         attr_reader :subject, :user
diff --git a/lib/gitlab/routing.rb b/lib/gitlab/routing.rb
index 5132177de51..632e2d87500 100644
--- a/lib/gitlab/routing.rb
+++ b/lib/gitlab/routing.rb
@@ -1,5 +1,11 @@
 module Gitlab
   module Routing
+    extend ActiveSupport::Concern
+
+    included do
+      include Gitlab::Routing.url_helpers
+    end
+
     # Returns the URL helpers Module.
     #
     # This method caches the output as Rails' "url_helpers" method creates an
diff --git a/spec/lib/gitlab/routing_spec.rb b/spec/lib/gitlab/routing_spec.rb
new file mode 100644
index 00000000000..01d5acfc15b
--- /dev/null
+++ b/spec/lib/gitlab/routing_spec.rb
@@ -0,0 +1,23 @@
+require 'spec_helper'
+
+describe Gitlab::Routing do
+  context 'when module is included' do
+    subject do
+      Class.new.include(described_class).new
+    end
+
+    it 'makes it possible to access url helpers' do
+      expect(subject).to respond_to(:namespace_project_path)
+    end
+  end
+
+  context 'when module is not included' do
+    subject do
+      Class.new.include(described_class.url_helpers).new
+    end
+
+    it 'exposes url helpers module through a method' do
+      expect(subject).to respond_to(:namespace_project_path)
+    end
+  end
+end
-- 
GitLab