Windows 版 Ruby の open-uri に POST メソッドを使えるようにする patch を当てる
参考したリンクは下記のとおり。
元に戻したくなったら、バックアップされたopen-uri.rb.origがあると思うので、そいつでopen-uri.rbを上書きするなどしてみてください。
http://blog.livedoor.jp/sparklegate/archives/50288860.html
と記載されているが、バックアップされた「open-uri.rb.orig」は作成されなかった。
なので、明示的にバックアップを作成するように指定した。
C:\ruby\lib\ruby\1.8>patch -b -z .orig open-uri.rb diff-1.8 patching file open-uri.rb C:\ruby\lib\ruby\1.8>dir (略) 2008/07/10 10:49 22,827 open-uri.rb 2007/02/13 08:01 21,313 open-uri.rb.orig (略)
詳細は、Manpage of PATCHを参照してもらうとして、指定したオプションは下記の通り。
- -b バックアップファイルを作成する
- -z suffix suffix を簡易バックアップサフィクスとして使う。
Windows XP 上では下記の作業を行った
- Make open-uri capable of handling HTTP methods other than GETから Ruby 1.8.x 用の patch をダウンロード。
- パッチ名は「diff-1.8」。
- 作業を始める前に、open-uri.rb のオリジナルを任意のフォルダにコピーしておく。
patch に失敗したときに、取り返しが効くようにするための対応。 - patch を open-uri.rb があるフォルダに移動する。
今回は、Ruby を「C:\ruby」に配置している。そのため、open-uri.rb は「C:\ruby\lib\ruby\1.8」にある。 - 「コマンド プロンプト」を起動し、「C:\ruby\lib\ruby\1.8」に移動する。
- 「patch -b -z .orig open-uri.rb diff-1.8」を実行する。
- その後、動作確認して、patch が正常に行われたかを確認する。
実際に「コマンド プロンプト」に入力した内容は下記の通り。
C:\Documents and Settings\littlebuddha>cd C:\ruby\lib\ruby\1.8 C:\ruby\lib\ruby\1.8>dir ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は 8858-595C です C:\ruby\lib\ruby\1.8 のディレクトリ (略) 2008/07/10 10:29 2,052 diff-1.8 (略) 2007/02/13 08:01 21,313 open-uri.rb (略) 101 個のファイル 1,118,462 バイト 33 個のディレクトリ 10,458,206,208 バイトの空き領域 C:\ruby\lib\ruby\1.8>patch -b -z .orig open-uri.rb diff-1.8 patching file open-uri.rb C:\ruby\lib\ruby\1.8>dir ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は 8858-595C です C:\ruby\lib\ruby\1.8 のディレクトリ (略) 2008/07/10 10:29 2,052 diff-1.8 (略) 2008/07/10 10:49 22,827 open-uri.rb 2007/02/13 08:01 21,313 open-uri.rb.orig (略) 103 個のファイル 1,143,341 バイト 33 個のディレクトリ 10,458,038,272 バイトの空き領域 C:\ruby\lib\ruby\1.8>