From f7f6acee0b5beab61ea6d3e7996ce93fd0a4b22f Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Wed, 15 May 2013 15:22:34 +0300
Subject: [PATCH] Lets cache branch_names, tag_names for repo

---
 app/models/repository.rb | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/app/models/repository.rb b/app/models/repository.rb
index d45ec9bd575f5..daf176576adab 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -33,6 +33,18 @@ def commits_between(target, source)
     commits
   end
 
+  def branch_names
+    Rails.cache.fetch(cache_key(:branch_names)) do
+      raw_repository.branch_names
+    end
+  end
+
+  def tag_names
+    Rails.cache.fetch(cache_key(:tag_names)) do
+      raw_repository.tag_names
+    end
+  end
+
   def method_missing(m, *args, &block)
     raw_repository.send(m, *args, &block)
   end
@@ -47,6 +59,8 @@ def size
 
   def expire_cache
     Rails.cache.delete(cache_key(:size))
+    Rails.cache.delete(cache_key(:branch_names))
+    Rails.cache.delete(cache_key(:tag_names))
   end
 
   def cache_key(type)
-- 
GitLab