review_and_approve 0.0.1 → 0.0.2
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.
- data/README.md +3 -0
- data/lib/review_and_approve/model_additions.rb +7 -3
- data/lib/review_and_approve/version.rb +1 -1
- metadata +1 -1
data/README.md
CHANGED
@@ -42,6 +42,9 @@ review_and_approve :by => [:as_json, :to_json]
|
|
42
42
|
|
43
43
|
review_and_approve :field => :published
|
44
44
|
# Override the field used to track whether we are publishing or not.
|
45
|
+
|
46
|
+
review_and_approve :cache_key => Proc.new{|object, method_name| #Generate key string}
|
47
|
+
# Override the way the gem creates a key for reading/writing to the cache
|
45
48
|
```
|
46
49
|
|
47
50
|
### Showing differences from published version
|
@@ -4,8 +4,9 @@ module ReviewAndApprove
|
|
4
4
|
# Extracting options:
|
5
5
|
# 1. methods to cache - option :by, default value [:as_json]
|
6
6
|
# 2. attribute to track as published - option :field, default value :publish
|
7
|
-
methods = [:as_json]
|
8
7
|
field = :publish
|
8
|
+
methods = [:as_json]
|
9
|
+
key_proc = Proc.new{|obj, method| "ReviewAndApprove_#{obj.class.name}_#{obj.id}_#{method}"}
|
9
10
|
args.each do |arg|
|
10
11
|
if arg.is_a? Hash
|
11
12
|
if !arg[:by].nil?
|
@@ -14,6 +15,9 @@ module ReviewAndApprove
|
|
14
15
|
if !arg[:field].nil?
|
15
16
|
field = arg[:field]
|
16
17
|
end
|
18
|
+
if !arg[:cache_key].nil?
|
19
|
+
key_proc = arg[:cache_key]
|
20
|
+
end
|
17
21
|
end
|
18
22
|
end
|
19
23
|
|
@@ -26,7 +30,7 @@ module ReviewAndApprove
|
|
26
30
|
if published and (published==true or published=="true" or self.send(field).to_i>0 rescue false) #in case the field gets set to "0" and "1"
|
27
31
|
methods.each do |method|
|
28
32
|
# Refresh all caches
|
29
|
-
Rails.cache.write(
|
33
|
+
Rails.cache.write(key_proc.call(self, method), self.send(method))
|
30
34
|
end
|
31
35
|
end
|
32
36
|
|
@@ -34,7 +38,7 @@ module ReviewAndApprove
|
|
34
38
|
end
|
35
39
|
|
36
40
|
send(:define_method, :published_version) do |method_name|
|
37
|
-
Rails.cache.read(
|
41
|
+
Rails.cache.read(key_proc.call(self, method_name))
|
38
42
|
end
|
39
43
|
|
40
44
|
send(:define_method, :mass_assignment_authorizer) do |role = :default|
|