@@ -88,56 +88,45 @@ def initialize(arch)
8888 when Array then
8989 @cpu , @os , @version = arch
9090 when String then
91- arch = arch . split "-"
91+ cpu , os = arch . sub ( /-+$/ , "" ) . split ( "-" , 2 )
9292
93- if arch . length > 2 && !arch . last . match? ( /\d +(\. \d +)?$/ ) # reassemble x86-linux-{libc}
94- extra = arch . pop
95- arch . last << "-#{ extra } "
96- end
97-
98- cpu = arch . shift
99-
100- @cpu = case cpu
101- when /i\d 86/ then "x86"
102- else cpu
103- end
104-
105- if arch . length == 2 && arch . last . match? ( /^\d +(\. \d +)?$/ ) # for command-line
106- @os , @version = arch
107- return
93+ @cpu = if cpu . match? ( /i\d 86/ )
94+ "x86"
95+ else
96+ cpu
10897 end
10998
110- os , = arch
11199 if os . nil?
112100 @cpu = nil
113101 os = cpu
114102 end # legacy jruby
115103
116104 @os , @version = case os
117- when /aix(\d +)?/ then [ "aix" , $1]
118- when /cygwin/ then [ "cygwin" , nil ]
119- when /darwin(\d +)?/ then [ "darwin" , $1]
120- when /^macruby$/ then [ "macruby" , nil ]
121- when /freebsd(\d +)?/ then [ "freebsd" , $1]
122- when /^java$/ , /^jruby$/ then [ "java" , nil ]
123- when /^java([\d .]*)/ then [ "java" , $1]
124- when /^dalvik(\d +)?$/ then [ "dalvik" , $1]
125- when /^dotnet$/ then [ "dotnet" , nil ]
126- when /^dotnet([\d .]*)/ then [ "dotnet" , $1]
127- when /linux-?(\w +)?/ then [ "linux" , $1]
128- when /mingw32/ then [ "mingw32" , nil ]
129- when /mingw-?(\w +)?/ then [ "mingw" , $1]
130- when /(mswin\d +)(\_ (\d +))?/ then
105+ when /aix-?(\d +)?/ then [ "aix" , $1]
106+ when /cygwin/ then [ "cygwin" , nil ]
107+ when /darwin-?(\d +)?/ then [ "darwin" , $1]
108+ when "macruby" then [ "macruby" , nil ]
109+ when /^macruby-?(\d +(?:\. \d +)*)?/ then [ "macruby" , $1]
110+ when /freebsd-?(\d +)?/ then [ "freebsd" , $1]
111+ when "java" , "jruby" then [ "java" , nil ]
112+ when /^java-?(\d +(?:\. \d +)*)?/ then [ "java" , $1]
113+ when /^dalvik-?(\d +)?$/ then [ "dalvik" , $1]
114+ when /^dotnet$/ then [ "dotnet" , nil ]
115+ when /^dotnet-?(\d +(?:\. \d +)*)?/ then [ "dotnet" , $1]
116+ when /linux-?(\w +)?/ then [ "linux" , $1]
117+ when /mingw32/ then [ "mingw32" , nil ]
118+ when /mingw-?(\w +)?/ then [ "mingw" , $1]
119+ when /(mswin\d +)(?:[_-](\d +))?/ then
131120 os = $1
132- version = $3
133- @cpu = "x86" if @cpu . nil? && os =~ /32$/
121+ version = $2
122+ @cpu = "x86" if @cpu . nil? && os . end_with? ( "32" )
134123 [ os , version ]
135- when /netbsdelf/ then [ "netbsdelf" , nil ]
136- when /openbsd(\d +\. \d +)?/ then [ "openbsd" , $1]
137- when /solaris(\d +\. \d +)?/ then [ "solaris" , $1]
138- when /wasi/ then [ "wasi" , nil ]
124+ when /netbsdelf/ then [ "netbsdelf" , nil ]
125+ when /openbsd-? (\d +\. \d +)?/ then [ "openbsd" , $1]
126+ when /solaris-? (\d +\. \d +)?/ then [ "solaris" , $1]
127+ when /wasi/ then [ "wasi" , nil ]
139128 # test
140- when /^(\w +_platform)(\d +)?/ then [ $1, $2]
129+ when /^(\w +_platform)-? (\d +)?/ then [ $1, $2]
141130 else [ "unknown" , nil ]
142131 end
143132 when Gem ::Platform then
@@ -154,7 +143,7 @@ def to_a
154143 end
155144
156145 def to_s
157- to_a . compact . join "-"
146+ to_a . compact . join ( @cpu . nil? ? "" : "-" )
158147 end
159148
160149 ##
0 commit comments