gpt4 book ai didi

ruby - 使用 bundler ,判断 gem 是否为 "requirable"的最佳方法是什么?

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

在我的 Gemfile 中说我有

group :test do
gem 'rspec-core', require: false
end

有没有一种简单的方法可以查看 test 组是否已被 bundle ? (比如,在这种情况下,bundle 可能在有或没有 --without test 的情况下被调用)。

我找不到,因此我开始寻找是否需要 rspec-core,并找到了一些明显的解决方案:

 Bundler.definition.index.search("rspec-core")
# or
Gem.loaded_specs["rspec-core"]

确定是否需要 gem 的最稳定的 API 是什么?

(不尝试要求它并挽救 LoadError)

最佳答案

当生成 Rails 应用程序时,它通常包含一行,使用 Rails.env 来确定需要哪个组。它应该看起来像这样 Bundler.require(:default, Rails.env)。这通常发生在 Rails 应用程序的初始化过程中。这是执行此操作的一些代码片段:

class Rails::Boot
def run
load_initializer

Rails::Initializer.class_eval do
def load_gems
@bundler_loaded ||= Bundler.require :default, Rails.env
end
end

Rails::Initializer.run(:set_load_path)
end
end

因此,如果您对 Rails.env 进行测试,它将需要测试组中的所有 gem。

关于ruby - 使用 bundler ,判断 gem 是否为 "requirable"的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39066739/

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