Class: Adminsite::Page
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Adminsite::Page
- Defined in:
- app/models/adminsite/page.rb
Class Method Summary collapse
Instance Method Summary collapse
- #cache_dir ⇒ Object
- #cleanup_cached ⇒ Object
- #content_for_template(liquid_params) ⇒ Object
- #layout_args(args) ⇒ Object
- #remove_cache_file(file_path) ⇒ Object
- #render(args) ⇒ Object
Class Method Details
.cacheable ⇒ Object
16 17 18 |
# File 'app/models/adminsite/page.rb', line 16 def cacheable where(cacheable: true) end |
.cleanup_all_cached ⇒ Object
9 10 11 12 13 14 |
# File 'app/models/adminsite/page.rb', line 9 def cleanup_all_cached Adminsite::Page.all.each do |p| p.cleanup_cached end logger.info("Page cache has been wiped out: deleted all cached pages.") end |
.requires_login ⇒ Object
20 21 22 |
# File 'app/models/adminsite/page.rb', line 20 def requires_login where(requires_login: true) end |
Instance Method Details
#cache_dir ⇒ Object
26 27 28 |
# File 'app/models/adminsite/page.rb', line 26 def cache_dir @cache_dir ||= Adminsite::ContentsController.page_cache_directory # Adminsite::Engine.config.action_controller.page_cache_directory end |
#cleanup_cached ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'app/models/adminsite/page.rb', line 30 def cleanup_cached return if self.url.blank? logger.info("Removing cached page for: #{self.url}") cache_file_path = "#{cache_dir}/#{self.url}" if !remove_cache_file(cache_file_path) remove_cache_file("#{cache_file_path}.html") end end |
#content_for_template(liquid_params) ⇒ Object
55 56 57 58 |
# File 'app/models/adminsite/page.rb', line 55 def content_for_template(liquid_params) liquid_template = Liquid::Template.parse(body) liquid_template.render(liquid_params.stringify_keys) end |
#layout_args(args) ⇒ Object
51 52 53 |
# File 'app/models/adminsite/page.rb', line 51 def layout_args(args) args.stringify_keys.merge(:content_for_template => content_for_template(args)) end |
#remove_cache_file(file_path) ⇒ Object
39 40 41 42 43 44 45 |
# File 'app/models/adminsite/page.rb', line 39 def remove_cache_file(file_path) if File.exist?(file_path) logger.info("Removing cached page at: #{file_path}") FileUtils.rm(file_path) true end end |
#render(args) ⇒ Object
47 48 49 |
# File 'app/models/adminsite/page.rb', line 47 def render(args) page_layout.render(layout_args(args)) end |