gpt4 book ai didi

ruby-on-rails - Rails 可选的 gem 配置

转载 作者:行者123 更新时间:2023-12-04 10:58:53 26 4
gpt4 key购买 nike

当您想使用 gem 进行开发/测试而不想强制其他开发人员使用时,您会怎么做?现在我有

begin
require 'redgreen'
rescue LoadError
end

test_helper.rb并且没有 gem 配置,但这似乎是一种笨拙的方法,尽管它是一种实用的方法。我想做如下事情:
config.gem "redgreen", :optional => true

还有其他建议吗?或者我应该只出售那些非常肤浅的 gem ......?

编辑

明确地说,我只是在谈论那些特定的 gem,比如 redgreen,它们实际上并没有在功能代码中使用,而只在编码过程中使用。根本不需要供应商,除非避免有条件的要求。

最佳答案

特定于您的开发环境的 Gems 应该安装在您的 gemset 或本地 gem 中,而不是安装在 Gemfile 中。 .

一个经典的例子是 ruby-debug-base19x Rubymine 调试所需的内容。它安装在您的本地 gemset 中,但未安装在 Gemfile 中。因为并非所有程序员都使用 Rubymine。

[编辑]

实际上,一切都在包的上下文中运行,并且无法访问外部 gem。确实存在一些解决方法。他们中的大多数都很脏:)

我在这个 bundler issue 中找到了很多很好的解决方案.

最好的解决方案是将此添加到您的 .irbrc :

# Add all gems in the global gemset to the $LOAD_PATH so they can be used even
# in places like 'rails console'.
if defined?(::Bundler)
global_gemset = ENV['GEM_PATH'].split(':').grep(/ruby.*@global/).first
if global_gemset
all_global_gem_paths = Dir.glob("#{global_gemset}/gems/*")
all_global_gem_paths.each do |p|
gem_path = "#{p}/lib"
$LOAD_PATH << gem_path
end
end
end

require 'irb/completion'
require 'rubygems'
require 'wirble'

Wirble.init
Wirble.colorize

如果然后安装 wirbleglobal gemset,然后可以找到它。
原文出处: https://gist.github.com/794915

希望这可以帮助。

关于ruby-on-rails - Rails 可选的 gem 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2119525/

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