nyoron0128's blog

がうがう

rubyのmechanizeのsave_asについて

save_asで引数渡せば、同名だった場合上書き保存されるってどこにでも書いてあったから、そう書いたら末尾に連番付いて保存されるし、おかしいなあと思ってぐぐったらこういうことだった

file.save! 'index.html' # overwrite original file

http://www.rubydoc.info/gems/mechanize/Mechanize/File:save!

破壊的メソッド

saveとsave_as

でもでも、saveがsave_asのaliasなんだったら
save!

save_as!

同じ挙動をするはずなのに

agent = Mechanize.new
filehdl = agent.get("http://www.yahoo.co.jp/")
filehdl.save_as!("data/yahoo.txt")
=> OK
agent = Mechanize.new
filehdl = agent.get("http://www.yahoo.co.jp/")
filehdl.save_as!("data/yahoo.txt")
=> get_yahoo.rb:11:in `<main>': undefined method `save_as!' for #<Mechanize::Page:0x00000002e4de08> (NoMethodError)

save_as!はundefined methodになる!

なんでやねーーーーん

C:\Ruby200-x64\lib\ruby\gems\2.0.0\gems\mechanize-2.7.3\lib\mechanize\file.rb

そのへんは両方対応させといておくんなまし・・・