summaryrefslogtreecommitdiff
path: root/app/models/project.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/project.rb')
-rw-r--r--app/models/project.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 09c91fbd9ed..7998979d0d8 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -143,6 +143,23 @@ class Project < ActiveRecord::Base
last_activity.try(:created_at)
end
+ # Get project updates from cache
+ # or calculate.
+ def cached_updates(limit, expire = 2.minutes)
+ activities_key = "project_#{id}_activities"
+ cached_activities = Rails.cache.read(activities_key)
+ if cached_activities
+ activities = cached_activities
+ else
+ activities = updates(limit)
+ Rails.cache.write(activities_key, activities, :expires_in => 60.seconds)
+ end
+
+ activities
+ end
+
+ # Get 20 events for project like
+ # commits, issues or notes
def updates(n = 3)
[
fresh_commits(n),