Avant de diviser la chaîne ruby_version code> sur une période et convertissez les bits en entiers et ainsi de suite, il existe un moyen plus simple de vérifier à partir d'un programme Ruby si le courant ruby_version code > est supérieur à xxx code>? p>
3 Réponses :
La bibliothèque de gems de Ruby's Ruby peut faire des comparaisons de numéro de version: voir http://rubydoc.info/stdlib/rubygems/1.9.2/gem/version Pour plus d'informations. P> P>
Mais la version GEM! = Version Ruby. 1.9.2 Utilisé 1.9.1 Gems pendant plusieurs mois.
Je ne comprends pas ton point. GEM :: Version.New code> prend une chaîne de version. Cela ne se soucie pas d'où vient la chaîne. Lire les docs.
La réponse de l'utilisateur de l'utilisateur est beaucoup plus simple et la méthode que j'utilise ... sauf qu'il utilise une comparaison de chaînes, ce qui n'est pas la meilleure pratique pour les numéros de version. Mieux vaut utiliser la comparaison numérique de matrice comme ceci:
version = RUBY_VERSION.split('.').map { |x| x.to_i }
if (version <=> [1, 8, 7]) >= 1
...
end
Au lieu de comparer le numéro de version, vérifiez peut-être si la méthode existe, comme celle-ci:
text = "hello world"
find = "hello "
if String.method_defined? :delete_prefix!
# Introduced with Ruby 2.5.0, 2017-10-10, https://blog.jetbrains.com/ruby/2017/10/10-new-features-in-ruby-2-5/
text.delete_prefix!(find)
else
text.sub!(/\A#{Regexp.escape(find)}/, '')
end
p text # => "world"