我喜欢通过设置一个
.ruby-version
文件来设置我在每个项目上使用的 Ruby 版本,但我发现它非常严格,尤其是在我共享我的代码时。
如果我声明这一点例如:
#.ruby-version
3.0.2
代码将请求这个 ruby 版本,它不会接受任何其他甚至:
3.0.4
,我知道它也可以工作。这使得我的代码不太可共享。
有什么方法可以使用像 Gemfile 文件中那样的版本描述语法吗?
有趣的是,您甚至说“就像在 Gemfile 中一样...”,因为 您可以在
Gemfile
中定义所需的 ruby 版本,而不是拥有 .ruby-version
文件:
ruby '~> 3.0' # or whatever
gem 'some-dependency'
gem 'another-dependency'
# ...
需要时,我直接在脚本中使用以下内容(Gem 是 ruby 标准 gem 的一部分)
raise "Invalid Ruby version #{RUBY_VERSION}" if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.3.0')
请注意,您不能直接比较字符串版本(不起作用 当版本字段超过 1 位时3.10.0).