End of Life Ruby 3.1 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
class method
Gem::Platform.new
new(arch)
lib/rubygems/platform.rb
View on GitHub ↗
# File tmp/rubies/ruby-3.1.3/lib/rubygems/platform.rb, line 67
def initialize(arch)
case arch
when Array then
@cpu, @os, @version = arch
when String then
arch = arch.split "-"
if arch.length > 2 && arch.last !~ /\d+(\.\d+)?$/ # reassemble x86-linux-{libc}
extra = arch.pop
arch.last << "-#{extra}"
end
cpu = arch.shift
@cpu = case cpu
when /i\d86/ then "x86"
else cpu
end
if arch.length == 2 && arch.last =~ /^\d+(\.\d+)?$/ # for command-line
@os, @version = arch
return
end
os, = arch
@cpu, os = nil, cpu if os.nil? # legacy jruby
@os, @version = case os
when /aix(\d+)?/ then [ "aix", $1 ]
when /cygwin/ then [ "cygwin", nil ]
when /darwin(\d+)?/ then [ "darwin", $1 ]
when /^macruby$/ then [ "macruby", nil ]
when /freebsd(\d+)?/ then [ "freebsd", $1 ]
when /hpux(\d+)?/ then [ "hpux", $1 ]
when /^java$/, /^jruby$/ then [ "java", nil ]
when /^java([\d.]*)/ then [ "java", $1 ]
when /^dalvik(\d+)?$/ then [ "dalvik", $1 ]
when /^dotnet$/ then [ "dotnet", nil ]
when /^dotnet([\d.]*)/ then [ "dotnet", $1 ]
when /linux-?(\w+)?/ then [ "linux", $1 ]
when /mingw32/ then [ "mingw32", nil ]
when /mingw-?(\w+)?/ then [ "mingw", $1 ]
when /(mswin\d+)(\_(\d+))?/ then
os, version = $1, $3
@cpu = "x86" if @cpu.nil? && os =~ /32$/
[os, version]
when /netbsdelf/ then [ "netbsdelf", nil ]
when /openbsd(\d+\.\d+)?/ then [ "openbsd", $1 ]
when /bitrig(\d+\.\d+)?/ then [ "bitrig", $1 ]
when /solaris(\d+\.\d+)?/ then [ "solaris", $1 ]
# test
when /^(\w+_platform)(\d+)?/ then [ $1, $2 ]
else [ "unknown", nil ]
end
when Gem::Platform then
@cpu = arch.cpu
@os = arch.os
@version = arch.version
else
raise ArgumentError, "invalid argument #{arch.inspect}"
end
end
No documentation available
See also
.match_spec?
.sort_priority
.match_platforms?
#==
also in
4.1 · 4.0 · 3.4 · 3.3 · 3.2 · 3.0