record-cache 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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