gpt4 book ai didi

ruby - 如何检查 gem 的兼容 Ruby 版本

转载 作者:行者123 更新时间:2023-12-05 05:13:01 31 4
gpt4 key购买 nike

如何确定特定的 gem 是否与特定的 Ruby 版本兼容?

我想升级我正在处理的应用程序的 Ruby 版本,但我没有看到了解特定 gem 支持哪个 Ruby 版本的真实方法。

我找到了 gem 的 *.gemspec,它通常包含一个配置说 config.required_ruby_version ...,但我注意到并不是所有的 gem 都包含 gemspec文件。我注意到我的系统上有一些 gem,例如 ActiveRecord,它们缺少 Gemfile,而在 GitHub 上,我们有一个可用的 gemspec 文件。

这是我本地机器上 ls -lrth 的输出:

Einstiens-MacBook-Pro:activerecord-4.2.7.1 superhero$ ls -lrth
total 128
-rw-r--r-- 1 superhero jingle 51K Dec 23 00:07 CHANGELOG.md
-rw-r--r-- 1 superhero jingle 1.0K Dec 23 00:07 MIT-LICENSE
-rw-r--r-- 1 superhero jingle 6.6K Dec 23 00:07 README.rdoc
drwxr-xr-x 4 superhero jingle 128B Dec 23 00:07 examples
drwxr-xr-x 5 superhero jingle 160B Dec 23 00:07 lib

ActiveRecord repository有一个 gemspec 文件: enter image description here

最佳答案

寻找 gemspec 文件并检查 RubyGems.org是检查 Ruby 兼容性的好方法,但是如上所述,如果 gem 作者没有编写 gemspec 文件,它就没有用了。

如果您使用 Ruby 版本管理系统,如 RVM 或 rbenv,制作一个简单的测试脚本将是一个解决方案。如果你的本地机器上已经安装了 Ruby 版本 2.4.1 和 2.5.1,写一个类似于“Testing With Multiple Ruby And Gem Versions”的脚本,比如:

#!/usr/bin/env bash

set -e

rubies=("ruby-2.4.1" "ruby-2.5.3")
for i in "${rubies[@]}"
do
echo "====================================================="
echo "$i: Start Test"
echo "====================================================="
rvm $i exec bundle
rvm $i exec bundle exec rake test
echo "====================================================="
echo "$i: End Test"
echo "====================================================="
done

RVM 将选择一个 Ruby 版本并为选定的 Ruby 版本运行测试。

如果 gem 没有任何单元测试,那么这个测试脚本也将毫无用处。但是没有任何单元测试的 gem 不值得使用。

尽管此解决方案也不是检查兼容 Ruby 版本的可靠方法,但值得将其用于您的测试。

关于ruby - 如何检查 gem 的兼容 Ruby 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54061319/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com