From 693878cf3898b2161904f28db971acf78bfd1ae5 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Sun, 28 Apr 2013 23:04:56 +0300 Subject: [PATCH] Cache repo size inside repo model --- app/models/repository.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+), 0 deletions(-) diff --git a/app/models/repository.rb b/app/models/repository.rb index ed600e2..d45ec9b 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -37,6 +37,22 @@ class Repository raw_repository.send(m, *args, &block) end + # Return repo size in megabytes + # Cached in redis + def size + Rails.cache.fetch(cache_key(:size)) do + raw_repository.size + end + end + + def expire_cache + Rails.cache.delete(cache_key(:size)) + end + + def cache_key(type) + "#{type}:#{path_with_namespace}" + end + def respond_to?(method) return true if raw_repository.respond_to?(method) -- libgit2 0.21.2