Commit f7f6acee0b5beab61ea6d3e7996ce93fd0a4b22f
1 parent
e36c0c14
Exists in
master
and in
4 other branches
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) |