Commit 693878cf3898b2161904f28db971acf78bfd1ae5

Authored by Dmitriy Zaporozhets
1 parent 3471e26f

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