summaryrefslogtreecommitdiff
path: root/app/models/concerns/referable.rb
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-11-30 21:14:46 +0100
committerDouwe Maan <douwe@gitlab.com>2015-11-30 21:36:34 +0100
commitd6a5b45c8ea5ec7a68e213636fde405c52bb90e4 (patch)
treee711cd92c57e20cc7900875017fb93d670537c00 /app/models/concerns/referable.rb
parenta7be01cd07430a4302668224947b2ed135c2d7bb (diff)
downloadgitlab-ce-d6a5b45c8ea5ec7a68e213636fde405c52bb90e4.tar.gz
Recognize issue/MR/snippet/commit links as references.
Diffstat (limited to 'app/models/concerns/referable.rb')
-rw-r--r--app/models/concerns/referable.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/app/models/concerns/referable.rb b/app/models/concerns/referable.rb
index cced66cc1e4..16e4d054869 100644
--- a/app/models/concerns/referable.rb
+++ b/app/models/concerns/referable.rb
@@ -44,6 +44,25 @@ module Referable
def reference_pattern
raise NotImplementedError, "#{self} does not implement #{__method__}"
end
+
+ def link_reference_pattern(route, pattern)
+ %r{
+ (?<url>
+ #{Regexp.escape(Gitlab.config.gitlab.url)}
+ \/#{Project.reference_pattern}
+ \/#{Regexp.escape(route)}
+ \/#{pattern}
+ (?<path>
+ (\/[a-z0-9_=-]+)*
+ )?
+ (?<query>
+ \?[a-z0-9_=-]+
+ (&[a-z0-9_=-]+)*
+ )?
+ (?<anchor>\#[a-z0-9_-]+)?
+ )
+ }x
+ end
end
private