record-cache 0.1.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.
Files changed (39) hide show
  1. data/lib/record-cache.rb +1 -0
  2. data/lib/record_cache/active_record.rb +318 -0
  3. data/lib/record_cache/base.rb +136 -0
  4. data/lib/record_cache/dispatcher.rb +90 -0
  5. data/lib/record_cache/multi_read.rb +51 -0
  6. data/lib/record_cache/query.rb +85 -0
  7. data/lib/record_cache/statistics.rb +82 -0
  8. data/lib/record_cache/strategy/base.rb +154 -0
  9. data/lib/record_cache/strategy/id_cache.rb +93 -0
  10. data/lib/record_cache/strategy/index_cache.rb +122 -0
  11. data/lib/record_cache/strategy/request_cache.rb +49 -0
  12. data/lib/record_cache/test/resettable_version_store.rb +49 -0
  13. data/lib/record_cache/version.rb +5 -0
  14. data/lib/record_cache/version_store.rb +54 -0
  15. data/lib/record_cache.rb +11 -0
  16. data/spec/db/database.yml +6 -0
  17. data/spec/db/schema.rb +42 -0
  18. data/spec/db/seeds.rb +40 -0
  19. data/spec/initializers/record_cache.rb +14 -0
  20. data/spec/lib/dispatcher_spec.rb +86 -0
  21. data/spec/lib/multi_read_spec.rb +51 -0
  22. data/spec/lib/query_spec.rb +148 -0
  23. data/spec/lib/statistics_spec.rb +140 -0
  24. data/spec/lib/strategy/base_spec.rb +241 -0
  25. data/spec/lib/strategy/id_cache_spec.rb +168 -0
  26. data/spec/lib/strategy/index_cache_spec.rb +223 -0
  27. data/spec/lib/strategy/request_cache_spec.rb +85 -0
  28. data/spec/lib/version_store_spec.rb +104 -0
  29. data/spec/models/apple.rb +8 -0
  30. data/spec/models/banana.rb +8 -0
  31. data/spec/models/pear.rb +6 -0
  32. data/spec/models/person.rb +11 -0
  33. data/spec/models/store.rb +13 -0
  34. data/spec/spec_helper.rb +44 -0
  35. data/spec/support/after_commit.rb +71 -0
  36. data/spec/support/matchers/hit_cache_matcher.rb +53 -0
  37. data/spec/support/matchers/miss_cache_matcher.rb +53 -0
  38. data/spec/support/matchers/use_cache_matcher.rb +53 -0
  39. metadata +253 -0
