From 5142c61707cc4169a3f8d9e378aacb8f88760db5 Mon Sep 17 00:00:00 2001
From: Yorick Peterse <yorickpeterse@gmail.com>
Date: Mon, 14 Dec 2015 16:52:05 +0100
Subject: [PATCH] Cast values to strings before escaping them

This ensures that e.g. line numbers used in tags are first casted to
strings.
---
 app/workers/metrics_worker.rb       | 2 +-
 spec/workers/metrics_worker_spec.rb | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/app/workers/metrics_worker.rb b/app/workers/metrics_worker.rb
index 8fffe371572..90a65579382 100644
--- a/app/workers/metrics_worker.rb
+++ b/app/workers/metrics_worker.rb
@@ -24,6 +24,6 @@ class MetricsWorker
   end
 
   def escape_value(value)
-    value.gsub('=', '\\=')
+    value.to_s.gsub('=', '\\=')
   end
 end
diff --git a/spec/workers/metrics_worker_spec.rb b/spec/workers/metrics_worker_spec.rb
index 0d12516c1a3..f5650494c7c 100644
--- a/spec/workers/metrics_worker_spec.rb
+++ b/spec/workers/metrics_worker_spec.rb
@@ -36,5 +36,9 @@ describe MetricsWorker do
     it 'escapes an equals sign' do
       expect(worker.escape_value('foo=')).to eq('foo\\=')
     end
+
+    it 'casts values to Strings' do
+      expect(worker.escape_value(10)).to eq('10')
+    end
   end
 end
-- 
GitLab