有没有办法通过Gem模块检查当前是否安装了某些gem?从ruby代码,而不是通过执行'宝石列表'...
澄清 - 我不想加载库.我只是想检查它是否可用,所以所有的rescue LoadError解决方案都没有帮助我.此外,我不在乎宝石本身是否有效,只是它是否已安装.
我最近发现了Hanna RDoc模板,我比它更喜欢它.我想在我的项目中使用它,但我也不希望我的项目需要它.
为了让hanna模板工作,我必须对Rakefile做出的唯一改变就是改变
require 'rake/rdoctask'
Run Code Online (Sandbox Code Playgroud)
至
require 'hanna/rdoctask'
Run Code Online (Sandbox Code Playgroud)
有没有办法尝试一个require,并从错误中捕获/恢复?我注意到load并且需要在irb中返回一个布尔值,所以我想也许我可以这样做:
unless require 'hanna/rdoctask'
require 'rake/rdoctask'
end
Run Code Online (Sandbox Code Playgroud)
可悲的是,一旦要求失败,耙子就会中止.然后我尝试了:
begin
require 'hanna/rdoctask'
rescue
require 'rake/rdoctask'
end
Run Code Online (Sandbox Code Playgroud)
但那也不起作用.
有没有办法完成我在这里尝试的东西?