Memoize reference_pattern/link_reference_pattern
These methods are called quite often in loops so by memoizing their output we can reduce timings a bit.
This commit is contained in:
parent
82539cff70
commit
e7849b0b25
|
@ -74,14 +74,14 @@ class Commit
|
|||
#
|
||||
# This pattern supports cross-project references.
|
||||
def self.reference_pattern
|
||||
%r{
|
||||
@reference_pattern ||= %r{
|
||||
(?:#{Project.reference_pattern}#{reference_prefix})?
|
||||
(?<commit>\h{7,40})
|
||||
}x
|
||||
end
|
||||
|
||||
def self.link_reference_pattern
|
||||
super("commit", /(?<commit>\h{7,40})/)
|
||||
@link_reference_pattern ||= super("commit", /(?<commit>\h{7,40})/)
|
||||
end
|
||||
|
||||
def to_reference(from_project = nil)
|
||||
|
|
|
@ -43,14 +43,14 @@ class CommitRange
|
|||
#
|
||||
# This pattern supports cross-project references.
|
||||
def self.reference_pattern
|
||||
%r{
|
||||
@reference_pattern ||= %r{
|
||||
(?:#{Project.reference_pattern}#{reference_prefix})?
|
||||
(?<commit_range>#{STRICT_PATTERN})
|
||||
}x
|
||||
end
|
||||
|
||||
def self.link_reference_pattern
|
||||
super("compare", /(?<commit_range>#{PATTERN})/)
|
||||
@link_reference_pattern ||= super("compare", /(?<commit_range>#{PATTERN})/)
|
||||
end
|
||||
|
||||
# Initialize a CommitRange
|
||||
|
|
|
@ -31,7 +31,7 @@ class ExternalIssue
|
|||
|
||||
# Pattern used to extract `JIRA-123` issue references from text
|
||||
def self.reference_pattern
|
||||
%r{(?<issue>\b([A-Z][A-Z0-9_]+-)\d+)}
|
||||
@reference_pattern ||= %r{(?<issue>\b([A-Z][A-Z0-9_]+-)\d+)}
|
||||
end
|
||||
|
||||
def to_reference(_from_project = nil)
|
||||
|
|
|
@ -73,14 +73,14 @@ class Issue < ActiveRecord::Base
|
|||
#
|
||||
# This pattern supports cross-project references.
|
||||
def self.reference_pattern
|
||||
%r{
|
||||
@reference_pattern ||= %r{
|
||||
(#{Project.reference_pattern})?
|
||||
#{Regexp.escape(reference_prefix)}(?<issue>\d+)
|
||||
}x
|
||||
end
|
||||
|
||||
def self.link_reference_pattern
|
||||
super("issues", /(?<issue>\d+)/)
|
||||
@link_reference_pattern ||= super("issues", /(?<issue>\d+)/)
|
||||
end
|
||||
|
||||
def to_reference(from_project = nil)
|
||||
|
|
|
@ -56,7 +56,7 @@ class Label < ActiveRecord::Base
|
|||
# This pattern supports cross-project references.
|
||||
#
|
||||
def self.reference_pattern
|
||||
%r{
|
||||
@reference_pattern ||= %r{
|
||||
(#{Project.reference_pattern})?
|
||||
#{Regexp.escape(reference_prefix)}
|
||||
(?:
|
||||
|
|
|
@ -149,14 +149,14 @@ class MergeRequest < ActiveRecord::Base
|
|||
#
|
||||
# This pattern supports cross-project references.
|
||||
def self.reference_pattern
|
||||
%r{
|
||||
@reference_pattern ||= %r{
|
||||
(#{Project.reference_pattern})?
|
||||
#{Regexp.escape(reference_prefix)}(?<merge_request>\d+)
|
||||
}x
|
||||
end
|
||||
|
||||
def self.link_reference_pattern
|
||||
super("merge_requests", /(?<merge_request>\d+)/)
|
||||
@link_reference_pattern ||= super("merge_requests", /(?<merge_request>\d+)/)
|
||||
end
|
||||
|
||||
# Returns all the merge requests from an ActiveRecord:Relation.
|
||||
|
|
|
@ -79,7 +79,7 @@ class Milestone < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def self.link_reference_pattern
|
||||
super("milestones", /(?<milestone>\d+)/)
|
||||
@link_reference_pattern ||= super("milestones", /(?<milestone>\d+)/)
|
||||
end
|
||||
|
||||
def self.upcoming
|
||||
|
|
|
@ -56,14 +56,14 @@ class Snippet < ActiveRecord::Base
|
|||
#
|
||||
# This pattern supports cross-project references.
|
||||
def self.reference_pattern
|
||||
%r{
|
||||
@reference_pattern ||= %r{
|
||||
(#{Project.reference_pattern})?
|
||||
#{Regexp.escape(reference_prefix)}(?<snippet>\d+)
|
||||
}x
|
||||
end
|
||||
|
||||
def self.link_reference_pattern
|
||||
super("snippets", /(?<snippet>\d+)/)
|
||||
@link_reference_pattern ||= super("snippets", /(?<snippet>\d+)/)
|
||||
end
|
||||
|
||||
def to_reference(from_project = nil)
|
||||
|
|
Loading…
Reference in New Issue