From 503de9e1bfa0ff1bc7d8170a4c40302bfd8ce684 Mon Sep 17 00:00:00 2001 From: Damon Aw Date: Thu, 12 May 2022 18:30:33 -0400 Subject: [PATCH] Use padding:false over gsub --- lib/global_id/global_id.rb | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/lib/global_id/global_id.rb b/lib/global_id/global_id.rb index eb7ad42..71bd802 100644 --- a/lib/global_id/global_id.rb +++ b/lib/global_id/global_id.rb @@ -35,13 +35,7 @@ def app=(app) private def parse_encoded_gid(gid, options) - new(Base64.urlsafe_decode64(repad_gid(gid)), options) rescue nil - end - - # We removed the base64 padding character = during #to_param, now we're adding it back so decoding will work - def repad_gid(gid) - padding_chars = gid.length.modulo(4).zero? ? 0 : (4 - gid.length.modulo(4)) - gid + ('=' * padding_chars) + new(Base64.urlsafe_decode64(gid), options) rescue nil end end @@ -70,7 +64,6 @@ def hash end def to_param - # remove the = padding character for a prettier param -- it'll be added back in parse_encoded_gid - Base64.urlsafe_encode64(to_s).sub(/=+$/, '') + Base64.urlsafe_encode64(to_s, padding: false) end end