summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-12-13 14:51:23 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-12-13 14:51:23 +0100
commit84290a452dcdd2271337e2301b846c9498b74c86 (patch)
tree0693203e332944e1fb847be5700e35eb22bf851d
parent00970606d78486a8b6672659e9ea28521a102e44 (diff)
downloadgitlab-ce-84290a452dcdd2271337e2301b846c9498b74c86.tar.gz
Make it possible to mix `Gitlab::Routing` in
-rw-r--r--lib/gitlab/ci/status/core.rb2
-rw-r--r--lib/gitlab/routing.rb6
-rw-r--r--spec/lib/gitlab/routing_spec.rb23
3 files changed, 30 insertions, 1 deletions
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