qor_cache 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +0 -2
- data/README.md +0 -14
- data/config/qor/cache.rb +0 -7
- data/lib/qor_cache.rb +1 -1
- data/lib/qor_cache/configuration.rb +0 -2
- data/lib/qor_cache/kernel.rb +3 -4
- data/lib/qor_cache/{engine.rb → railtie.rb} +1 -1
- data/lib/qor_cache/version.rb +1 -1
- data/qor_cache.gemspec +1 -1
- data/test/dummy/app/controllers/application_controller.rb +0 -24
- data/test/dummy/app/helpers/application_helper.rb +0 -3
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config/application.rb +3 -3
- data/test/dummy/config/initializers/wrap_parameters.rb +6 -6
- data/test/dummy/config/qor/cache.rb +3 -25
- data/test/dummy/config/routes.rb +56 -6
- metadata +24 -62
- data/app/controllers/qor/cache_controller.rb +0 -9
- data/app/helpers/qor/cache_helper.rb +0 -34
- data/config/routes.rb +0 -3
- data/test/dummy/app/views/application/expires_in.html.erb +0 -3
- data/test/dummy/app/views/application/helpers.html.erb +0 -3
- data/test/dummy/app/views/application/index.html.erb +0 -3
- data/test/dummy/app/views/application/nocache.html.erb +0 -3
- data/test/dummy/app/views/application/products.html.erb +0 -3
- data/test/dummy/app/views/application/with_block.html.erb +0 -9
- data/test/dummy/app/views/qor_cache_includes/expires_in_time.html.erb +0 -2
- data/test/dummy/app/views/qor_cache_includes/helper_time.html.erb +0 -1
- data/test/dummy/app/views/qor_cache_includes/nocache_time.html.erb +0 -1
- data/test/dummy/app/views/qor_cache_includes/products_time.html.erb +0 -1
- data/test/dummy/app/views/qor_cache_includes/time.html.erb +0 -1
- data/test/integration_test.rb +0 -135
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bc807528ff2bb7368865ff5d2e557386b911a0cc
|
4
|
+
data.tar.gz: 1ff4e8f15c89802543ce6f95e9c183aff6584dc5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d6d3e4c7d23cacab412bdf9873a28b0188df71af5f4271632f43d303b9ddf9de0d8afc483a442f4a11214e91c343e88502b81118c805fef3269bc14c762d138f
|
7
|
+
data.tar.gz: dcac4d1f1baa594d8cdea17d2ea5c7f6ad0dbdd7a2e73c70f8f93a77dfed204999ca5cc4f67325b70175898c8e6e950d70473049487e5406054f64304e26b85d
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -29,11 +29,6 @@ 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
|
-
|
37
32
|
|
38
33
|
# app/models/color_variation.rb
|
39
34
|
def heavy_method_related_to_products
|
@@ -61,15 +56,6 @@ Qor Cache
|
|
61
56
|
xxxxx
|
62
57
|
end
|
63
58
|
|
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
|
-
|
73
59
|
## Contributing
|
74
60
|
|
75
61
|
1. Fork it
|
data/config/qor/cache.rb
CHANGED
@@ -29,10 +29,3 @@ 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/lib/qor_cache.rb
CHANGED
data/lib/qor_cache/kernel.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
require "digest/md5"
|
2
|
-
require 'uri'
|
3
2
|
|
4
3
|
module Kernel
|
5
4
|
def qor_cache_key(*names, &blk)
|
6
5
|
objs = names.map { |name| Qor::Cache::Configuration.first(:cache_key, name).block.call }
|
7
|
-
objs <<
|
6
|
+
objs << blk.call if block_given?
|
8
7
|
|
9
|
-
results = objs.
|
10
|
-
obj.respond_to?(:cache_key) ?
|
8
|
+
results = objs.map do |obj|
|
9
|
+
Array(obj).map {|x| x.respond_to?(:cache_key) ? x.cache_key : x.inspect }.join("-")
|
11
10
|
end
|
12
11
|
|
13
12
|
Digest::MD5.hexdigest(results.join("-"))
|
data/lib/qor_cache/version.rb
CHANGED
data/qor_cache.gemspec
CHANGED
@@ -17,8 +17,8 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
|
-
gem.add_dependency "qor_test"
|
21
20
|
gem.add_dependency "qor_dsl"
|
22
21
|
gem.add_dependency "rails"
|
23
22
|
gem.add_development_dependency "sqlite3"
|
23
|
+
gem.add_development_dependency "qor_test"
|
24
24
|
end
|
@@ -1,27 +1,3 @@
|
|
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
|
27
3
|
end
|
@@ -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
|
-
|
50
|
+
config.active_record.whitelist_attributes = true
|
51
51
|
|
52
52
|
# Enable the asset pipeline
|
53
|
-
|
53
|
+
config.assets.enabled = true
|
54
54
|
|
55
55
|
# Version of your assets, change this if you want to expire all your assets
|
56
|
-
|
56
|
+
config.assets.version = '1.0'
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
@@ -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
|
-
|
8
|
-
|
9
|
-
|
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
|
-
|
13
|
-
|
14
|
-
|
12
|
+
ActiveSupport.on_load(:active_record) do
|
13
|
+
self.include_root_in_json = false
|
14
|
+
end
|
@@ -1,33 +1,11 @@
|
|
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
|
-
|
13
1
|
scope :product do
|
14
2
|
cache_method :slow_method
|
15
|
-
cache_method :
|
3
|
+
cache_method :slow_method1
|
16
4
|
|
17
5
|
cache_class_method :slow_class_method
|
18
|
-
cache_class_method :
|
6
|
+
cache_class_method :slow_class_method1
|
19
7
|
end
|
20
8
|
|
21
|
-
scope :
|
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
|
-
|
9
|
+
scope :product do
|
30
10
|
cache_field :product_code, :from => [:product, :code]
|
31
11
|
end
|
32
|
-
|
33
|
-
cache_includes "nocache_time", :no_cache => true
|
data/test/dummy/config/routes.rb
CHANGED
@@ -1,8 +1,58 @@
|
|
1
1
|
Dummy::Application.routes.draw do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
match
|
7
|
-
|
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)'
|
8
58
|
end
|
metadata
CHANGED
@@ -1,78 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qor_cache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jinzhu
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-09-19 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
14
|
+
name: qor_dsl
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
28
|
+
name: rails
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
42
|
+
name: sqlite3
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
|
-
type: :
|
48
|
+
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
56
|
+
name: qor_test
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
description: Qor Cache
|
@@ -82,21 +73,18 @@ executables: []
|
|
82
73
|
extensions: []
|
83
74
|
extra_rdoc_files: []
|
84
75
|
files:
|
85
|
-
- .gitignore
|
76
|
+
- ".gitignore"
|
86
77
|
- Gemfile
|
87
78
|
- LICENSE.txt
|
88
79
|
- README.md
|
89
80
|
- Rakefile
|
90
|
-
- app/controllers/qor/cache_controller.rb
|
91
|
-
- app/helpers/qor/cache_helper.rb
|
92
81
|
- config/qor/cache.rb
|
93
82
|
- config/qor/test.rb
|
94
|
-
- config/routes.rb
|
95
83
|
- lib/qor_cache.rb
|
96
84
|
- lib/qor_cache/active_record.rb
|
97
85
|
- lib/qor_cache/configuration.rb
|
98
|
-
- lib/qor_cache/engine.rb
|
99
86
|
- lib/qor_cache/kernel.rb
|
87
|
+
- lib/qor_cache/railtie.rb
|
100
88
|
- lib/qor_cache/version.rb
|
101
89
|
- qor_cache.gemspec
|
102
90
|
- test/dummy/.gitignore
|
@@ -110,17 +98,7 @@ files:
|
|
110
98
|
- test/dummy/app/models/.gitkeep
|
111
99
|
- test/dummy/app/models/color_variation.rb
|
112
100
|
- test/dummy/app/models/product.rb
|
113
|
-
- test/dummy/app/views/application
|
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
|
101
|
+
- test/dummy/app/views/layouts/application.html.erb
|
124
102
|
- test/dummy/config.ru
|
125
103
|
- test/dummy/config/application.rb
|
126
104
|
- test/dummy/config/boot.rb
|
@@ -151,36 +129,33 @@ files:
|
|
151
129
|
- test/dummy/test/fixtures/products.yml
|
152
130
|
- test/dummy/test/unit/color_variation_test.rb
|
153
131
|
- test/dummy/test/unit/product_test.rb
|
154
|
-
- test/dummy/tmp/cache/.gitkeep
|
155
132
|
- test/factories.rb
|
156
|
-
- test/integration_test.rb
|
157
133
|
- test/qor_cache_fields_test.rb
|
158
134
|
- test/qor_cache_key_test.rb
|
159
135
|
- test/qor_cache_methods_test.rb
|
160
136
|
- test/test_helper.rb
|
161
137
|
homepage: ''
|
162
138
|
licenses: []
|
139
|
+
metadata: {}
|
163
140
|
post_install_message:
|
164
141
|
rdoc_options: []
|
165
142
|
require_paths:
|
166
143
|
- lib
|
167
144
|
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
-
none: false
|
169
145
|
requirements:
|
170
|
-
- -
|
146
|
+
- - ">="
|
171
147
|
- !ruby/object:Gem::Version
|
172
148
|
version: '0'
|
173
149
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
|
-
none: false
|
175
150
|
requirements:
|
176
|
-
- -
|
151
|
+
- - ">="
|
177
152
|
- !ruby/object:Gem::Version
|
178
153
|
version: '0'
|
179
154
|
requirements: []
|
180
155
|
rubyforge_project:
|
181
|
-
rubygems_version:
|
156
|
+
rubygems_version: 2.2.2
|
182
157
|
signing_key:
|
183
|
-
specification_version:
|
158
|
+
specification_version: 4
|
184
159
|
summary: Qor Cache
|
185
160
|
test_files:
|
186
161
|
- test/dummy/.gitignore
|
@@ -194,17 +169,7 @@ test_files:
|
|
194
169
|
- test/dummy/app/models/.gitkeep
|
195
170
|
- test/dummy/app/models/color_variation.rb
|
196
171
|
- test/dummy/app/models/product.rb
|
197
|
-
- test/dummy/app/views/application
|
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
|
172
|
+
- test/dummy/app/views/layouts/application.html.erb
|
208
173
|
- test/dummy/config.ru
|
209
174
|
- test/dummy/config/application.rb
|
210
175
|
- test/dummy/config/boot.rb
|
@@ -235,11 +200,8 @@ test_files:
|
|
235
200
|
- test/dummy/test/fixtures/products.yml
|
236
201
|
- test/dummy/test/unit/color_variation_test.rb
|
237
202
|
- test/dummy/test/unit/product_test.rb
|
238
|
-
- test/dummy/tmp/cache/.gitkeep
|
239
203
|
- test/factories.rb
|
240
|
-
- test/integration_test.rb
|
241
204
|
- test/qor_cache_fields_test.rb
|
242
205
|
- test/qor_cache_key_test.rb
|
243
206
|
- test/qor_cache_methods_test.rb
|
244
207
|
- test/test_helper.rb
|
245
|
-
has_rdoc:
|
@@ -1,34 +0,0 @@
|
|
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/routes.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
<%= Time.now.strftime("%Y-%m-%d") %>
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= Time.now.strftime("%Y-%m-%d") %>
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= Time.now.strftime("%Y-%m-%d") %>
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= Time.now.strftime("%Y-%m-%d") %>
|
data/test/integration_test.rb
DELETED
@@ -1,135 +0,0 @@
|
|
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
|