diff options
Diffstat (limited to 'app/models/project.rb')
-rw-r--r-- | app/models/project.rb | 17 |
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), |