orbit4-5/app/models/orbit_observer.rb

26 lines
668 B
Ruby
Raw Normal View History

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
2015-03-25 14:08:30 +00:00
Rails.cache.delete_matched( /#{model_module_hash[document.class.name.underscore.to_sym]}/ )
end
end
end