クローラーを書いている

今日の昼くらいからHTTPレスポンスを nokogiri でスクレイピングしています。
試行錯誤したりテストするたびにHTTPリクエスト送っていると待ち時間がチリツモで時間がかかりがちだったので、
HTTPレスポンスをファイルに吐く(キャッシュと呼ぶことにする)ようにすれば最高になると思い、そのようなgemを作ってみました。

ミスヒットすればHTTPリクエストを送信します。キャッシュにヒットすればすぐ返ってきます。
git管理しておけばテストにも使えそうです。

https://github.com/jiikko/http_response_to_fs

OpenURIのopenメソッドの代わりに HttpResponseTofs.open と呼ぶだけでOKです。

require 'open-uri'
open('http://google.com') # => Fileインスタンス
HttpResponseTofs.open('http://google.net') # => Fileインスタンス
2.4.1 :001 > HttpResponseTofs.cache_dir = './lib/http_cache/'
 => "./lib/http_cache/"
2.4.1 :002 > HttpResponseTofs.open('http://google.net')
 => #<File:./lib/http_cache/http:,,google.net>
2.4.1 :003 > HttpResponseTofs.open('http://google.net')
 => #<File:./lib/http_cache/http:,,google.net> # from cache

キャッシュをおくディレクトリは指定する必要があります。
今のところ最高です。