Commit f7f6acee0b5beab61ea6d3e7996ce93fd0a4b22f

Authored by Dmitriy Zaporozhets
1 parent e36c0c14

Lets cache branch_names, tag_names for repo

Showing 1 changed file with 14 additions and 0 deletions   Show diff stats
app/models/repository.rb
@@ -33,6 +33,18 @@ class Repository @@ -33,6 +33,18 @@ class Repository
33 commits 33 commits
34 end 34 end
35 35
  36 + def branch_names
  37 + Rails.cache.fetch(cache_key(:branch_names)) do
  38 + raw_repository.branch_names
  39 + end
  40 + end
  41 +
  42 + def tag_names
  43 + Rails.cache.fetch(cache_key(:tag_names)) do
  44 + raw_repository.tag_names
  45 + end
  46 + end
  47 +
36 def method_missing(m, *args, &block) 48 def method_missing(m, *args, &block)
37 raw_repository.send(m, *args, &block) 49 raw_repository.send(m, *args, &block)
38 end 50 end
@@ -47,6 +59,8 @@ class Repository @@ -47,6 +59,8 @@ class Repository
47 59
48 def expire_cache 60 def expire_cache
49 Rails.cache.delete(cache_key(:size)) 61 Rails.cache.delete(cache_key(:size))
  62 + Rails.cache.delete(cache_key(:branch_names))
  63 + Rails.cache.delete(cache_key(:tag_names))
50 end 64 end
51 65
52 def cache_key(type) 66 def cache_key(type)