Ruby Mechanize で セッションCookie を保存する方法
Ruby の Mechanize Ver.2.7.3 でセッションの Cookie を保存できなくてハマってました。
コードを追ったところ save_as メソッドの場合は第2引数にオプションを渡してあげればいいみたいです。
agent.cookie_jar.save_as cookie_path_or_io, {:session => true}
このsession オプションがデフォルトでは false なので、セッション関連の Cookie が保存されなかったんですね。
他にも書き出しフォーマットを変更する :format オプションもあります。
agent.cookie_jar.save_as cookie_path_or_io, {:format => :yaml}
でも他に何で書き出すんだろう…謎。
ちなみに Mechanize::CookieJar#save_as 実装自体は HTTP::CookieJar#save を使っているみたいです。
参考:Class: HTTP::CookieJar — Documentation for http-cookie (1.0.2)
さらにちなみにファイルに保存したcookieの内容を読み出すのは
agent.cookie_jar.load cookie_path_or_io
です。