Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # put in config/application.rb
- config.to_prepare do
- ::PagesController.module_eval do
- caches_page :show, :unless => proc {|c| c.user_signed_in? || c.flash.any? }
- caches_page :home, :unless => proc {|c| c.user_signed_in? || c.flash.any? }
- end
- ::Page.module_eval do
- after_save :clear_static_caching!
- after_destroy :clear_static_caching!
- def clear_static_caching!
- Page.all.map(&:url).map{|u|
- [(u if u.is_a?(String)), (u[:path] if u.respond_to?(:keys))].compact
- }.flatten.map{ |u| [(u.split('/').last || 'index'), 'html'].join('.')}.each do |page|
- if (static_file = Rails.root.join('public', page)).file?
- $stdout.puts "Clearing cached page #{static_file.split.last}"
- static_file.delete
- end
- end
- end
- protected :clear_static_caching!
- end
- end
Add Comment
Please, Sign In to add comment