From 792455450a1934181369412bc5ba4082c832ed86 Mon Sep 17 00:00:00 2001 From: Thong Kuah Date: Mon, 8 Jul 2019 09:19:21 +1200 Subject: BE feedback: memoize deployment_metrics Also memoize has_metrics? as well, that might be expensive, and it should not change for the lifetime of EnvironmentStatus --- app/models/environment_status.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/models/environment_status.rb b/app/models/environment_status.rb index 1b3c094901b..465a42759df 100644 --- a/app/models/environment_status.rb +++ b/app/models/environment_status.rb @@ -34,7 +34,9 @@ class EnvironmentStatus end def has_metrics? - DeploymentMetrics.new(project, deployment).has_metrics? + strong_memoize(:has_metrics) do + deployment_metrics.has_metrics? + end end def changes @@ -52,6 +54,10 @@ class EnvironmentStatus PAGE_EXTENSIONS = /\A\.(s?html?|php|asp|cgi|pl)\z/i.freeze + def deployment_metrics + @deployment_metrics ||= DeploymentMetrics.new(project, deployment) + end + def build_change(file) public_path = project.public_path_for_source_path(file.new_path, sha) return if public_path.nil? -- cgit v1.2.1