WEBrick proxy の活用例

これはおもしろいかもしれない・・・。

http://www.thinkit.co.jp/article/117/3/3.html

ルールに従ってローカルにファイルを置いておくと、サーバーにファイルを取得せずに、ローカルのファイルを返すようにすることで、実際のWebサイトを変更せずに、ローカルのファイルだけで変更します。このルールは、ホスト名/パス名というファイルを置くことにします。

http://www.thinkit.co.jp/article/117/3/3.html
#!/usr/bin/env ruby
require 'webrick'
require 'webrick/httpproxy'
include WEBrick

class OriginalHTTPProxyServer < HTTPProxyServer
 def proxy_service(req, res)
   localfile = "#{req.host}/#{req.path}" # (1)
   if File.file?(localfile) # (2)
     res.body = open(localfile).read # (3)
     res.header["Content-Type"] = WEBrick::HTTPUtils.mime_type(req.path_info, WEBrick::HTTPUtils::DefaultMimeTypes) # (4)
     return
   end
   super
 end
end

s = OriginalHTTPProxyServer.new({ :Port => 8080 })
trap("INT"){ s.shutdown }
s.start

遊べる気がする。