forked from saurabh/orbit4-5
now the caching initialized with engine
Conflicts: Gemfile
This commit is contained in:
parent
3262359911
commit
8b2281ca17
2
Gemfile
2
Gemfile
|
@ -84,7 +84,7 @@ end
|
|||
#ask
|
||||
gem 'gotcha'
|
||||
|
||||
#caching
|
||||
#caching observers
|
||||
gem 'mongoid-observers'
|
||||
|
||||
#desktop
|
||||
|
|
|
@ -15,6 +15,7 @@ class ModuleApp
|
|||
field :desktop_enabled, type: Boolean, default: false
|
||||
field :widget_settings
|
||||
field :store_permission_granted, type: Boolean, default: false
|
||||
field :cache_models, type: Array, default: []
|
||||
|
||||
has_many :categories, dependent: :destroy, :autosave => true
|
||||
has_and_belongs_to_many :tags, dependent: :destroy, :autosave => true
|
||||
|
@ -34,6 +35,7 @@ class ModuleApp
|
|||
self[:widget_methods] = reg.get_widget_methods
|
||||
self[:widget_settings] = reg.get_widget_settings
|
||||
self[:desktop_enabled] = reg.is_desktop_enabled
|
||||
self[:cache_models] = reg.get_models_to_cache
|
||||
end
|
||||
|
||||
def sub_managers
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
class OrbitObserver < Mongoid::Observer
|
||||
# observe OrbitApp.get_models
|
||||
observe :tag, :category
|
||||
models_to_cache = OrbitApp.get_models_for_caching
|
||||
observe models_to_cache.keys
|
||||
|
||||
def after_save(document)
|
||||
clear_cache(document)
|
||||
|
@ -11,7 +11,7 @@ class OrbitObserver < Mongoid::Observer
|
|||
end
|
||||
|
||||
def clear_cache(document)
|
||||
# model_module_hash = OrbitApp.get_model_module_hash
|
||||
model_module_hash = OrbitApp.get_model_hash_for_caching
|
||||
case document.class.to_s
|
||||
when 'Tag'
|
||||
document.module_app.each do |module_app|
|
||||
|
@ -20,7 +20,7 @@ class OrbitObserver < Mongoid::Observer
|
|||
when 'Category'
|
||||
Rails.cache.delete_matched( /#{ document.module_app.key }/ )
|
||||
else
|
||||
# Rails.cache.delete_matched( /#{model_module_hash[document.class.to_s]}/ )
|
||||
Rails.cache.delete_matched( /#{model_module_hash[document.name.underscore.to_sym]}/ )
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,7 @@
|
|||
GEM
|
||||
specs:
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
|
@ -40,7 +40,7 @@ module OrbitApp
|
|||
end
|
||||
|
||||
class RegisteredModule
|
||||
attr_reader :name,:key,:base_path, :module_label,:widget_methods,:authorizable_models,:is_authorizable, :data_count, :widget_settings, :icon_class_no_sidebar,:desktop_enabled
|
||||
attr_reader :name,:key,:base_path, :module_label,:widget_methods,:authorizable_models,:is_authorizable, :data_count, :widget_settings, :icon_class_no_sidebar,:desktop_enabled, :models_to_cache
|
||||
|
||||
def initialize(name,&block)
|
||||
@name = name
|
||||
|
@ -48,6 +48,7 @@ module OrbitApp
|
|||
@side_bar = nil
|
||||
@module_label = @name
|
||||
@widget_methods = []
|
||||
@models_to_cache = []
|
||||
@widget_settings = {}
|
||||
@is_taggable = false
|
||||
@authorizable_models = []
|
||||
|
@ -93,6 +94,14 @@ module OrbitApp
|
|||
@widget_settings = settings.first
|
||||
end
|
||||
|
||||
def models_to_cache(models)
|
||||
@models_to_cache = models
|
||||
end
|
||||
|
||||
def get_models_to_cache
|
||||
@models_to_cache
|
||||
end
|
||||
|
||||
def get_widget_settings
|
||||
@widget_settings
|
||||
end
|
||||
|
|
|
@ -21,6 +21,24 @@ module OrbitApp
|
|||
end
|
||||
end
|
||||
|
||||
def get_models_for_caching
|
||||
@models_for_caching = {}
|
||||
ModuleApp.all.each do |ma|
|
||||
# models.concat(ma.cache_models)
|
||||
ma.cache_models.each do |cm|
|
||||
@models_for_caching[cm] = ma.key
|
||||
end
|
||||
end
|
||||
@models_for_caching[:tag] = "Tag"
|
||||
@models_for_caching[:category] = "Category"
|
||||
puts @models_for_caching.to_s
|
||||
return @models_for_caching
|
||||
end
|
||||
|
||||
def get_model_hash_for_caching
|
||||
@models_for_caching
|
||||
end
|
||||
|
||||
def check_module_permissions
|
||||
store_token = Site.first.store_token rescue nil
|
||||
module_apps = ModuleApp.all
|
||||
|
|
Loading…
Reference in New Issue