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
|
#ask
|
||||||
gem 'gotcha'
|
gem 'gotcha'
|
||||||
|
|
||||||
#caching
|
#caching observers
|
||||||
gem 'mongoid-observers'
|
gem 'mongoid-observers'
|
||||||
|
|
||||||
#desktop
|
#desktop
|
||||||
|
|
|
@ -15,6 +15,7 @@ class ModuleApp
|
||||||
field :desktop_enabled, type: Boolean, default: false
|
field :desktop_enabled, type: Boolean, default: false
|
||||||
field :widget_settings
|
field :widget_settings
|
||||||
field :store_permission_granted, type: Boolean, default: false
|
field :store_permission_granted, type: Boolean, default: false
|
||||||
|
field :cache_models, type: Array, default: []
|
||||||
|
|
||||||
has_many :categories, dependent: :destroy, :autosave => true
|
has_many :categories, dependent: :destroy, :autosave => true
|
||||||
has_and_belongs_to_many :tags, 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_methods] = reg.get_widget_methods
|
||||||
self[:widget_settings] = reg.get_widget_settings
|
self[:widget_settings] = reg.get_widget_settings
|
||||||
self[:desktop_enabled] = reg.is_desktop_enabled
|
self[:desktop_enabled] = reg.is_desktop_enabled
|
||||||
|
self[:cache_models] = reg.get_models_to_cache
|
||||||
end
|
end
|
||||||
|
|
||||||
def sub_managers
|
def sub_managers
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
class OrbitObserver < Mongoid::Observer
|
class OrbitObserver < Mongoid::Observer
|
||||||
# observe OrbitApp.get_models
|
models_to_cache = OrbitApp.get_models_for_caching
|
||||||
observe :tag, :category
|
observe models_to_cache.keys
|
||||||
|
|
||||||
def after_save(document)
|
def after_save(document)
|
||||||
clear_cache(document)
|
clear_cache(document)
|
||||||
|
@ -11,7 +11,7 @@ class OrbitObserver < Mongoid::Observer
|
||||||
end
|
end
|
||||||
|
|
||||||
def clear_cache(document)
|
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
|
case document.class.to_s
|
||||||
when 'Tag'
|
when 'Tag'
|
||||||
document.module_app.each do |module_app|
|
document.module_app.each do |module_app|
|
||||||
|
@ -20,7 +20,7 @@ class OrbitObserver < Mongoid::Observer
|
||||||
when 'Category'
|
when 'Category'
|
||||||
Rails.cache.delete_matched( /#{ document.module_app.key }/ )
|
Rails.cache.delete_matched( /#{ document.module_app.key }/ )
|
||||||
else
|
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
|
end
|
||||||
end
|
end
|
|
@ -0,0 +1,7 @@
|
||||||
|
GEM
|
||||||
|
specs:
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
|
@ -40,7 +40,7 @@ module OrbitApp
|
||||||
end
|
end
|
||||||
|
|
||||||
class RegisteredModule
|
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)
|
def initialize(name,&block)
|
||||||
@name = name
|
@name = name
|
||||||
|
@ -48,6 +48,7 @@ module OrbitApp
|
||||||
@side_bar = nil
|
@side_bar = nil
|
||||||
@module_label = @name
|
@module_label = @name
|
||||||
@widget_methods = []
|
@widget_methods = []
|
||||||
|
@models_to_cache = []
|
||||||
@widget_settings = {}
|
@widget_settings = {}
|
||||||
@is_taggable = false
|
@is_taggable = false
|
||||||
@authorizable_models = []
|
@authorizable_models = []
|
||||||
|
@ -93,6 +94,14 @@ module OrbitApp
|
||||||
@widget_settings = settings.first
|
@widget_settings = settings.first
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def models_to_cache(models)
|
||||||
|
@models_to_cache = models
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_models_to_cache
|
||||||
|
@models_to_cache
|
||||||
|
end
|
||||||
|
|
||||||
def get_widget_settings
|
def get_widget_settings
|
||||||
@widget_settings
|
@widget_settings
|
||||||
end
|
end
|
||||||
|
|
|
@ -21,6 +21,24 @@ module OrbitApp
|
||||||
end
|
end
|
||||||
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
|
def check_module_permissions
|
||||||
store_token = Site.first.store_token rescue nil
|
store_token = Site.first.store_token rescue nil
|
||||||
module_apps = ModuleApp.all
|
module_apps = ModuleApp.all
|
||||||
|
|
Loading…
Reference in New Issue