<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,34 +1,37 @@
- require 'rubygems'
- require 'sinatra'
- require 'sinatra/test/spec'
- require 'usericons'
+require 'rubygems'
+require 'sinatra'
+require 'sinatra/test/spec'
+require 'usericons'
 
- describe 'Usericons' do
-   it &quot;should show a default page&quot; do
-     get_it '/'
-     should.be.ok
-   end
+describe 'Usericons' do
+  it &quot;should show a default page&quot; do
+    get_it '/'
+    should.be.ok
+  end
 
-   it &quot;should redirect twitter icon url&quot; do
-     get_it '/twitter/swdyh'
-     body.should.be.equal ''
-     status.should.be 302
-     headers['Location'].should.match(/^http:\/\/s3.amazonaws.com/)
-   end
+  it &quot;should redirect twitter icon url&quot; do
+    get_it '/twitter/swdyh'
+    body.should.be.equal ''
+    status.should.be 302
+    headers['Location'].should.match(/^http:\/\/s3.amazonaws.com/)
+  end
 
-   it &quot;should redirect hatena icon url&quot; do
-     get_it '/hatena/swdyh'
-     body.should.be.equal ''
-     status.should.be 302
-     headers['Location'].should.match(/^http:\/\/www\.hatena\.ne\.jp\//)
-   end
-
-   it &quot;should redirect twitter icon url with url options&quot; do
-     get_it '/?url=http://twitter.com/swdyh'
-     body.should.be.equal ''
-     status.should.be 302
-     headers['Location'].should.match(/^http:\/\/s3.amazonaws.com/)
-   end
- end
+  it &quot;should redirect hatena icon url&quot; do
+    get_it '/hatena/swdyh'
+    body.should.be.equal ''
+    status.should.be 302
+    headers['Location'].should.match(/^http:\/\/www\.hatena\.ne\.jp\//)
+  end
 
+  it &quot;should redirect twitter icon url with url options&quot; do
+    get_it '/?url=http://twitter.com/swdyh'
+    body.should.be.equal ''
+    status.should.be 302
+    headers['Location'].should.match(/^http:\/\/s3.amazonaws.com/)
+  end
 
+  it &quot;shuod set http cache&quot; do
+    get_it '/twitter/swdyh'
+    headers['Cache-Control'].should.be.equal 'private, max-age=10800'
+  end
+end</diff>
      <filename>test/usericons_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,6 +12,7 @@ end
 URL = 'http://usericons.relucks.org/'
 CACHE_DIR = 'tmp'
 CACHE_EXPIRE = 60 * 60 * 3
+HTTP_CACHE_EXPIRE = 60 * 60 * 3
 
 get '/' do
   avt = Avaticon.new
@@ -47,18 +48,24 @@ get '/:service/:user_id' do
 
   path = File.join(CACHE_DIR, encode64url(&quot;#{service}_#{user_id}&quot;))
   if File.exist?(path) &amp;&amp; File.mtime(path) &gt; (Time.now - CACHE_EXPIRE)
+    set_cache
     redirect IO.read(path).strip
   end
 
   begin
     icon_url = avt.get_icon service, user_id
     open(path, 'w') { |f| f.puts icon_url }
+    set_cache
     redirect icon_url
   rescue Exception =&gt; e
     throw :halt, [500, 'server error.']
   end
 end
 
+def set_cache
+  headers 'Cache-Control' =&gt; &quot;private, max-age=#{HTTP_CACHE_EXPIRE}&quot;
+end
+
 use_in_file_templates!
 
 __END__</diff>
      <filename>usericons.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>b6b29b6d291e2337bd080263feb979bcf8983c06</id>
    </parent>
  </parents>
  <author>
    <name>swdyh</name>
    <email>youhei@gmail.com</email>
  </author>
  <url>http://github.com/swdyh/usericons.relucks.org/commit/4817ab01d2ab05f8594259f9ac078b96d832f9eb</url>
  <id>4817ab01d2ab05f8594259f9ac078b96d832f9eb</id>
  <committed-date>2008-12-13T10:15:32-08:00</committed-date>
  <authored-date>2008-12-13T10:15:32-08:00</authored-date>
  <message> * added Cache-Control</message>
  <tree>2a1c167f6888cd71099392300ec9a80f557c5560</tree>
  <committer>
    <name>swdyh</name>
    <email>youhei@gmail.com</email>
  </committer>
</commit>
