diff options
author | James Edwards-Jones <jedwardsjones@gitlab.com> | 2017-04-22 05:26:58 +0300 |
---|---|---|
committer | James Edwards-Jones <jedwardsjones@gitlab.com> | 2017-05-04 22:03:46 +0300 |
commit | 020295fffc2329b7852c2739082986fd6b569d9e (patch) | |
tree | ff5c16475b3e30a6003d8d39f03484fb937e9e6f /app/models/concerns/mentionable | |
parent | 8e156d662b7895ce8777f34882422c3714cc65c7 (diff) |
Use regex to skip unnecessary reference processing in ProcessCommitWorker
Diffstat (limited to 'app/models/concerns/mentionable')
-rw-r--r-- | app/models/concerns/mentionable/reference_regexes.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/app/models/concerns/mentionable/reference_regexes.rb b/app/models/concerns/mentionable/reference_regexes.rb new file mode 100644 index 00000000000..1848230ec7e --- /dev/null +++ b/app/models/concerns/mentionable/reference_regexes.rb @@ -0,0 +1,22 @@ +module Mentionable + module ReferenceRegexes + def self.reference_pattern(link_patterns, issue_pattern) + Regexp.union(link_patterns, + issue_pattern, + Commit.reference_pattern, + MergeRequest.reference_pattern) + end + + DEFAULT_PATTERN = begin + issue_pattern = Issue.reference_pattern + link_patterns = Regexp.union([Issue, Commit, MergeRequest].map(&:link_reference_pattern)) + reference_pattern(link_patterns, issue_pattern) + end + + EXTERNAL_PATTERN = begin + issue_pattern = ExternalIssue.reference_pattern + link_patterns = URI.regexp(%w(http https)) + reference_pattern(link_patterns, issue_pattern) + end + end +end |