Fedora11にしたら Mechanizeが0.9.3になって派生クラスが使えなくなった。
require "rubygems" require "mechanize" class MyMechanize < WWW::Mechanize end agent = MyMechanize.new page = agent.get("http://www.google.com") p page # p でpretty printする際にparseが動いてそこで落ちる
/usr/lib/ruby/site_ruby/1.8/www/mechanize/page.rb:77:in `parser': undefined method `parse' for nil:NilClass (NoMethodError)
生でWWW::Mechanizeクラスを使うと当然問題なし。
まだドキュメントを読んでないけど、これが駄目と言われると困ってしまう。
gem install mechanize -v 0.9.2 して gem "mechanize", "< 0.9.3" を入れるとOKなので Mechanize が直接原因。
これでとりあえず大丈夫みたいだけど。
id:kitamomonga:20090613 を見ると、文字コードの問題が改善されてるそうなのでよさげ。
2009-07-02 追記
id:kitamomongaさんに教えていただいた方法で対応!
class MyMechanize < WWW::Mechanize self.html_parser = WWW::Mechanize.html_parser end