Commit 693878cf3898b2161904f28db971acf78bfd1ae5
1 parent
3471e26f
Exists in
master
and in
4 other branches
Cache repo size inside repo model
Showing
1 changed file
with
16 additions
and
0 deletions
Show diff stats
app/models/repository.rb
@@ -37,6 +37,22 @@ class Repository | @@ -37,6 +37,22 @@ class Repository | ||
37 | raw_repository.send(m, *args, &block) | 37 | raw_repository.send(m, *args, &block) |
38 | end | 38 | end |
39 | 39 | ||
40 | + # Return repo size in megabytes | ||
41 | + # Cached in redis | ||
42 | + def size | ||
43 | + Rails.cache.fetch(cache_key(:size)) do | ||
44 | + raw_repository.size | ||
45 | + end | ||
46 | + end | ||
47 | + | ||
48 | + def expire_cache | ||
49 | + Rails.cache.delete(cache_key(:size)) | ||
50 | + end | ||
51 | + | ||
52 | + def cache_key(type) | ||
53 | + "#{type}:#{path_with_namespace}" | ||
54 | + end | ||
55 | + | ||
40 | def respond_to?(method) | 56 | def respond_to?(method) |
41 | return true if raw_repository.respond_to?(method) | 57 | return true if raw_repository.respond_to?(method) |
42 | 58 |