如何使用Bundler + Gems处理Std-Lib依赖项?

时间:2013-04-28 20:18:35

标签: ruby bundler

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

require 'bundler'
Bundler.require :default

加载所有宝石。现在我想使用Ruby的Std-Lib中的模块。我当然能做到

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

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

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

1 个答案:

答案 0 :(得分: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

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