Ruby 逆引きレシピ レシピ130-133

Ruby 逆引きレシピ すぐに美味しいサンプル&テクニック 232 (PROGRAMMER’S RECIPE)

Ruby 逆引きレシピ すぐに美味しいサンプル&テクニック 232 (PROGRAMMER’S RECIPE)

今日はレシピ 130 から 133 までを読みました。

引き続き Web関連のライブラリと dRuby のところです。

レシピ 130 より、FakeWeb というライブラリで HTTP アクセスをオフラインでエミュレートする方法が紹介されています。主に HTTPサーバに接続するスクリプトをテストする時に使うようです。これは Net::HTTP でのアクセスと open-uri でのアクセスどちらでも対応していると書かれているので、どのように実装されているのか(直接 TCPSocket でポートを開いても有効なのか)ソースを確認してみました。
結論としては、fakeweb(1.2.8) は 1.9 では open-uri に対応していませんでした。ソースを読むかぎりでは Net::HTTP は独自に拡張して接続を騙すようになていますが、open-uri についてはそのような拡張はみあたらなかったので元々未対応なのではないかと思うのですが……。

レシピ 131 より、open-uri-mapping を用いると、oprn-uri で開いた URI をローカルのファイルにすりかえることができるので、こちらで代替できそうです。

第6章 ネットワークを読み終えました。そろそろ半分は超えましたね。