redrecord 0.6 → 0.7
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/CHANGELOG +2 -0
- data/lib/redrecord.rb +6 -4
- data/redrecord.gemspec +2 -2
- data/test/test_all.rb +6 -0
- data/test/test_helper.rb +3 -0
- metadata +8 -8
data/CHANGELOG
CHANGED
data/lib/redrecord.rb
CHANGED
@@ -46,11 +46,11 @@ class Redrecord
|
|
46
46
|
module ClassMethods
|
47
47
|
|
48
48
|
def redrecord_cached_fields
|
49
|
-
@redrecord_cached_fields ||= []
|
49
|
+
@redrecord_cached_fields ||= [] + (superclass.respond_to?(:redrecord_cached_fields) ? [*superclass.redrecord_cached_fields] : [])
|
50
50
|
end
|
51
51
|
|
52
52
|
def redrecord_invalidation_fields
|
53
|
-
@redrecord_invalidation_fields ||= []
|
53
|
+
@redrecord_invalidation_fields ||= [] + (superclass.respond_to?(:redrecord_invalidation_fields) ? [*superclass.redrecord_invalidation_fields] : [])
|
54
54
|
end
|
55
55
|
|
56
56
|
def redis_cache(*fields, &bl)
|
@@ -59,6 +59,7 @@ class Redrecord
|
|
59
59
|
class_eval(&bl)
|
60
60
|
fields.push(*(instance_methods - old_methods))
|
61
61
|
end
|
62
|
+
fields = fields.select {|f| instance_method(f).arity < 1 }
|
62
63
|
redrecord_cached_fields.push(*fields)
|
63
64
|
fields.each do |f|
|
64
65
|
aliased_target, punctuation = f.to_s.sub(/([?!=])$/, ''), $1
|
@@ -140,8 +141,9 @@ class Redrecord
|
|
140
141
|
def verify_cache!
|
141
142
|
(redis_cached_keys = Redrecord.redis_op(:hkeys, redrecord_key)) && redis_cached_keys.each do |key|
|
142
143
|
calculated = redrecord_uncached_value(key)
|
143
|
-
|
144
|
-
|
144
|
+
cachedval = Redrecord.unmarshal(Redrecord.redis_op(:hget, redrecord_key, key))
|
145
|
+
if(calculated != cachedval)
|
146
|
+
raise "#{redrecord_key}.#{key}: expected <#{calculated}> but got <#{cachedval}> from redis cache"
|
145
147
|
end
|
146
148
|
end
|
147
149
|
end
|
data/redrecord.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "redrecord"
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.7"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Andrew Snow"]
|
9
|
-
s.date = "2012-02-
|
9
|
+
s.date = "2012-02-17"
|
10
10
|
s.description = "Redis cacheing for ActiveRecord"
|
11
11
|
s.email = "andrew@modulus.org"
|
12
12
|
s.extra_rdoc_files = ["CHANGELOG", "README", "lib/redrecord.rb"]
|
data/test/test_all.rb
CHANGED
@@ -158,5 +158,11 @@ class TestRedrecord < Test::Unit::TestCase
|
|
158
158
|
@user.verify_cache!
|
159
159
|
end
|
160
160
|
end
|
161
|
+
|
162
|
+
def test_inherited_invalidations
|
163
|
+
assert_equal [:user], TestGroup.redrecord_invalidation_fields
|
164
|
+
assert_equal [:user], TestDeepGroup.redrecord_invalidation_fields
|
165
|
+
assert_equal [], TestModel.redrecord_invalidation_fields
|
166
|
+
end
|
161
167
|
|
162
168
|
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redrecord
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.7'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: redis
|
16
|
-
requirement: &
|
16
|
+
requirement: &82176900 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *82176900
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: active_model
|
27
|
-
requirement: &
|
27
|
+
requirement: &82311130 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *82311130
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: active_support
|
38
|
-
requirement: &
|
38
|
+
requirement: &82310630 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *82310630
|
47
47
|
description: Redis cacheing for ActiveRecord
|
48
48
|
email: andrew@modulus.org
|
49
49
|
executables: []
|