summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2023-10-24 11:23:51 -0500
committergit <svn-admin@ruby-lang.org>2023-10-25 18:51:37 +0000
commit7e7d1f0679d7cbfc43d4157435317ae2f961b995 (patch)
treecae0cb2a4be2b478c6b147a79ddcb0382efb43a0
parentb0a970736491a8a5a1839ff698b85bbab676ba56 (diff)
[rubygems/rubygems] Avoid regexp match on every call to `Gem::Platform.local`
The result of `arch` would be ignored if `@local` is set, so wrap all the logic in `@local ||=` to short-circuit everything https://github.com/rubygems/rubygems/commit/b67d39f3e0
-rw-r--r--lib/rubygems/platform.rb8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/rubygems/platform.rb b/lib/rubygems/platform.rb
index 93e33383fd..5c5abdc2e2 100644
--- a/lib/rubygems/platform.rb
+++ b/lib/rubygems/platform.rb
@@ -13,9 +13,11 @@ class Gem::Platform
attr_accessor :cpu, :os, :version
def self.local
- arch = RbConfig::CONFIG["arch"]
- arch = "#{arch}_60" if /mswin(?:32|64)$/.match?(arch)
- @local ||= new(arch)
+ @local ||= begin
+ arch = RbConfig::CONFIG["arch"]
+ arch = "#{arch}_60" if /mswin(?:32|64)$/.match?(arch)
+ new(arch)
+ end
end
def self.match(platform)