HTML 以外のファイルを表す Mechanize::File オブジェクトを生成します。
file = Mechanize::File.new(URI.parse('http://www.example.com/'){
{'content-type' => 'image/jpeg'},
File.open('hoge.jpg'){|f| f.read},
'200')
# http://www.example.com/ から取得したファイルだとみなして履歴に登録
agent.__send__(:add_to_history, file)
ユーザーが使用することはあまりありません。一応、「空のページ」等の作成のために使用することはあります。
第 1引数 uri はページ(というか、ファイル)の場所を表す URL を表す Ruby 標準の URI オブジェクトです。文字列は動作しません。
第 2引数 response はサーバからの受信ヘッダを表す小文字キー Hash か
Mechanize::Headers です。本来 Net::HTTPResponse のヘッダが使われる場所なので、ヘッダ名のキーは小文字にしておいてください。
Mechanize::Page とは違い Mechanize でこの値を使用することはありません。外部利用する機会がないことがわかっているなら空の Hash {} で構いません。
第 3引数 body はサーバからのレスポンスボディです。gzip 展開済みでヘッダなどのない「ファイル」本体の文字列を指定します。
第 4引数 code はサーバからのレスポンスコードの数値文字列です。通常は '200' です。Mechanize はこの値を利用しないので、nil のままでも動作はします。
ブロックを取ることもでき、生成された File オブジェクトが渡されます。ブロックの返り値は、渡された File オブジェクトと同一です。