我通过 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)
答案 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明确加载......
奇怪的是,示例脚本也没有加载它......