action_param_caching 0.0.5 → 0.0.6
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 764ab0a770e71c1520a4662e70dc40c1eaac2876
|
4
|
+
data.tar.gz: 410bf7243c71ced0e53af0c452f31ff324ad2898
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c05eda07bb4b683d9a137db270621a62f4dd3e45b9bb24de5d5e09201fffdbf903a215fe040bca3f26b798eaa2835f53584d32e29dcb382a5ec768d5c686cb9
|
7
|
+
data.tar.gz: 3af187e242a0cd8a0c3188b1d5b84da310be973d7d387dda18569a3e06cc9b066fb63e02c954e24d7591e2b6a80bbd7b3840f568c6efd0f2fa2c1d977368af53
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# ActionParamCaching
|
1
|
+
# ActionParamCaching [](https://travis-ci.org/pennymac/action_param_caching)
|
2
2
|
|
3
|
-
Action param caching simplifies action caching based on parameter values. It allows you to quickly specify what actions you want to cache
|
3
|
+
Action param caching simplifies action caching based on parameter values. It allows you to quickly specify what actions you want to cache based on the parameters they are passed, the set of parameters you are interested in caching on, and an option prefix value for ignoring parameters that are designed to bust your cache.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -28,6 +28,8 @@ Or install it yourself as:
|
|
28
28
|
cache_with_params :on => [:index], :with_set_or_subset => [:param1, :param2]
|
29
29
|
- Ignore params with prefix
|
30
30
|
cache_with_params :on => [:index], :filter_starting_with => '_'
|
31
|
+
- Expiring Cache
|
32
|
+
cache_with_params :on => [:index], :expires_in => 24.hours
|
31
33
|
|
32
34
|
## Contributing
|
33
35
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module ActionParamCaching
|
2
2
|
class ActionConfig
|
3
|
-
attr_reader :action, :valid_params, :filter_starting_with, :argz
|
3
|
+
attr_reader :action, :valid_params, :filter_starting_with, :argz, :expires_in
|
4
4
|
attr_accessor :did_config_cache
|
5
5
|
|
6
6
|
def self.store_lookup(controller, action, config)
|
@@ -13,7 +13,7 @@ module ActionParamCaching
|
|
13
13
|
@lookup
|
14
14
|
end
|
15
15
|
|
16
|
-
def initialize(controller_path, action, valid_params = [], filter_starting_with = nil)
|
16
|
+
def initialize(controller_path, action, valid_params = [], filter_starting_with = nil, expires_in = nil)
|
17
17
|
@action = action
|
18
18
|
if valid_params and !valid_params.empty?
|
19
19
|
@valid_params = valid_params
|
@@ -22,6 +22,7 @@ module ActionParamCaching
|
|
22
22
|
@filter_starting_with = filter_starting_with
|
23
23
|
@filter_starting_with ||= '_'
|
24
24
|
@did_config_cache = false
|
25
|
+
@expires_in = expires_in
|
25
26
|
|
26
27
|
ActionParamCaching::ActionConfig.store_lookup(controller_path, action, self)
|
27
28
|
end
|
@@ -39,6 +40,10 @@ module ActionParamCaching
|
|
39
40
|
@argz[:cache_path] = self.path_proc
|
40
41
|
end
|
41
42
|
|
43
|
+
if @expires_in
|
44
|
+
@argz[:expires_in] = self.expires_in
|
45
|
+
end
|
46
|
+
|
42
47
|
@argz
|
43
48
|
end
|
44
49
|
|
@@ -58,4 +63,4 @@ module ActionParamCaching
|
|
58
63
|
key.to_s.start_with?(ActionParamCaching::ActionConfig.lookup[request.params[:controller]][request.params[:action].to_sym].filter_starting_with)}.all? }
|
59
64
|
end
|
60
65
|
end
|
61
|
-
end
|
66
|
+
end
|
@@ -7,7 +7,7 @@ module ActionParamCaching
|
|
7
7
|
@action_cache_configs = {} if @action_cache_configs.nil?
|
8
8
|
|
9
9
|
options[:on].each do |action|
|
10
|
-
@action_cache_configs[action] = ActionParamCaching::ActionConfig.new(self.controller_path, action, options[:with_set_or_subset], options[:filter_starting_with]) unless @action_cache_configs[action]
|
10
|
+
@action_cache_configs[action] = ActionParamCaching::ActionConfig.new(self.controller_path, action, options[:with_set_or_subset], options[:filter_starting_with], options[:expires_in]) unless @action_cache_configs[action]
|
11
11
|
end
|
12
12
|
|
13
13
|
options[:on].each do |action|
|
@@ -18,7 +18,11 @@ module ActionParamCaching
|
|
18
18
|
config.did_config_cache = true
|
19
19
|
end
|
20
20
|
end
|
21
|
+
|
22
|
+
if options[:expires_in]
|
23
|
+
caches_action :expires_in => options[:expires_in]
|
24
|
+
end
|
21
25
|
end
|
22
26
|
end
|
23
27
|
end
|
24
|
-
end
|
28
|
+
end
|
data/spec/action_config_spec.rb
CHANGED
@@ -79,6 +79,14 @@ module ActionParamCaching
|
|
79
79
|
proc = cache_args[:if]
|
80
80
|
proc.call(request).should be_false
|
81
81
|
end
|
82
|
+
|
83
|
+
it "adds expires in parameter to action arguments" do
|
84
|
+
cache_config = ActionParamCaching::ActionConfig.new("some_controller", :index, [:id, :name, :amount], nil, 24.hours)
|
85
|
+
cache_args = cache_config.cache_args
|
86
|
+
request = mock
|
87
|
+
request.stubs(:params).returns( {:id => 23, :name => "test", :not => "valid", :controller => "some_controller", :action => :index, :format => 'json', :expires_in => 24.hours} )
|
88
|
+
cache_args[:expires_in].should eq(24.hours)
|
89
|
+
end
|
82
90
|
end
|
83
91
|
end
|
84
|
-
end
|
92
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: action_param_caching
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cparratto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|