Gemfile常量重定义,“警告:已初始化常量”

时间:2015-01-31 14:13:46

标签: ruby gem constants gemfile

在我的Gemfile我有两个宝石,它们都定义了同一组常量。这两个宝石是sentiment_libengtagger

这意味着无论何时我运行任务,我都会收到10条以上的警告:

...engtagger/porter.rb:6: warning: already initialized constant Stemmable::STEP_2_LIST
...stemmer/porter.rb:10: warning: previous definition of STEP_2_LIST was here

由于同一个文件只是用于它不是一个问题 - 但警告开始变得烦人。

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

我首先要求engtagger 然后使用已经通过另一个gem启动的常量删除该文件,将更改提交给新创建的fork。

将其添加到您的Gemfile

gem engtagger, github: 'your_github_handle/engtagger'

然后运行bundle update engtagger

现在你应该在没有该模块的情况下使用engtagger。

如果我们不处理常量,我会推荐一个模块eval,但它很可能不会起作用,因为常量设置一次,不能改变,因此警告信息。