Принудительно запускать файл .rb в указанных c ruby версиях - PullRequest
1 голос
/ 08 апреля 2020

Я пишу скрипт ruby в файл .rb. Он использует новейшие функции Ruby (версия 2.7). Есть ли способ заставить этот файл .rb выполняться только в указанном диапазоне версий c Ruby? Например, первая строка файла .rb может быть:

#! ruby 2.7+
# This .rb file can only be run with Ruby version 2.7 or above

Ответы [ 2 ]

3 голосов
/ 08 апреля 2020

Используйте gem semanti c для обработки парсинга текущей Ruby версии:

require 'semantic'

# Require >= 2.7 < 3
exit unless Semantic::Version.new(RUBY_VERSION).satisfies?('~> 2.7')

# Require >= 2.7, including 3 and above
exit unless Semantic::Version.new(RUBY_VERSION).satisfies?('>= 2.7')

Для этого необходимо использовать пакет и Gemfile с вашим приложением.

Другие компараторы перечислены в исходном коде для драгоценного камня :

if ['<', '>', '<=', '>='].include?(comparator)
  satisfies_comparator? comparator, pad_version_string(other_version_string)
elsif comparator == '~>'
  pessimistic_match? other_version_string
else
  tilde_matches? other_version_string
end

Это позволит вам точно настроить требования к версии.

1 голос
/ 08 апреля 2020

Наивно

1002 *
...