qor_cache 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. data/Gemfile +2 -1
  2. data/README.md +19 -0
  3. data/app/controllers/qor/cache_controller.rb +9 -0
  4. data/app/helpers/qor/cache_helper.rb +34 -0
  5. data/config/qor/cache.rb +7 -0
  6. data/config/qor/test.rb +8 -16
  7. data/config/routes.rb +3 -0
  8. data/lib/qor_cache/configuration.rb +4 -0
  9. data/lib/qor_cache/{railtie.rb → engine.rb} +1 -1
  10. data/lib/qor_cache/kernel.rb +4 -3
  11. data/lib/qor_cache/version.rb +1 -1
  12. data/lib/qor_cache.rb +1 -1
  13. data/test/dummy/app/controllers/application_controller.rb +24 -0
  14. data/test/dummy/app/helpers/application_helper.rb +3 -0
  15. data/test/dummy/app/models/color_variation.rb +0 -1
  16. data/test/dummy/app/views/application/expires_in.html.erb +3 -0
  17. data/test/dummy/app/views/application/helpers.html.erb +3 -0
  18. data/test/dummy/app/views/application/index.html.erb +3 -0
  19. data/test/dummy/app/views/application/nocache.html.erb +3 -0
  20. data/test/dummy/app/views/application/products.html.erb +3 -0
  21. data/test/dummy/app/views/application/with_block.html.erb +9 -0
  22. data/test/dummy/app/views/qor_cache_includes/expires_in_time.html.erb +2 -0
  23. data/test/dummy/app/views/qor_cache_includes/helper_time.html.erb +1 -0
  24. data/test/dummy/app/views/qor_cache_includes/nocache_time.html.erb +1 -0
  25. data/test/dummy/app/views/qor_cache_includes/products_time.html.erb +1 -0
  26. data/test/dummy/app/views/qor_cache_includes/time.html.erb +1 -0
  27. data/test/dummy/config/application.rb +3 -3
  28. data/test/dummy/config/environments/development.rb +1 -1
  29. data/test/dummy/config/environments/test.rb +1 -1
  30. data/test/dummy/config/initializers/session_store.rb +1 -1
  31. data/test/dummy/config/initializers/wrap_parameters.rb +6 -6
  32. data/test/dummy/config/qor/cache.rb +25 -3
  33. data/test/dummy/config/routes.rb +6 -56
  34. data/test/dummy/tmp/cache/.gitkeep +0 -0
  35. data/test/integration_test.rb +135 -0
  36. metadata +33 -5
  37. data/test/dummy/app/views/layouts/application.html.erb +0 -14
data/Gemfile CHANGED
@@ -1,7 +1,8 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gem 'qor_dsl'
4
- gem 'qor_test'
5
4
  gem 'factory_girl_rails'
5
+ gem 'pry'
6
+ gem "timecop"
6
7
 
7
8
  gemspec
data/README.md CHANGED
@@ -29,6 +29,11 @@ Qor Cache
29
29
  cache_field :product_code, :from => [:product, :code]
30
30
  end
31
31
 
32
+ cache_includes "filename", :no_cache => true, :expires_in => 5.minutes do |app|
33
+ ...
34
+ end
35
+ cache_includes "filename", "cache_key..."
36
+
32
37
 
33
38
  # app/models/color_variation.rb
34
39
  def heavy_method_related_to_products
@@ -56,6 +61,15 @@ Qor Cache
56
61
  xxxxx
57
62
  end
58
63
 
64
+ qor_cache_includes "filename"
65
+
66
+ ## TODO
67
+
68
+ Support render :file, :url for render_qor_cache_includes
69
+ :partial => "filename"
70
+ :filename => "filename"
71
+ :url => "http://xxx" -> SSI ? Rewrite ?
72
+
59
73
  ## Contributing
60
74
 
61
75
  1. Fork it
@@ -63,3 +77,8 @@ Qor Cache
63
77
  3. Commit your changes (`git commit -am 'Added some feature'`)
64
78
  4. Push to the branch (`git push origin my-new-feature`)
65
79
  5. Create new Pull Request
80
+
81
+ ## Author ##
82
+ Jinzhu <http://github.com/jinzhu>
83
+
84
+ * A Product From ThePlant <http://theplant.jp>
@@ -0,0 +1,9 @@
1
+ module Qor
2
+ class CacheController < ActionController::Base
3
+ include Qor::CacheHelper
4
+
5
+ def includes
6
+ render :text => render_qor_cache_includes(params[:path], request.fullpath)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,34 @@
1
+ module Qor
2
+ module CacheHelper
3
+ def qor_cache_includes(filename, &blk)
4
+ env = respond_to?(:request) && request.respond_to?(:env) ? request.env : {}
5
+ path = URI.parse(filename).path rescue filename
6
+ node = Qor::Cache::Configuration.deep_find(:cache_includes, path)[0]
7
+
8
+ cache_key = node.nil? ? "" : qor_cache_key(*node.data.select {|x| x.is_a? String }, &node.block)
9
+ cache_key += qor_cache_key(&blk) if block_given?
10
+ key = "/qor_cache_includes/#{filename}?#{cache_key}"
11
+
12
+ if env['QOR_CACHE_SSI_ENABLED']
13
+ %Q[<!--# include virtual="#{key}" -->]
14
+ elsif env['QOR_CACHE_ESI_ENABLED']
15
+ %Q[<esi:include src="#{key}"/>]
16
+ else
17
+ render_qor_cache_includes(path, key)
18
+ end.html_safe
19
+ end
20
+
21
+ def render_qor_cache_includes(path, cache_key)
22
+ options = Qor::Cache::Configuration.first(:cache_includes, path).try(:options) || {}
23
+
24
+ format = params["format"] || "html" rescue "html"
25
+ file = Dir[File.join(Rails.root, "app/views/qor_cache_includes", "#{path}.#{format}*")][0]
26
+
27
+ if options.delete(:no_cache) == true
28
+ Erubis::Eruby.new(File.read(file)).result(binding)
29
+ else
30
+ Rails.cache.fetch(cache_key, options) { Erubis::Eruby.new(File.read(file)).result(binding) }
31
+ end
32
+ end
33
+ end
34
+ end
data/config/qor/cache.rb CHANGED
@@ -29,3 +29,10 @@ scope :color_variation do
29
29
 
30
30
  cache_field :product_code, :from => [:product, :code]
31
31
  end
32
+
33
+ cache_includes "nocache_time", :no_cache => true
34
+ cache_includes "expires_in_time", :expires_in => 2.days
35
+ cache_includes "products_time", "product", "color_variation"
36
+ cache_includes "helper_time" do
37
+ current_user
38
+ end
data/config/qor/test.rb CHANGED
@@ -1,25 +1,17 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
- # Run your tests with nokogiri's 1.4 branch and master branch
5
- gem 'nokogiri', :git => "git://github.com/sparklemotion/nokogiri.git", :branch => "1.4"
6
- gem 'nokogiri', :git => "git://github.com/sparklemotion/nokogiri.git", :branch => "master"
4
+ gem 'rails', [3.1, 3.2]
7
5
 
8
- # You can also write above code in one line like this
9
- gem 'nokogiri', [{:git => "git://github.com/sparklemotion/nokogiri.git"}, {:git => "git://github.com/sparklemotion/nokogiri.git", :branch => "1.4"}]
6
+ env '2.0' do
7
+ ruby '2.0'
8
+ end
10
9
 
11
- # Default mode, your tests will run with rails 3.1, 3.2 and 4.0
12
- # So with above config, your tests will run 6 times
13
- # [nokogiri(1.4), rails(3.1)], [nokogiri(master), rails(3.1)]
14
- # [nokogiri(1.4), rails(3.2)], [nokogiri(master), rails(3.2)]
15
- # [nokogiri(1.4), rails(4.0)], [nokogiri(master), rails(4.0)]
16
- env 'default' do
10
+ env '1.9.3' do
17
11
  ruby '1.9.3'
18
- gem 'rails', ['3.1', '3.2', '4.0']
19
12
  end
20
13
 
21
- # Using `qor_test -e old_ruby -c 'rake test'` to run your tests in old_ruby mode
22
- env 'old_ruby' do
23
- ruby 'ree'
24
- gem 'rails', ['3.1', '3.2']
14
+ env '1.8.7' do
15
+ ruby '1.8.7'
16
+ gem 'factory_girl_rails', '1.3.0'
25
17
  end
data/config/routes.rb ADDED
@@ -0,0 +1,3 @@
1
+ Rails.application.routes.draw do
2
+ match "/qor_cache_includes/*path" => "Qor::Cache#includes"
3
+ end
@@ -1,3 +1,5 @@
1
+ require 'qor_dsl'
2
+
1
3
  module Qor
2
4
  module Cache
3
5
  class Configuration
@@ -5,7 +7,9 @@ module Qor
5
7
 
6
8
  default_configs ["config/qor/cache.rb"]
7
9
 
10
+ node :cache_includes
8
11
  node :cache_key
12
+
9
13
  node :scope do
10
14
  node :cache_class_method
11
15
  node :cache_method
@@ -1,6 +1,6 @@
1
1
  module Qor
2
2
  module Cache
3
- class Railtie < Rails::Railtie
3
+ class Railtie < Rails::Engine
4
4
 
5
5
  initializer "insert_active_record_methods_for_qor_cache" do
6
6
  ActiveSupport.on_load(:active_record) do
@@ -1,12 +1,13 @@
1
1
  require "digest/md5"
2
+ require 'uri'
2
3
 
3
4
  module Kernel
4
5
  def qor_cache_key(*names, &blk)
5
6
  objs = names.map { |name| Qor::Cache::Configuration.first(:cache_key, name).block.call }
6
- objs << blk.call if block_given?
7
+ objs << instance_eval(&blk) if block_given?
7
8
 
8
- results = objs.map do |obj|
9
- Array(obj).map {|x| x.respond_to?(:cache_key) ? x.cache_key : x.inspect }.join("-")
9
+ results = objs.flatten.map do |obj|
10
+ obj.respond_to?(:cache_key) ? obj.cache_key : obj.inspect
10
11
  end
11
12
 
12
13
  Digest::MD5.hexdigest(results.join("-"))
@@ -1,5 +1,5 @@
1
1
  module Qor
2
2
  module Cache
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
data/lib/qor_cache.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require "qor_cache/configuration"
2
2
  require "qor_cache/active_record"
3
- require "qor_cache/railtie"
3
+ require "qor_cache/engine"
4
4
  require "qor_cache/kernel"
5
5
  require "digest/md5"
6
6
 
@@ -1,3 +1,27 @@
1
1
  class ApplicationController < ActionController::Base
2
2
  protect_from_forgery
3
+
4
+ def index
5
+ render :index
6
+ end
7
+
8
+ def nocache
9
+ render :nocache
10
+ end
11
+
12
+ def expires_in
13
+ render :expires_in
14
+ end
15
+
16
+ def products
17
+ render :products
18
+ end
19
+
20
+ def helpers
21
+ render :helpers
22
+ end
23
+
24
+ def with_block
25
+ render :with_block
26
+ end
3
27
  end
@@ -1,2 +1,5 @@
1
1
  module ApplicationHelper
2
+ def current_user
3
+ request.env["CURRENT_USER_ID"]
4
+ end
2
5
  end
@@ -1,5 +1,4 @@
1
1
  class ColorVariation < ActiveRecord::Base
2
- attr_accessible :code, :name, :product_code
3
2
  belongs_to :product
4
3
 
5
4
  def slow_method
@@ -0,0 +1,3 @@
1
+ Hello World!
2
+
3
+ <%= qor_cache_includes "expires_in_time" %>
@@ -0,0 +1,3 @@
1
+ Hello World!
2
+
3
+ <%= qor_cache_includes "helper_time" %>
@@ -0,0 +1,3 @@
1
+ Hello World!
2
+
3
+ <%= qor_cache_includes "time" %>
@@ -0,0 +1,3 @@
1
+ Hello World!
2
+
3
+ <%= qor_cache_includes "nocache_time" %>
@@ -0,0 +1,3 @@
1
+ Hello World!
2
+
3
+ <%= qor_cache_includes "products_time" %>
@@ -0,0 +1,9 @@
1
+ Hello World!
2
+
3
+ <%=
4
+ @current_user = current_user
5
+ qor_cache_includes "time" do
6
+ @current_user
7
+ end
8
+ %>
9
+
@@ -0,0 +1,2 @@
1
+ <%= Time.now.strftime("%Y-%m-%d") %>
2
+
@@ -0,0 +1 @@
1
+ <%= Time.now.strftime("%Y-%m-%d") %>
@@ -0,0 +1 @@
1
+ <%= Time.now.strftime("%Y-%m-%d") %>
@@ -0,0 +1 @@
1
+ <%= Time.now.strftime("%Y-%m-%d") %>
@@ -0,0 +1 @@
1
+ <%= Time.now.strftime("%Y-%m-%d") %>
@@ -47,13 +47,13 @@ module Dummy
47
47
  # This will create an empty whitelist of attributes available for mass-assignment for all models
48
48
  # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
49
49
  # parameters by using an attr_accessible or attr_protected declaration.
50
- config.active_record.whitelist_attributes = true
50
+ # config.active_record.whitelist_attributes = true
51
51
 
52
52
  # Enable the asset pipeline
53
- config.assets.enabled = true
53
+ # config.assets.enabled = true
54
54
 
55
55
  # Version of your assets, change this if you want to expire all your assets
56
- config.assets.version = '1.0'
56
+ # config.assets.version = '1.0'
57
57
  end
58
58
  end
59
59
 
@@ -23,7 +23,7 @@ Dummy::Application.configure do
23
23
  config.action_dispatch.best_standards_support = :builtin
24
24
 
25
25
  # Raise exception on mass assignment protection for Active Record models
26
- config.active_record.mass_assignment_sanitizer = :strict
26
+ # config.active_record.mass_assignment_sanitizer = :strict
27
27
 
28
28
  # Log the query plan for queries taking more than this (works
29
29
  # with SQLite, MySQL, and PostgreSQL)
@@ -30,7 +30,7 @@ Dummy::Application.configure do
30
30
  config.action_mailer.delivery_method = :test
31
31
 
32
32
  # Raise exception on mass assignment protection for Active Record models
33
- config.active_record.mass_assignment_sanitizer = :strict
33
+ # config.active_record.mass_assignment_sanitizer = :strict
34
34
 
35
35
  # Print deprecation notices to the stderr
36
36
  config.active_support.deprecation = :stderr
@@ -1,6 +1,6 @@
1
1
  # Be sure to restart your server when you modify this file.
2
2
 
3
- Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'
3
+ Dummy::Application.config.session_store :cookie_store, :key => '_dummy_session'
4
4
 
5
5
  # Use the database for sessions instead of the cookie-based default,
6
6
  # which shouldn't be used to store highly confidential information
@@ -4,11 +4,11 @@
4
4
  # is enabled by default.
5
5
 
6
6
  # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
- ActiveSupport.on_load(:action_controller) do
8
- wrap_parameters format: [:json]
9
- end
7
+ # ActiveSupport.on_load(:action_controller) do
8
+ # wrap_parameters :format => [:json]
9
+ # end
10
10
 
11
11
  # Disable root element in JSON by default.
12
- ActiveSupport.on_load(:active_record) do
13
- self.include_root_in_json = false
14
- end
12
+ # ActiveSupport.on_load(:active_record) do
13
+ # self.include_root_in_json = false
14
+ # end
@@ -1,11 +1,33 @@
1
+ cache_key :product do
2
+ Product
3
+ end
4
+
5
+ cache_key :color_variation do
6
+ [ColorVariation]
7
+ end
8
+
9
+ cache_key :product_and_color_variation do
10
+ [Product, ColorVariation]
11
+ end
12
+
1
13
  scope :product do
2
14
  cache_method :slow_method
3
- cache_method :slow_method1
15
+ cache_method :slow_method_with_args
4
16
 
5
17
  cache_class_method :slow_class_method
6
- cache_class_method :slow_class_method1
18
+ cache_class_method :slow_class_method_with_args
7
19
  end
8
20
 
9
- scope :product do
21
+ scope :color_variation do
22
+ cache_method :slow_method, 'product'
23
+
24
+ cache_method :slow_method_with_product do |s|
25
+ s.product
26
+ end
27
+
28
+ cache_class_method :slow_class_method, 'product'
29
+
10
30
  cache_field :product_code, :from => [:product, :code]
11
31
  end
32
+
33
+ cache_includes "nocache_time", :no_cache => true
@@ -1,58 +1,8 @@
1
1
  Dummy::Application.routes.draw do
2
- # The priority is based upon order of creation:
3
- # first created -> highest priority.
4
-
5
- # Sample of regular route:
6
- # match 'products/:id' => 'catalog#view'
7
- # Keep in mind you can assign values other than :controller and :action
8
-
9
- # Sample of named route:
10
- # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
11
- # This route can be invoked with purchase_url(:id => product.id)
12
-
13
- # Sample resource route (maps HTTP verbs to controller actions automatically):
14
- # resources :products
15
-
16
- # Sample resource route with options:
17
- # resources :products do
18
- # member do
19
- # get 'short'
20
- # post 'toggle'
21
- # end
22
- #
23
- # collection do
24
- # get 'sold'
25
- # end
26
- # end
27
-
28
- # Sample resource route with sub-resources:
29
- # resources :products do
30
- # resources :comments, :sales
31
- # resource :seller
32
- # end
33
-
34
- # Sample resource route with more complex sub-resources
35
- # resources :products do
36
- # resources :comments
37
- # resources :sales do
38
- # get 'recent', :on => :collection
39
- # end
40
- # end
41
-
42
- # Sample resource route within a namespace:
43
- # namespace :admin do
44
- # # Directs /admin/products/* to Admin::ProductsController
45
- # # (app/controllers/admin/products_controller.rb)
46
- # resources :products
47
- # end
48
-
49
- # You can have the root of your site routed with "root"
50
- # just remember to delete public/index.html.
51
- # root :to => 'welcome#index'
52
-
53
- # See how all your routes lay out with "rake routes"
54
-
55
- # This is a legacy wild controller route that's not recommended for RESTful applications.
56
- # Note: This route will make all actions in every controller accessible via GET requests.
57
- # match ':controller(/:action(/:id))(.:format)'
2
+ match "/" => "application#index"
3
+ match "/nocache" => "application#nocache"
4
+ match "/expires_in" => "application#expires_in"
5
+ match "/products" => "application#products"
6
+ match "/helpers" => "application#helpers"
7
+ match "/with_block" => "application#with_block"
58
8
  end
File without changes
@@ -0,0 +1,135 @@
1
+ require File.expand_path("../test_helper", __FILE__)
2
+
3
+ class IntegrationTest < ActionDispatch::IntegrationTest
4
+ def setup
5
+ Rails.cache.clear
6
+ Timecop.freeze("2012-10-10")
7
+ end
8
+
9
+ test "Normal mode" do
10
+ get "/"
11
+ assert_response 200
12
+ assert response.body.include?('2012-10-10')
13
+
14
+ Timecop.freeze("2012-10-11")
15
+ get "/"
16
+ assert_response 200
17
+ assert response.body.include?('2012-10-10')
18
+ end
19
+
20
+ test "SSI mode" do
21
+ get "/", {}, {"QOR_CACHE_SSI_ENABLED" => 1}
22
+ assert_response 200
23
+ assert response.body.include?(%Q[<!--# include virtual="/qor_cache_includes/time])
24
+ end
25
+
26
+ test "ESI mode" do
27
+ get "/", {}, {"QOR_CACHE_ESI_ENABLED" => 1}
28
+ assert_response 200
29
+ assert response.body.include?(%Q[<esi:include src="/qor_cache_includes/time])
30
+ end
31
+
32
+ test "request qor_cache_includes partial" do
33
+ get "/qor_cache_includes/time"
34
+ assert_response 200
35
+ assert response.body.include?('2012-10-10')
36
+
37
+ Timecop.freeze("2012-10-11")
38
+ get "/qor_cache_includes/time"
39
+ assert_response 200
40
+ assert response.body.include?('2012-10-10')
41
+
42
+ get "/qor_cache_includes/time?hello"
43
+ assert_response 200
44
+ assert response.body.include?('2012-10-11')
45
+ end
46
+
47
+ test "qor_cache_includes no_cache option" do
48
+ get "/nocache"
49
+ assert_response 200
50
+ assert response.body.include?('2012-10-10')
51
+
52
+ Timecop.freeze("2012-10-11")
53
+ get "/nocache"
54
+ assert_response 200
55
+ assert response.body.include?('2012-10-11')
56
+ end
57
+
58
+ test "qor_cache_includes expires_in option" do
59
+ get "/expires_in"
60
+ assert_response 200
61
+ assert response.body.include?('2012-10-10')
62
+
63
+ Timecop.freeze("2012-10-11")
64
+ get "/expires_in"
65
+ assert_response 200
66
+ assert response.body.include?('2012-10-10')
67
+
68
+ Timecop.freeze("2012-10-13")
69
+ get "/expires_in"
70
+ assert_response 200
71
+ assert response.body.include?('2012-10-13')
72
+ end
73
+
74
+ test "qor_cache_includes with qor_cache_key" do
75
+ get "/products"
76
+ assert_response 200
77
+ assert response.body.include?('2012-10-10')
78
+
79
+ Timecop.freeze("2012-10-11")
80
+ get "/products"
81
+ assert_response 200
82
+ assert response.body.include?('2012-10-10')
83
+
84
+ FactoryGirl.create(:product)
85
+ get "/products"
86
+ assert_response 200
87
+ assert response.body.include?('2012-10-11')
88
+
89
+ Timecop.freeze("2012-10-12")
90
+ get "/products"
91
+ assert_response 200
92
+ assert response.body.include?('2012-10-11')
93
+
94
+ FactoryGirl.create(:color_variation)
95
+ get "/products"
96
+ assert_response 200
97
+ assert response.body.include?('2012-10-12')
98
+
99
+ Timecop.freeze("2012-10-13")
100
+ get "/products"
101
+ assert_response 200
102
+ assert response.body.include?('2012-10-12')
103
+ end
104
+
105
+ test "qor_cache_includes with helpers current_user" do
106
+ get "/helpers", {}, {"CURRENT_USER_ID" => 1}
107
+ assert_response 200
108
+ assert response.body.include?('2012-10-10')
109
+
110
+ Timecop.freeze("2012-10-11")
111
+ get "/helpers", {}, {"CURRENT_USER_ID" => 1}
112
+ assert_response 200
113
+ assert response.body.include?('2012-10-10')
114
+
115
+ get "/helpers", {}, {"CURRENT_USER_ID" => 2}
116
+ assert_response 200
117
+ assert response.body.include?('2012-10-11')
118
+ end
119
+
120
+ test "qor_cache_includes with block" do
121
+ FactoryGirl.create(:product)
122
+ get "/with_block", {}, {"CURRENT_USER_ID" => 1}
123
+ assert_response 200
124
+ assert response.body.include?('2012-10-10')
125
+
126
+ Timecop.freeze("2012-10-11")
127
+ get "/with_block", {}, {"CURRENT_USER_ID" => 1}
128
+ assert_response 200
129
+ assert response.body.include?('2012-10-10')
130
+
131
+ get "/with_block", {}, {"CURRENT_USER_ID" => 2}
132
+ assert_response 200
133
+ assert response.body.include?('2012-10-11')
134
+ end
135
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qor_cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-27 00:00:00.000000000 Z
12
+ date: 2013-01-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: qor_test
@@ -87,13 +87,16 @@ files:
87
87
  - LICENSE.txt
88
88
  - README.md
89
89
  - Rakefile
90
+ - app/controllers/qor/cache_controller.rb
91
+ - app/helpers/qor/cache_helper.rb
90
92
  - config/qor/cache.rb
91
93
  - config/qor/test.rb
94
+ - config/routes.rb
92
95
  - lib/qor_cache.rb
93
96
  - lib/qor_cache/active_record.rb
94
97
  - lib/qor_cache/configuration.rb
98
+ - lib/qor_cache/engine.rb
95
99
  - lib/qor_cache/kernel.rb
96
- - lib/qor_cache/railtie.rb
97
100
  - lib/qor_cache/version.rb
98
101
  - qor_cache.gemspec
99
102
  - test/dummy/.gitignore
@@ -107,7 +110,17 @@ files:
107
110
  - test/dummy/app/models/.gitkeep
108
111
  - test/dummy/app/models/color_variation.rb
109
112
  - test/dummy/app/models/product.rb
110
- - test/dummy/app/views/layouts/application.html.erb
113
+ - test/dummy/app/views/application/expires_in.html.erb
114
+ - test/dummy/app/views/application/helpers.html.erb
115
+ - test/dummy/app/views/application/index.html.erb
116
+ - test/dummy/app/views/application/nocache.html.erb
117
+ - test/dummy/app/views/application/products.html.erb
118
+ - test/dummy/app/views/application/with_block.html.erb
119
+ - test/dummy/app/views/qor_cache_includes/expires_in_time.html.erb
120
+ - test/dummy/app/views/qor_cache_includes/helper_time.html.erb
121
+ - test/dummy/app/views/qor_cache_includes/nocache_time.html.erb
122
+ - test/dummy/app/views/qor_cache_includes/products_time.html.erb
123
+ - test/dummy/app/views/qor_cache_includes/time.html.erb
111
124
  - test/dummy/config.ru
112
125
  - test/dummy/config/application.rb
113
126
  - test/dummy/config/boot.rb
@@ -138,7 +151,9 @@ files:
138
151
  - test/dummy/test/fixtures/products.yml
139
152
  - test/dummy/test/unit/color_variation_test.rb
140
153
  - test/dummy/test/unit/product_test.rb
154
+ - test/dummy/tmp/cache/.gitkeep
141
155
  - test/factories.rb
156
+ - test/integration_test.rb
142
157
  - test/qor_cache_fields_test.rb
143
158
  - test/qor_cache_key_test.rb
144
159
  - test/qor_cache_methods_test.rb
@@ -179,7 +194,17 @@ test_files:
179
194
  - test/dummy/app/models/.gitkeep
180
195
  - test/dummy/app/models/color_variation.rb
181
196
  - test/dummy/app/models/product.rb
182
- - test/dummy/app/views/layouts/application.html.erb
197
+ - test/dummy/app/views/application/expires_in.html.erb
198
+ - test/dummy/app/views/application/helpers.html.erb
199
+ - test/dummy/app/views/application/index.html.erb
200
+ - test/dummy/app/views/application/nocache.html.erb
201
+ - test/dummy/app/views/application/products.html.erb
202
+ - test/dummy/app/views/application/with_block.html.erb
203
+ - test/dummy/app/views/qor_cache_includes/expires_in_time.html.erb
204
+ - test/dummy/app/views/qor_cache_includes/helper_time.html.erb
205
+ - test/dummy/app/views/qor_cache_includes/nocache_time.html.erb
206
+ - test/dummy/app/views/qor_cache_includes/products_time.html.erb
207
+ - test/dummy/app/views/qor_cache_includes/time.html.erb
183
208
  - test/dummy/config.ru
184
209
  - test/dummy/config/application.rb
185
210
  - test/dummy/config/boot.rb
@@ -210,8 +235,11 @@ test_files:
210
235
  - test/dummy/test/fixtures/products.yml
211
236
  - test/dummy/test/unit/color_variation_test.rb
212
237
  - test/dummy/test/unit/product_test.rb
238
+ - test/dummy/tmp/cache/.gitkeep
213
239
  - test/factories.rb
240
+ - test/integration_test.rb
214
241
  - test/qor_cache_fields_test.rb
215
242
  - test/qor_cache_key_test.rb
216
243
  - test/qor_cache_methods_test.rb
217
244
  - test/test_helper.rb
245
+ has_rdoc:
@@ -1,14 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Dummy</title>
5
- <%= stylesheet_link_tag "application", :media => "all" %>
6
- <%= javascript_include_tag "application" %>
7
- <%= csrf_meta_tags %>
8
- </head>
9
- <body>
10
-
11
- <%= yield %>
12
-
13
- </body>
14
- </html>