cacheable_delegator 1.2.1 → 1.3.0
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 +8 -8
- data/VERSION +1 -1
- data/cacheable_delegator.gemspec +1 -1
- data/lib/cacheable_delegator.rb +7 -3
- data/spec/cacheable_delegator_spec.rb +57 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OGMxYmRiOTU2OTM4YmU0YTJkMzJmYTMxODNlMWUyYmM4YmQ5YTJhMw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NDFjZjQxZjM5ZTA4YTZjOWFlY2ZiMDViMGYwYWEzZWJmNWExNmNhOQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NGY0YzI5MDU3OGI5Yjk5ZjExNDZhNThiMmE1NmE2Yjk4MzMwMmMzODgxODk5
|
10
|
+
OTRhYTEwMmRiOGJiMmNiODQ4MzFjNjI2MDc5NjBkMThkNmYyOWFkY2YwNWJj
|
11
|
+
MGQxYjYxMDYzODYwMWQwNTQ3NGUwNDJmNjA2OTU0MzQyZTUzMTM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OTU2M2Q4M2FiOTRlN2MyYTNhZGJmMzBlYzdkNzVjNDdlYjRhNDI1NmI2NTBk
|
14
|
+
OWY0MDdiYjFkMDQ3NGYwNzIyNzUzOWU4MDZkY2VjMzRjYTUwNzZiMmIwYWRh
|
15
|
+
NmJiMWJhNzY1Yzc5MjY3ZGUzNjZjNjA4NjBlMThkOGY1M2MxODE=
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.3.0
|
data/cacheable_delegator.gemspec
CHANGED
data/lib/cacheable_delegator.rb
CHANGED
@@ -195,14 +195,18 @@ module CacheableDelegator
|
|
195
195
|
# instance method
|
196
196
|
# pre: must already have source_record set
|
197
197
|
|
198
|
-
|
199
|
-
def refresh_cache!
|
198
|
+
def refresh_cache
|
200
199
|
atts = self.class.build_attributes_hash(self.source_record)
|
201
|
-
self.
|
200
|
+
self.assign_attributes(atts)
|
202
201
|
|
203
202
|
self
|
204
203
|
end
|
205
204
|
|
205
|
+
def refresh_cache!
|
206
|
+
refresh_cache
|
207
|
+
self.save
|
208
|
+
end
|
209
|
+
|
206
210
|
|
207
211
|
end
|
208
212
|
|
@@ -39,13 +39,17 @@ describe CacheableDelegator do
|
|
39
39
|
context 'explicit delegations' do
|
40
40
|
context 'it should delegate all the things' do
|
41
41
|
before(:each) do
|
42
|
-
@my_record = MyRecord.create
|
42
|
+
@my_record = MyRecord.create(name: 'Namond')
|
43
43
|
@cache_record = MyCachedRecord.create
|
44
44
|
@cache_record.source_record = @my_record
|
45
45
|
|
46
46
|
@cache_record.save
|
47
47
|
end
|
48
48
|
|
49
|
+
it 'should not take in source_record atts unless explicitly commanded' do
|
50
|
+
expect(@cache_record.name).to_not eq 'Namond'
|
51
|
+
end
|
52
|
+
|
49
53
|
it 'should have a :source_record through the #belongs_to relation' do
|
50
54
|
expect(@cache_record.source_record).to eq @my_record
|
51
55
|
end
|
@@ -62,6 +66,58 @@ describe CacheableDelegator do
|
|
62
66
|
end
|
63
67
|
|
64
68
|
|
69
|
+
context 'cache building and refreshing' do
|
70
|
+
before do
|
71
|
+
@my_record = MyRecord.create(name: 'Namond', awesome_value: 10)
|
72
|
+
@cache_record = MyCachedRecord.create_cache(@my_record)
|
73
|
+
end
|
74
|
+
|
75
|
+
describe '.create_cache' do
|
76
|
+
|
77
|
+
it 'should create a new cached_record' do
|
78
|
+
expect(@cache_record).to be_valid
|
79
|
+
expect(@cache_record).not_to be_new_record
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'should associate cache_record\'s source_record' do
|
83
|
+
expect(@cache_record.source_record).to eq @my_record
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'should have same column data values' do
|
87
|
+
expect(@cache_record.name).to eq 'Namond'
|
88
|
+
end
|
89
|
+
|
90
|
+
it 'should have derived values' do
|
91
|
+
expect(@cache_record.read_attribute :foo_double_awesome_value).to eq @my_record.send :foo_double_awesome_value
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
describe '#refresh_cache' do
|
96
|
+
it 'should assign attributes, not update them' do
|
97
|
+
@my_record.update_attributes name: 'Mike'
|
98
|
+
@cache_record.refresh_cache
|
99
|
+
|
100
|
+
expect(@cache_record).to be_changed
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe '#refresh_cache!' do
|
105
|
+
before(:each) do
|
106
|
+
@my_record.update_attributes(name: 'Randy', awesome_value: 99)
|
107
|
+
@cache_record.refresh_cache!
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'should update the column data values' do
|
111
|
+
expect(@cache_record.name).to eq 'Randy'
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'should update the derived values' do
|
115
|
+
expect(@cache_record.read_attribute :foo_double_awesome_value).to eq @my_record.send :foo_double_awesome_value
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
|
65
121
|
|
66
122
|
|
67
123
|
|