summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2016-03-29 11:58:05 +0200
committerYorick Peterse <yorickpeterse@gmail.com>2016-04-04 10:44:35 +0200
commit9fa94326dba11ca3b9197a4f084ba2883c29bdff (patch)
tree71cbd5083c56fc69ce9bd48d1d8e2a1115f3e611
parent8c49eaa937ed3d4332c54e8b0929c328a85d7fe4 (diff)
downloadgitlab-ce-9fa94326dba11ca3b9197a4f084ba2883c29bdff.tar.gz
Memoize object class titles
For an issue with around 200 notes this cuts down timings by around 150 milliseconds.
-rw-r--r--lib/banzai/filter/abstract_reference_filter.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/banzai/filter/abstract_reference_filter.rb b/lib/banzai/filter/abstract_reference_filter.rb
index 051b94f9ce1..02ef27cf577 100644
--- a/lib/banzai/filter/abstract_reference_filter.rb
+++ b/lib/banzai/filter/abstract_reference_filter.rb
@@ -22,6 +22,10 @@ module Banzai
@data_reference ||= "data-#{object_name.dasherize}"
end
+ def self.object_class_title
+ @object_title ||= object_class.name.titleize
+ end
+
# Public: Find references in text (like `!123` for merge requests)
#
# AnyReferenceFilter.references_in(text) do |match, id, project_ref, matches|
@@ -53,6 +57,10 @@ module Banzai
self.class.object_sym
end
+ def object_class_title
+ self.class.object_class_title
+ end
+
def references_in(*args, &block)
self.class.references_in(*args, &block)
end
@@ -206,7 +214,7 @@ module Banzai
end
def object_link_title(object)
- "#{object_class.name.titleize}: #{object.title}"
+ "#{object_class_title}: #{object.title}"
end
def object_link_text(object, matches)