mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Move most caching methods to ActionDispatch::Caching, and let ActionMailer and ActionController to include it
This commit is contained in:
parent
a24d067343
commit
3e824d3f5b
4 changed files with 67 additions and 109 deletions
|
@ -1,62 +1,11 @@
|
|||
require 'active_support/descendants_tracker'
|
||||
require 'action_dispatch/caching/fragments'
|
||||
require 'action_dispatch/caching'
|
||||
|
||||
module ActionMailer
|
||||
module Caching
|
||||
extend ActiveSupport::Concern
|
||||
extend ActiveSupport::Autoload
|
||||
|
||||
module ConfigMethods
|
||||
def cache_store
|
||||
config.cache_store
|
||||
end
|
||||
|
||||
def cache_store=(store)
|
||||
config.cache_store = ActiveSupport::Cache.lookup_store(store)
|
||||
end
|
||||
|
||||
private
|
||||
def cache_configured?
|
||||
perform_caching && cache_store
|
||||
end
|
||||
end
|
||||
|
||||
include AbstractController::Helpers
|
||||
include ConfigMethods
|
||||
include ActionDispatch::Caching::Fragments
|
||||
|
||||
extend ActiveSupport::Concern
|
||||
included do
|
||||
extend ConfigMethods
|
||||
|
||||
config_accessor :default_static_extension
|
||||
self.default_static_extension ||= '.html'
|
||||
|
||||
config_accessor :perform_caching
|
||||
self.perform_caching = true if perform_caching.nil?
|
||||
|
||||
class_attribute :_view_cache_dependencies
|
||||
self._view_cache_dependencies = []
|
||||
helper_method :view_cache_dependencies if respond_to?(:helper_method)
|
||||
end
|
||||
|
||||
module ClassMethods
|
||||
def view_cache_dependency(&dependency)
|
||||
self._view_cache_dependencies += [dependency]
|
||||
end
|
||||
end
|
||||
|
||||
def view_cache_dependencies
|
||||
self.class._view_cache_dependencies.map { |dep| instance_exec(&dep) }.compact
|
||||
end
|
||||
|
||||
protected
|
||||
# Convenience accessor.
|
||||
def cache(key, options = {}, &block)
|
||||
if cache_configured?
|
||||
cache_store.fetch(ActiveSupport::Cache.expand_cache_key(key, :controller), options, &block)
|
||||
else
|
||||
yield
|
||||
end
|
||||
include ActionDispatch::Caching
|
||||
end
|
||||
|
||||
def perform_caching
|
||||
|
|
|
@ -2,7 +2,6 @@ require 'fileutils'
|
|||
require 'abstract_unit'
|
||||
require 'mailers/base_mailer'
|
||||
require 'mailers/caching_mailer'
|
||||
require 'byebug'
|
||||
|
||||
CACHE_DIR = 'test_cache'
|
||||
# Don't change '/../temp/' cavalierly or you might hose something you don't want hosed
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
require 'action_dispatch/caching/fragments'
|
||||
require 'fileutils'
|
||||
require 'uri'
|
||||
require 'action_dispatch/caching'
|
||||
|
||||
module ActionController
|
||||
# \Caching is a cheap way of speeding up slow applications by keeping the result of
|
||||
|
@ -24,61 +22,12 @@ module ActionController
|
|||
# config.action_controller.cache_store = :mem_cache_store, Memcached::Rails.new('localhost:11211')
|
||||
# config.action_controller.cache_store = MyOwnStore.new('parameter')
|
||||
module Caching
|
||||
extend ActiveSupport::Concern
|
||||
extend ActiveSupport::Autoload
|
||||
|
||||
module ConfigMethods
|
||||
def cache_store
|
||||
config.cache_store
|
||||
end
|
||||
|
||||
def cache_store=(store)
|
||||
config.cache_store = ActiveSupport::Cache.lookup_store(store)
|
||||
end
|
||||
|
||||
private
|
||||
def cache_configured?
|
||||
perform_caching && cache_store
|
||||
end
|
||||
end
|
||||
|
||||
extend ActiveSupport::Concern
|
||||
include AbstractController::Callbacks
|
||||
|
||||
include ConfigMethods
|
||||
include ActionDispatch::Caching::Fragments
|
||||
|
||||
included do
|
||||
extend ConfigMethods
|
||||
|
||||
config_accessor :default_static_extension
|
||||
self.default_static_extension ||= '.html'
|
||||
|
||||
config_accessor :perform_caching
|
||||
self.perform_caching = true if perform_caching.nil?
|
||||
|
||||
class_attribute :_view_cache_dependencies
|
||||
self._view_cache_dependencies = []
|
||||
helper_method :view_cache_dependencies if respond_to?(:helper_method)
|
||||
include ActionDispatch::Caching
|
||||
end
|
||||
|
||||
module ClassMethods
|
||||
def view_cache_dependency(&dependency)
|
||||
self._view_cache_dependencies += [dependency]
|
||||
end
|
||||
end
|
||||
|
||||
def view_cache_dependencies
|
||||
self.class._view_cache_dependencies.map { |dep| instance_exec(&dep) }.compact
|
||||
end
|
||||
|
||||
protected
|
||||
# Convenience accessor.
|
||||
def cache(key, options = {}, &block)
|
||||
if cache_configured?
|
||||
cache_store.fetch(ActiveSupport::Cache.expand_cache_key(key, :controller), options, &block)
|
||||
else
|
||||
yield
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
61
actionpack/lib/action_dispatch/caching.rb
Normal file
61
actionpack/lib/action_dispatch/caching.rb
Normal file
|
@ -0,0 +1,61 @@
|
|||
require 'action_dispatch/caching/fragments'
|
||||
|
||||
module ActionDispatch
|
||||
module Caching
|
||||
extend ActiveSupport::Concern
|
||||
extend ActiveSupport::Autoload
|
||||
|
||||
module ConfigMethods
|
||||
def cache_store
|
||||
config.cache_store
|
||||
end
|
||||
|
||||
def cache_store=(store)
|
||||
config.cache_store = ActiveSupport::Cache.lookup_store(store)
|
||||
end
|
||||
|
||||
private
|
||||
def cache_configured?
|
||||
perform_caching && cache_store
|
||||
end
|
||||
end
|
||||
|
||||
include AbstractController::Helpers
|
||||
include ConfigMethods
|
||||
include ActionDispatch::Caching::Fragments
|
||||
|
||||
included do
|
||||
extend ConfigMethods
|
||||
|
||||
config_accessor :default_static_extension
|
||||
self.default_static_extension ||= '.html'
|
||||
|
||||
config_accessor :perform_caching
|
||||
self.perform_caching = true if perform_caching.nil?
|
||||
|
||||
class_attribute :_view_cache_dependencies
|
||||
self._view_cache_dependencies = []
|
||||
helper_method :view_cache_dependencies if respond_to?(:helper_method)
|
||||
end
|
||||
|
||||
module ClassMethods
|
||||
def view_cache_dependency(&dependency)
|
||||
self._view_cache_dependencies += [dependency]
|
||||
end
|
||||
end
|
||||
|
||||
def view_cache_dependencies
|
||||
self.class._view_cache_dependencies.map { |dep| instance_exec(&dep) }.compact
|
||||
end
|
||||
|
||||
protected
|
||||
# Convenience accessor.
|
||||
def cache(key, options = {}, &block)
|
||||
if cache_configured?
|
||||
cache_store.fetch(ActiveSupport::Cache.expand_cache_key(key, :controller), options, &block)
|
||||
else
|
||||
yield
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue