为什么这段代码不使用ruby-mbox gem解析mbox文件?

时间:2011-01-15 15:50:24

标签: ruby email rubygems mbox

我通过 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':uninitialized constant Mbox :: StringIO(NameError)< /强>

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

看起来 Mbox :: StringIO 应该已经定义了。

这里出了什么问题?

Ruby版本:

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

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

1 个答案:

答案 0 :(得分:0)

对不起的人,在发布这里之前我应该​​更加努力......

修正了它:

只需插入 require'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明确加载......

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