我不确定我是否已经看到了这个问题,但我想知道在ruby脚本中执行多个需求的最佳方法是什么.我已经提出了几个基本的例子,我将在下面概述,但我不确定是否有最好的做法 - 我的搜索结果没有回来.
0)一堆包括和例外(我将离开救援)
require 'rubygems'
require 'builder'
Run Code Online (Sandbox Code Playgroud)
1)字符串数组
torequire = ['rubygems', 'builder']
begin
torequire.each do |req|
require req
rescue LoadError => e
# Not sure if this is great either
puts "Missing required gem: " + e.message.split[-1]
exit
end
Run Code Online (Sandbox Code Playgroud)
2)??
从字符串数组中加载它们是否会产生大问题?您可以类似地指定版本要求或位置,我只是想知道这样做是否存在问题.
Way*_*rad 17
简单的方式是最好的方式.
你可以做到这一点,但它清晰易懂 - 一个可怜的讨价还价:
[
'rubygems',
'rack',
'rails'
].each(&method(:require))
Run Code Online (Sandbox Code Playgroud)
使用花哨的错误消息跳过"救援".当require需要抛出堆栈跟踪时,每个人都知道它意味着什么.
如果您想让使用您的程序的人更容易安装所需的gem,请查看bundler.
the*_*gah 12
我见过的所有ruby脚本都只列出了一行,就像你拥有的一样.
require 'rubygems'
require 'rack'
require 'rails'
Run Code Online (Sandbox Code Playgroud)
在第一个中,很清楚你在做什么.
在第二个,它需要有人解码你正在做的事情.
强迫每个人解码你正在做的事情似乎有点异想天开,所以你可以保存几行键入(只有当你在一个源文件中使用了大量的库时才会有一些代码味道本身).请记住,代码读取的次数是写入的一个数量级的三倍或三倍.如果它是易于书写或易于阅读之间的选择,阅读应该胜出.
归档时间: |
|
查看次数: |
4268 次 |
最近记录: |