Pourquoi pas ce code en utilisant la pierre précieuse rubis mbox analyse des fichiers mbox?
Question
J'ai installé rubis Mbox en faisant gem install rubis mbox
L'exécution de cette:
#!/usr/bin/ruby
require 'rubygems'
require 'mbox'
m = IO.read('test.eml')
puts m.size
m = Mbox.new(m)
puts m
produit cette exception (ligne 7):
/Library/Ruby/Gems/1.8/gems/ruby-mbox-0.0.2/lib/mbox/mbox.rb:45:in `initialize ': constante non initialisée Mbox :: StringIO (NameError)
Je l'ai prouvé que « m » est attribué une chaîne contenant le contenu du fichier, juste avant Mbox.new (m) est appelé.
Il semble que le Mbox :: StringIO aurait dû être défini par n'a pas été.
Qu'est-ce qui ne va pas ici?
Version Ruby:
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
(C'est le rubis par défaut installé sur OS X 10.6.6)
La solution
personnes Désolé, j'aurais regardé plus dur avant de poster ici ...
fixe il:
Juste insérer la ligne require 'StringIO' pour donner ceci:
#!/usr/bin/ruby
require 'rubygems'
require 'stringio'
require 'mbox'
m = IO.read('test.eml')
puts m.size
m = Mbox.new(m)
puts m
On dirait que StringIO est supposé être chargé - mais n'est pas explicitement chargé par Ruby-mbox ...
Bizarrement, les exemples de scripts ne se chargent pas non plus ...