open-uri に post メソッドを使えるようにパッチを当てる
参考にしたのは、下記のサイト。
kitajさんの記事で知ったopen-uri-post.rbが素敵です。
ちょっとコードを足せば機能を補充できる動的言語ならではの解決策。
でも、RESTなWeb APIをペシペシ叩きたくなって、PUTやらDELETEやらHEADやらをサポートしようと改造したりしてみたのですが、調べているうちに素敵なパッチ発見。
これをopen-uri.rbに適用してみたら、open-uriでHTTPのリクエストメソッドが全て使えるようになりました。
やむにやまれず:open-uriは便利だがGETしかできないので何とかする話
パッチをどのように当てたのか忘れないように、記録をしておく。
% cd ~ % wget http://rubyforge.org/tracker/download.php/426/1700/6321/890/diff-1.8 --2008-03-17 23:24:58-- http://rubyforge.org/tracker/download.php/426/1700/6321/890/diff-1.8 rubyforge.org をDNSに問いあわせています... 205.234.109.19 rubyforge.org|205.234.109.19|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 2052 (2.0K) [application/octet-stream] `diff-1.8' に保存中 100%[========================================================================================================>] 2,052 --.-K/s 時間 0s 2008-03-17 23:24:59 (103 MB/s) - `diff-1.8' へ保存完了 [2052/2052] % cd /opt/local/lib/ruby/1.8/ % sudo patch open-uri.rb ~/diff-1.8 Password: patching file open-uri.rb
元に戻したくなったら、バックアップされたopen-uri.rb.origがあると思うので、そいつでopen-uri.rbを上書きするなどしてみてください。
と書かれていたが、オリジナルの open-uri.rb.orig は見つからなかった。きちんとバックアップをとるべきだったと反省。