gpt4 book ai didi

ruby-on-rails - 基于 Ruby 版本管理 gem 依赖

转载 作者:数据小太阳 更新时间:2023-10-29 08:59:44 24 4
gpt4 key购买 nike

我正在开发适用于 Ruby 1.9.3 的 gem,但安装最新的 Gemfile 仅适用于 Ruby 2.2。有没有一种方法可以根据 Ruby 版本分离依赖关系?

我以前见过这种方法:

pry_debugger = RUBY_VERSION < '2.0.0' ? 'pry-debugger' : 'pry-byebug'
spec.add_development_dependency pry_debugger

或者我应该只考虑支持一个 Ruby 版本(比方说 2.0)并找到支持的 gem?查找适用于我的本地 Ruby 版本的 gem 的最简单方法是什么?

最佳答案

您展示的逻辑对于开发依赖项来说工作得很好,因为它将在 bundle 安装时进行评估。

它不适用于运行时依赖项,因为逻辑将在 gem 构建时评估,而不是在 gem 在另一个环境中运行时评估。RubyGems 不提供一种方法让您根据运行时环境指定不同的 gem,因此您可以支持的唯一方法是发布具有不同 gemspec 的两个不同名称的 gem 版本。

就我个人而言,我不认为将开发依赖项放在 .gemspec 中有什么意义,所以我总是将它们添加到我的 Gemfile 中,并仅为运行时依赖项保留 gemspec。这更好地分离了关注点,并清楚地表明 gem 选择逻辑可以在 Gemfile 中使用,但不能在 gemspec 中使用。

关于ruby-on-rails - 基于 Ruby 版本管理 gem 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39346334/

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