Changeset 1589 for lang/ruby/cocproxy

Show
Ignore:
Timestamp:
11/15/07 21:10:22 (6 years ago)
Author:
cho45
Message:

lang/ruby/cocproxy/proxy.rb:

できるかぎりキャッシュするように (相手のサーバにアクセスしない)
オフにできるオプションがあってもいいかもしれない。
部分置換の場合はあいかわらず常にとりにいく

CodeRepos? のトップページとかリロードしまくって開発してると
hatena のアイコンが読みこまれなくなってかなしいですね。

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/ruby/cocproxy/proxy.rb

    r325 r1589  
    5959また、置換後のファイルでは proxy-replace 以降、行末までは削除されるため、 
    6060proxy-replace のあとを HTML エスケープなどする必要はない。 
     61 
     62== キャッシュ == 
     63 
     64開発用のプロキシでリロードをしまくる性質上、 
     65置換対象のファイルでない限り全てのリソースを無条件にキャッシュする。 
     66 
     67もしキャッシュをクリアしたければ、?clearcache=1 をつけて、 
     68適当な URL にアクセスすれば良い。 
    6169 
    6270== さらに == 
     
    249257                                puts "Rewrited: <= #{local_path}" 
    250258                        else 
    251                                 super 
     259                                @cache = {} if !@cache || req.query.key?("clearcache") 
     260                                r = @cache[req.request_uri.to_s] 
     261 
     262                                if r 
     263                                        r.instance_variables.each do |i| 
     264                                                res.instance_variable_set(i, r.instance_variable_get(i)) 
     265                                        end 
     266                                        $stderr.puts "Cached: #{req.request_uri}" 
     267                                else 
     268                                        super 
     269                                        @cache[req.request_uri.to_s] = res.dup 
     270                                end 
    252271                        end 
    253272                        req.header["referer"] = ["http://#{req.header["host"][0]}"]