1

我有一个 Ruby 1.9.2 和 Rails 3.0.9 开发环境。当我在我的应用程序上运行 gem "metrical" 时,我收到以下错误:

** Running the specs/tests in the [test] environment
Analyzing:     100% |oooooooooooooooooooooooooooooooooooooooooo| Time: 00:00:00
/Users/tester/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych/visitors/emitter.rb:17:in `end_document': undefined method `write' for #<Syck::Emitter:0x000001028d2388> (NoMethodError)

其他人看到这个问题吗?我对这个错误没有想法。

4

2 回答 2

1

我遇到了同样的问题,似乎与使用 Ruby 1.9.2 进行 YAML 解析有关

我破解了度量 fu 并插入了 Psych YAML 引擎的明确要求:

metric_fu-2.1.1/lib/metric_fu.rb:

require 'rake'
require 'psych'  # <-- added here
require 'yaml'

现在工作...

于 2011-09-12T10:45:23.137 回答
0

最简单的解决方案是在运行 metrical 时设置 RUBYOPT 环境变量,因此您输入的不是 metrical:

RUBYOPT='-rpsych' metrical

我正在这样做,一切正常。这篇博文为我解决了这个问题:http : //excid3.com/blog/undefined-method-write-for-syckemitter/(可能比侵入 metric_fu 更简单,直到他们解决了这个问题)。

于 2012-02-04T07:15:12.993 回答