2

当我将所有宝石放入 Gemfile 时,我可以使用

require 'bundler'
Bundler.require :default

加载所有宝石。现在我想使用来自 Ruby 的 Std-Lib 的模块。我当然可以

require 'fileutils'
require 'json'
[etc.]

但是这些模块中的大多数已经由所需的 gem 加载。因此,如果我不需要它们,我不会得到错误。但如果我要移除一颗宝石,这很容易改变。

有没有一种很好的方法来处理这些依赖项(除了测试)?

4

1 回答 1

1

似乎没有比手动找出所有需要的模块并手动要求它们更好的方法了。

我使用这个 hack 来查找需要的模块列表:

find -name *.rb |xargs cat |egrep -o ' [A-Z][a-zA-Z]*(\.|::)' |tr -dc A-Za-z\\n |sort |uniq |xargs -I@ -n1 egrep -o '(module|class) @' -r /usr/lib/ruby/1.9.1/* |cut -d':' -f2 |sort |uniq

它并不完美,但应该涵盖大多数情况。

于 2013-04-28T21:18:40.623 回答