Commit 0ba116a5 authored by Alejandro Rodríguez's avatar Alejandro Rodríguez

Matching version-like expressions as `milestone_name`s instead of `milestone_iid`s

The changes also account for %2.1. being matched as milestone_name = "2.1" without
the word-separating dot.
parent 4cab66e3
...@@ -79,13 +79,18 @@ class Milestone < ActiveRecord::Base ...@@ -79,13 +79,18 @@ class Milestone < ActiveRecord::Base
end end
def self.reference_pattern def self.reference_pattern
# NOTE: The iid pattern only matches when all characters on the expression
# are digits, so it will match %2 but not %2.1 because that's probably a
# milestone name and we want it to be matched as such.
%r{ %r{
(#{Project.reference_pattern})? (#{Project.reference_pattern})?
#{Regexp.escape(reference_prefix)} #{Regexp.escape(reference_prefix)}
(?: (?:
(?<milestone_iid>\d+) | # Integer-based milestone iid, or (?<milestone_iid>
\d+(?!\S\w)\b # Integer-based milestone iid, or
) |
(?<milestone_name> (?<milestone_name>
[A-Za-z0-9_-]+ | # String-based single-word milestone title, or [^"\s]+\b | # String-based single-word milestone title, or
"[^"]+" # String-based multi-word milestone surrounded in quotes "[^"]+" # String-based multi-word milestone surrounded in quotes
) )
) )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment