Skip to content

Commit d2ef752

Browse files
cguntheravit
authored andcommitted
Add compatibility with actionpack-page_caching v1.1.0 (#9)
actionpack-page_caching v1.1.0 rewrote the internals of performing the page caching to happen inside a different class, so this updates our pseudo-caching to relfect the changes. Should maintain compatibility with actionpack-page_caching <= 1.1.0. Requires ruby 2.0 due to the use of Module#prepend to add our stubs.
1 parent 5959352 commit d2ef752

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

lib/rspec-rails-caching.rb

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,15 @@ module RSpecRailsCaching
1313
Object.const_set :RAILS_CACHE, TestStore.new(do_read_cache: true)
1414
end
1515
ActionController::Base.cache_store = RAILS_CACHE
16-
ActionController::Base.class_eval do
17-
extend Extensions::ActionController::ClassMethods
16+
17+
if defined?(ActionController::Caching::Pages::PageCache)
18+
ActionController::Caching::Pages::PageCache.class_eval do
19+
prepend Extensions::ActionController::Caching::Pages::PageCache
20+
end
21+
else
22+
ActionController::Base.class_eval do
23+
extend Extensions::ActionController::ClassMethods
24+
end
1825
end
1926

2027
RSpec::Rails::ControllerExampleGroup.class_eval do

lib/rspec-rails-caching/extensions/action_controller.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,24 @@ def expire_page(path)
1616
end
1717
end
1818

19+
module Caching
20+
module Pages
21+
module PageCache
22+
def expire(path)
23+
instrument :expire_page, path do
24+
::ActionController::Base.cache_store.cached_pages.delete path
25+
::ActionController::Base.cache_store.expired_pages << path
26+
end
27+
end
28+
29+
def cache(content, path, *)
30+
instrument :write_page, path do
31+
::ActionController::Base.cache_store.cached_pages << path
32+
end
33+
end
34+
end
35+
end
36+
end
37+
1938
end
2039
end

rspec-rails-caching.gemspec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ Gem::Specification.new do |gem|
1010
gem.summary = %q{RSpec Rails Caching}
1111
gem.description = %q{RSpec helper for testing page and action caching in Rails}
1212

13+
gem.required_ruby_version = Gem::Requirement.new(">= 2.0.0")
14+
1315
gem.add_dependency "rails", ">=3.0.0"
1416
gem.add_dependency "rspec", ">=2.8.0"
1517
gem.add_dependency "rspec-rails", ">=2.10.0"

0 commit comments

Comments
 (0)