我最近发现了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)
但那也不起作用.
有没有办法完成我在这里尝试的东西?
你的最后一个选择应该有效。
require 'rubygems'
begin
require 'hanna/rdoctask'
rescue LoadError
puts 'Hanna rdoc unavailable, falling back to rake'
require 'rake/rdoctask'
end
Run Code Online (Sandbox Code Playgroud)
在我的机器上运行,运行 Ruby 1.8.7p248,安装了“rake”gem,但没有安装“hanna”gem。不过,您确定您的环境中需要 rubygems 吗?如果不是,要求“rake/rdoctask”也可能会失败。
| 归档时间: |
|
| 查看次数: |
1398 次 |
| 最近记录: |