Commit 9ef7a07492b1ae51a906ca3341e1056e710629bc

Authored by Daniela Feitosa
Committed by Antonio Terceiro
1 parent c54ef437

ActionItem1197: expiring statistics block cache

When a new profile is created, statistics block should be updated
app/models/profile.rb
... ... @@ -638,4 +638,9 @@ class Profile < ActiveRecord::Base
638 638 ProfileSweeper.new().after_update(profile)
639 639 end
640 640  
  641 + # FIXME: horrible workaround to circular dependancy in environment.rb
  642 + after_create do |profile|
  643 + ProfileSweeper.new().after_create(profile)
  644 + end
  645 +
641 646 end
... ...
app/sweepers/profile_sweeper.rb
... ... @@ -7,6 +7,10 @@ class ProfileSweeper # < ActiveRecord::Observer
7 7 expire_caches(profile)
8 8 end
9 9  
  10 + def after_create(profile)
  11 + expire_statistics_block_cache(profile)
  12 + end
  13 +
10 14 protected
11 15  
12 16 def expire_caches(profile)
... ... @@ -19,4 +23,9 @@ protected
19 23 expire_timeout_fragment(block.cache_keys)
20 24 end
21 25 end
  26 +
  27 + def expire_statistics_block_cache(profile)
  28 + blocks = profile.environment.blocks.select { |b| b.kind_of?(EnvironmentStatisticsBlock) }
  29 + blocks.map(&:cache_keys).each{|ck|expire_timeout_fragment(ck)}
  30 + end
22 31 end
... ...