metadata ADDED
@@ -0,0 +1,253 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: record-cache
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Orslumen
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-09-27 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rails
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - "="
27
+ - !ruby/object:Gem::Version
28
+ hash: 19
29
+ segments:
30
+ - 3
31
+ - 0
32
+ - 10
33
+ version: 3.0.10
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: activerecord
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - "="
43
+ - !ruby/object:Gem::Version
44
+ hash: 19
45
+ segments:
46
+ - 3
47
+ - 0
48
+ - 10
49
+ version: 3.0.10
50
+ type: :development
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: sqlite3
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 3
61
+ segments:
62
+ - 0
63
+ version: "0"
64
+ type: :development
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
67
+ name: rake
68
+ prerelease: false
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
77
+ version: "0"
78
+ type: :development
79
+ version_requirements: *id004
80
+ - !ruby/object:Gem::Dependency
81
+ name: rcov
82
+ prerelease: false
83
+ requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ hash: 3
89
+ segments:
90
+ - 0
91
+ version: "0"
92
+ type: :development
93
+ version_requirements: *id005
94
+ - !ruby/object:Gem::Dependency
95
+ name: rspec
96
+ prerelease: false
97
+ requirement: &id006 !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ hash: 3
103
+ segments:
104
+ - 0
105
+ version: "0"
106
+ type: :development
107
+ version_requirements: *id006
108
+ - !ruby/object:Gem::Dependency
109
+ name: rr
110
+ prerelease: false
111
+ requirement: &id007 !ruby/object:Gem::Requirement
112
+ none: false
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ hash: 3
117
+ segments:
118
+ - 0
119
+ version: "0"
120
+ type: :development
121
+ version_requirements: *id007
122
+ - !ruby/object:Gem::Dependency
123
+ name: database_cleaner
124
+ prerelease: false
125
+ requirement: &id008 !ruby/object:Gem::Requirement
126
+ none: false
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ hash: 3
131
+ segments:
132
+ - 0
133
+ version: "0"
134
+ type: :development
135
+ version_requirements: *id008
136
+ - !ruby/object:Gem::Dependency
137
+ name: rdoc
138
+ prerelease: false
139
+ requirement: &id009 !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ hash: 3
145
+ segments:
146
+ - 0
147
+ version: "0"
148
+ type: :development
149
+ version_requirements: *id009
150
+ description: Record Cache for Rails 3
151
+ email: orslumen@gmail.com
152
+ executables: []
153
+
154
+ extensions: []
155
+
156
+ extra_rdoc_files: []
157
+
158
+ files:
159
+ - lib/record-cache.rb
160
+ - lib/record_cache.rb
161
+ - lib/record_cache/active_record.rb
162
+ - lib/record_cache/base.rb
163
+ - lib/record_cache/dispatcher.rb
164
+ - lib/record_cache/multi_read.rb
165
+ - lib/record_cache/query.rb
166
+ - lib/record_cache/statistics.rb
167
+ - lib/record_cache/strategy/base.rb
168
+ - lib/record_cache/strategy/id_cache.rb
169
+ - lib/record_cache/strategy/index_cache.rb
170
+ - lib/record_cache/strategy/request_cache.rb
171
+ - lib/record_cache/test/resettable_version_store.rb
172
+ - lib/record_cache/version.rb
173
+ - lib/record_cache/version_store.rb
174
+ - spec/db/database.yml
175
+ - spec/db/schema.rb
176
+ - spec/db/seeds.rb
177
+ - spec/initializers/record_cache.rb
178
+ - spec/lib/dispatcher_spec.rb
179
+ - spec/lib/multi_read_spec.rb
180
+ - spec/lib/query_spec.rb
181
+ - spec/lib/statistics_spec.rb
182
+ - spec/lib/strategy/base_spec.rb
183
+ - spec/lib/strategy/id_cache_spec.rb
184
+ - spec/lib/strategy/index_cache_spec.rb
185
+ - spec/lib/strategy/request_cache_spec.rb
186
+ - spec/lib/version_store_spec.rb
187
+ - spec/models/apple.rb
188
+ - spec/models/banana.rb
189
+ - spec/models/pear.rb
190
+ - spec/models/person.rb
191
+ - spec/models/store.rb
192
+ - spec/spec_helper.rb
193
+ - spec/support/after_commit.rb
194
+ - spec/support/matchers/hit_cache_matcher.rb
195
+ - spec/support/matchers/miss_cache_matcher.rb
196
+ - spec/support/matchers/use_cache_matcher.rb
197
+ homepage: https://github.com/orslumen/record-cache
198
+ licenses: []
199
+
200
+ post_install_message:
201
+ rdoc_options:
202
+ - --charset=UTF-8
203
+ require_paths:
204
+ - lib
205
+ required_ruby_version: !ruby/object:Gem::Requirement
206
+ none: false
207
+ requirements:
208
+ - - ">="
209
+ - !ruby/object:Gem::Version
210
+ hash: 3
211
+ segments:
212
+ - 0
213
+ version: "0"
214
+ required_rubygems_version: !ruby/object:Gem::Requirement
215
+ none: false
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ hash: 3
220
+ segments:
221
+ - 0
222
+ version: "0"
223
+ requirements: []
224
+
225
+ rubyforge_project:
226
+ rubygems_version: 1.8.10
227
+ signing_key:
228
+ specification_version: 3
229
+ summary: Record Cache v0.1.0 transparantly stores Records in a Cache Store and retrieve those Records from the store when queried (by ID) using Active Model.
230
+ test_files:
231
+ - spec/db/database.yml
232
+ - spec/db/schema.rb
233
+ - spec/db/seeds.rb
234
+ - spec/initializers/record_cache.rb
235
+ - spec/lib/dispatcher_spec.rb
236
+ - spec/lib/multi_read_spec.rb
237
+ - spec/lib/query_spec.rb
238
+ - spec/lib/statistics_spec.rb
239
+ - spec/lib/strategy/base_spec.rb
240
+ - spec/lib/strategy/id_cache_spec.rb
241
+ - spec/lib/strategy/index_cache_spec.rb
242
+ - spec/lib/strategy/request_cache_spec.rb
243
+ - spec/lib/version_store_spec.rb
244
+ - spec/models/apple.rb
245
+ - spec/models/banana.rb
246
+ - spec/models/pear.rb
247
+ - spec/models/person.rb
248
+ - spec/models/store.rb
249
+ - spec/spec_helper.rb
250
+ - spec/support/after_commit.rb
251
+ - spec/support/matchers/hit_cache_matcher.rb
252
+ - spec/support/matchers/miss_cache_matcher.rb
253
+ - spec/support/matchers/use_cache_matcher.rb