summaryrefslogtreecommitdiff
path: root/app/models/label.rb
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2015-05-15 16:07:25 -0400
committerRobert Speicher <rspeicher@gmail.com>2015-05-26 15:49:20 -0400
commit81a09bc74cb997d3465f98cdcb72cacd413c31cd (patch)
treef7ad9d862653e2031da8c0de76cc269873323ecf /app/models/label.rb
parent35853033b9516aeffb6d341589406b00016947c3 (diff)
downloadgitlab-ce-81a09bc74cb997d3465f98cdcb72cacd413c31cd.tar.gz
Support only double quotes for multi-word label references
Diffstat (limited to 'app/models/label.rb')
-rw-r--r--app/models/label.rb10
1 files changed, 4 insertions, 6 deletions
diff --git a/app/models/label.rb b/app/models/label.rb
index 8980049cef8..230631b5180 100644
--- a/app/models/label.rb
+++ b/app/models/label.rb
@@ -41,16 +41,14 @@ class Label < ActiveRecord::Base
end
# Pattern used to extract label references from text
- #
- # TODO (rspeicher): Limit to double quotes (meh) or disallow single quotes in label names (bad).
def self.reference_pattern
%r{
#{reference_prefix}
(?:
- (?<label_id>\d+) | # Integer-based label ID, or
+ (?<label_id>\d+) | # Integer-based label ID, or
(?<label_name>
- [A-Za-z0-9_-]+ | # String-based single-word label title
- ['"][^&\?,]+['"] # String-based multi-word label surrounded in quotes
+ [A-Za-z0-9_-]+ | # String-based single-word label title, or
+ "[^&\?,]+" # String-based multi-word label surrounded in quotes
)
)
}x
@@ -70,7 +68,7 @@ class Label < ActiveRecord::Base
#
# Returns a String
def to_reference(format = :id)
- if format == :name
+ if format == :name && !name.include?('"')
%(#{self.class.reference_prefix}"#{name}")
else
"#{self.class.reference_prefix}#{id}"