<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>autotest/discover.rb</filename>
    </added>
    <added>
      <filename>spec/highrise/cachable_spec.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -30,6 +30,7 @@ Highrise::Base.user = 'your_api_auth_token'q
                           }
     gemspec.authors = [&quot;Marcos Tapaj&#243;s&quot;, &quot;Ken Mayer&quot;]
     gemspec.add_dependency('activeresource', '&gt;=2.2')
+    gemspec.add_dependency('activesupport', '&gt;=2.1')
   end
 rescue LoadError
   puts &quot;Jeweler not available. Install it with: sudo gem install jeweler -s http://gems.github.com&quot;</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
 --- 
+:patch: 0
 :major: 0
-:minor: 7
-:patch: 1
+:minor: 8</diff>
      <filename>VERSION.yml</filename>
    </modified>
    <modified>
      <diff>@@ -7,11 +7,12 @@ require 'active_support/basic_object'
 require 'hpricot'
 require 'iconv'
 
+require File.dirname(__FILE__) + '/highrise/base'
+require File.dirname(__FILE__) + '/highrise/version'
 require File.dirname(__FILE__) + '/highrise/pagination'
 require File.dirname(__FILE__) + '/highrise/curly'
 require File.dirname(__FILE__) + '/highrise/curlhelper'
 require File.dirname(__FILE__) + '/highrise/taggable'
-require File.dirname(__FILE__) + '/highrise/base'
 require File.dirname(__FILE__) + '/highrise/subject'
 require File.dirname(__FILE__) + '/highrise/comment'
 require File.dirname(__FILE__) + '/highrise/company'
@@ -24,4 +25,3 @@ require File.dirname(__FILE__) + '/highrise/person'
 require File.dirname(__FILE__) + '/highrise/task'
 require File.dirname(__FILE__) + '/highrise/user'
 require File.dirname(__FILE__) + '/highrise/tag'
-require File.dirname(__FILE__) + '/highrise/version'
\ No newline at end of file</diff>
      <filename>lib/highrise.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,46 @@
+require 'digest/sha1'
+
 module Highrise
   class Base &lt; ActiveResource::Base
+    class &lt;&lt; self
+      def cache_store
+        if defined?(@cache_store)
+          @cache_store
+        elsif superclass != Object &amp;&amp; superclass.cache_store
+          superclass.cache_store
+        end
+      end
+
+      def cache_store=(store_option)
+        @cache_store = store_option.nil? ? nil : ActiveSupport::Cache.lookup_store(store_option)
+      end
+
+      def is_caching?
+        !cache_store.nil?
+      end
+    
+      def find(*args)
+        find_with_cache(*args)
+      end
+  
+    private
+    
+      def find_with_cache(*args)
+        return find_without_cache(*args) unless is_caching?
+        fetch(args) { find_without_cache(*args) }
+      end
+    
+      def find_without_cache(*args)
+        superclass.find(*args)
+      end
+    
+      def cache_key(*args)
+        Digest::SHA1.hexdigest args.to_s
+      end
+
+      def fetch(args, &amp;block)
+        cache_store.fetch(cache_key(args), &amp;block)
+      end
+    end
   end
-end
+end
\ No newline at end of file</diff>
      <filename>lib/highrise/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,5 +3,4 @@
 progress
 --loadby
 mtime
---reverse
---backtrace
\ No newline at end of file
+--reverse
\ No newline at end of file</diff>
      <filename>spec.opts</filename>
    </modified>
    <modified>
      <diff>@@ -2,6 +2,9 @@ require File.dirname(__FILE__) + '/../../spec_helper'
 
 describe Highrise::Pagination do
   
-  it &quot;should be tested&quot;
-
+  it &quot;should be tested&quot; do
+    Highrise::Person.should_receive(:find).with(:all,{:params=&gt;{:n=&gt;0}}).and_return([&quot;people&quot;])
+    Highrise::Person.should_receive(:find).with(:all,{:params=&gt;{:n=&gt;1}}).and_return([])
+    Highrise::Person.find_all_across_pages.should == [&quot;people&quot;]
+  end
 end</diff>
      <filename>spec/highrise/pagination_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>97fb462afa808efdc7943c0bdc5451a8b7c803d0</id>
    </parent>
  </parents>
  <author>
    <name>Kenneth Mayer</name>
    <email>kmayer@bitwrangler.com</email>
  </author>
  <url>http://github.com/tapajos/highrise/commit/4df34aa743ee00bb95552ca54ff52dd4c746b5b2</url>
  <id>4df34aa743ee00bb95552ca54ff52dd4c746b5b2</id>
  <committed-date>2009-05-01T16:07:23-07:00</committed-date>
  <authored-date>2009-05-01T16:07:23-07:00</authored-date>
  <message>Version bump to 0.8.0</message>
  <tree>08fe02a8710957366648317ac57898052c7b2a56</tree>
  <committer>
    <name>Kenneth Mayer</name>
    <email>kmayer@bitwrangler.com</email>
  </committer>
</commit>
