forked from saurabh/orbit4-5
26 lines
668 B
Ruby
26 lines
668 B
Ruby
class OrbitObserver < Mongoid::Observer
|
|
models_to_cache = OrbitApp.get_models_for_caching
|
|
observe models_to_cache.keys
|
|
|
|
def after_save(document)
|
|
clear_cache(document)
|
|
end
|
|
|
|
def after_destroy(document)
|
|
clear_cache(document)
|
|
end
|
|
|
|
def clear_cache(document)
|
|
model_module_hash = OrbitApp.get_model_hash_for_caching
|
|
case document.class.to_s
|
|
when 'Tag'
|
|
document.module_app.each do |module_app|
|
|
Rails.cache.delete_matched( /#{ module_app.key }/ )
|
|
end
|
|
when 'Category'
|
|
Rails.cache.delete_matched( /#{ document.module_app.key }/ )
|
|
else
|
|
Rails.cache.delete_matched( /#{model_module_hash[document.class.name.underscore.to_sym]}/ )
|
|
end
|
|
end
|
|
end |