読者です 読者をやめる 読者になる 読者になる

@toshiyuki83 Webサービス更新履歴&技術情報

PHP(FuelPHP)とかJavaScript(TitaniumMobile)とか、Webサービス情報など

WWW::Mechanizeが動かなかった原因(get.agentができない)

Ruby エラー

WWW::Mechanizeをインストールすることに成功し試してみるも、エラーが出る。


短文に区切って、少しずつ実行してみると、get.agentでひっかかっている模様。


下記のようなエラーが出ます。もしかしたら、同じような状態がいるかもしれないので、
一応記しておきます。
(カタカナのところは代入)

C:\rubyp>ruby ファイル名.rb
c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain/ssl_resolver.rb:20:in `handle':

undefined method `instance_variable_defined?' for # (NoMethodError)

from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain.rb:30:in `pass'
from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain/handler.rb:6:in `handle'
from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain/connection_resolver.rb:73:in `handle'
from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain.rb:30:in `pass'
from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain/handler.rb:6:in `handle'
from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain/request_resolver.rb:27:in `handle'
from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain.rb:30:in `pass'
from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain/handler.rb:6:in `handle'
from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain/parameter_resolver.rb:18:in `handle'
from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain.rb:30:in `pass'
from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain/handler.rb:6:in `handle'
from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain/uri_resolver.rb:72:in `handle'
from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain.rb:25:in `handle'
from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize.rb:457:in `fetch_page'
from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize.rb:238:in `get'
from ファイル名.rb:45

やっと原因がわかりました。
私の開発環境はwindowsで、訳があり、Ruby1.4で実行していたのですが、この古い1.4が原因のようでした。


Rubyのアップデートをためらっていたわけですが、もういいやと思い、Rubyをアンインストールし、
1.6のOne Click Installerを実行し、gem installし、
gem install --systemをし、
gem install mechanizeをし、
Mechanizeのサンプルプログラムを実行すると、成功!!


いや〜長かった。明日はオリジナルプログラムを書こう!