0

我通过执行gem install ruby​​-mbox 安装了 ruby​​-mbox

运行这个:

#!/usr/bin/ruby
require 'rubygems'
require 'mbox'
m = IO.read('test.eml')
puts m.size
m = Mbox.new(m)
puts m

产生此异常(在第 7 行):

/Library/Ruby/Gems/1.8/gems/ruby-mbox-0.0.2/lib/mbox/mbox.rb:45:in `initialize': 未初始化的常量 Mbox::StringIO (NameError)

我已经证明,就在调用 Mbox.new(m) 之前,“m”被分配了一个包含文件内容的字符串。

看起来Mbox::StringIO应该由尚未定义。

这里出了什么问题?

红宝石版本:

ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]

(这是 OS X 10.6.6 上安装的默认 ruby​​)

4

1 回答 1

0

对不起的人,我应该在发帖之前仔细看看......

修复:

刚刚插入行需要'stringio'来给出这个:

#!/usr/bin/ruby
require 'rubygems'
require 'stringio'
require 'mbox'
m = IO.read('test.eml')
puts m.size
m = Mbox.new(m)
puts m

看起来 stringio 被假定为已加载 - 但不是由 ruby​​-mbox 显式加载...

奇怪的是,示例脚本也不加载它......

于 2011-01-15T16:01:43.407 回答