Merged updates from trunk into stable branch
[feedcatcher.git] / vendor / rails / activerecord / lib / active_record / query_cache.rb
diff --git a/vendor/rails/activerecord/lib/active_record/query_cache.rb b/vendor/rails/activerecord/lib/active_record/query_cache.rb
new file mode 100644 (file)
index 0000000..eb92bc2
--- /dev/null
@@ -0,0 +1,33 @@
+module ActiveRecord
+  class QueryCache
+    module ClassMethods
+      # Enable the query cache within the block if Active Record is configured.
+      def cache(&block)
+        if ActiveRecord::Base.configurations.blank?
+          yield
+        else
+          connection.cache(&block)
+        end
+      end
+
+      # Disable the query cache within the block if Active Record is configured.
+      def uncached(&block)
+        if ActiveRecord::Base.configurations.blank?
+          yield
+        else
+          connection.uncached(&block)
+        end
+      end
+    end
+
+    def initialize(app)
+      @app = app
+    end
+
+    def call(env)
+      ActiveRecord::Base.cache do
+        @app.call(env)
+      end
+    end
+  end
+end