33 lines
695 B
Ruby
33 lines
695 B
Ruby
#coding=utf-8
|
|
|
|
module Trustie
|
|
module Cache
|
|
module ClearCourseEvent
|
|
def self.included(base)
|
|
base.class_eval{
|
|
after_create :clear_course_events
|
|
after_destroy :clear_course_events
|
|
}
|
|
end
|
|
|
|
def clear_course_events
|
|
if Rails.env.production? && Setting.course_cahce_enabled?
|
|
Rails.cache.delete(cache_key)
|
|
end
|
|
end
|
|
|
|
def cache_key
|
|
course_id = nil
|
|
if Message === self.act
|
|
course_id = self.act.board.course_id
|
|
elsif self.act.respond_to?(:course_id)
|
|
course_id = self.act.course_id
|
|
end
|
|
"course_events_#{course_id}".to_sym
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
|