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) |