Ich muss einen Code schreiben, der auf Ruby 1.8 und Ruby 2.1 ausgeführt werden muss, und speziell eine Datei in UTF-8-Codierung öffnen, so dass ich naiv schrieb dassRückwärtskompatibilitätscode für Ruby 1.8 und Ruby 2.1 funktioniert nicht Dateimodul
if RUBY_VERSION > "1.9"
f = File.open('/usr/share/hwdata/pci.ids', encoding: "utf-8")
else
f = File.open('/usr/share/hwdata/pci.ids')
end
Während es auf Rubin 2.1, ruby 1.8 läuft der Code funktioniert sollte es nicht und gibt diesen Fehler zurück
test_ruby_version.rb:8: syntax error, unexpected ':', expecting ')'
f = File.open('/usr/share/hwdata/pci.ids', encoding: "utf-8")
^
test_ruby_version.rb:8: syntax error, unexpected ')', expecting kEND
ich es hat einige grundlegende boolean, dass bei dem Test laufen, es funktioniert
if RUBY_VERSION > "1.9"
puts "this is displayed when running ruby 2"
end
if RUBY_VERSION < "2.0"
puts "this is displayed when running ruby 1.9 or less"
end
if RUBY_VERSION < "1.8"
puts "this is displayed when running ruby 1.7 or less"
end
Kann mir jemand das Problem erklären und wie kann ich es lösen?
dank