garner 0.4.5 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +7 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +35 -0
  5. data/.travis.yml +13 -0
  6. data/CHANGELOG.md +130 -0
  7. data/CONTRIBUTING.md +118 -0
  8. data/Gemfile +3 -0
  9. data/README.md +1 -0
  10. data/Rakefile +39 -0
  11. data/UPGRADING.md +118 -0
  12. data/garner.gemspec +44 -0
  13. data/lib/garner.rb +21 -21
  14. data/lib/garner/cache.rb +13 -6
  15. data/lib/garner/cache/binding.rb +6 -14
  16. data/lib/garner/cache/context.rb +11 -12
  17. data/lib/garner/cache/identity.rb +1 -1
  18. data/lib/garner/config.rb +12 -7
  19. data/lib/garner/mixins/active_record.rb +3 -3
  20. data/lib/garner/mixins/active_record/base.rb +2 -2
  21. data/lib/garner/mixins/mongoid.rb +4 -4
  22. data/lib/garner/mixins/mongoid/document.rb +8 -12
  23. data/lib/garner/mixins/mongoid/identity.rb +5 -6
  24. data/lib/garner/mixins/rack.rb +1 -2
  25. data/lib/garner/strategies/binding/invalidation/base.rb +2 -4
  26. data/lib/garner/strategies/binding/invalidation/binding_index.rb +1 -3
  27. data/lib/garner/strategies/binding/invalidation/touch.rb +0 -2
  28. data/lib/garner/strategies/binding/key/base.rb +1 -3
  29. data/lib/garner/strategies/binding/key/binding_index.rb +3 -4
  30. data/lib/garner/strategies/binding/key/cache_key.rb +0 -2
  31. data/lib/garner/strategies/binding/key/safe_cache_key.rb +2 -3
  32. data/lib/garner/strategies/context/key/base.rb +1 -3
  33. data/lib/garner/strategies/context/key/caller.rb +9 -12
  34. data/lib/garner/strategies/context/key/jsonp.rb +3 -6
  35. data/lib/garner/strategies/context/key/request_get.rb +2 -4
  36. data/lib/garner/strategies/context/key/request_path.rb +1 -3
  37. data/lib/garner/strategies/context/key/request_post.rb +2 -4
  38. data/lib/garner/version.rb +1 -1
  39. data/spec/garner/cache/context_spec.rb +38 -0
  40. data/spec/garner/cache/identity_spec.rb +68 -0
  41. data/spec/garner/cache_spec.rb +49 -0
  42. data/spec/garner/config_spec.rb +17 -0
  43. data/spec/garner/mixins/mongoid/document_spec.rb +80 -0
  44. data/spec/garner/mixins/mongoid/identity_spec.rb +140 -0
  45. data/spec/garner/mixins/rack_spec.rb +48 -0
  46. data/spec/garner/strategies/binding/invalidation/binding_index_spec.rb +14 -0
  47. data/spec/garner/strategies/binding/invalidation/touch_spec.rb +23 -0
  48. data/spec/garner/strategies/binding/key/binding_index_spec.rb +245 -0
  49. data/spec/garner/strategies/binding/key/cache_key_spec.rb +29 -0
  50. data/spec/garner/strategies/binding/key/safe_cache_key_spec.rb +61 -0
  51. data/spec/garner/strategies/context/key/caller_spec.rb +106 -0
  52. data/spec/garner/strategies/context/key/jsonp_spec.rb +22 -0
  53. data/spec/garner/strategies/context/key/request_get_spec.rb +33 -0
  54. data/spec/garner/strategies/context/key/request_path_spec.rb +28 -0
  55. data/spec/garner/strategies/context/key/request_post_spec.rb +34 -0
  56. data/spec/garner/version_spec.rb +11 -0
  57. data/spec/integration/active_record_spec.rb +43 -0
  58. data/spec/integration/grape_spec.rb +33 -0
  59. data/spec/integration/mongoid_spec.rb +355 -0
  60. data/spec/integration/rack_spec.rb +77 -0
  61. data/spec/integration/sinatra_spec.rb +29 -0
  62. data/spec/performance/strategy_benchmark.rb +59 -0
  63. data/spec/performance/support/benchmark_context.rb +31 -0
  64. data/spec/performance/support/benchmark_context_wrapper.rb +67 -0
  65. data/spec/shared/binding_invalidation_strategy.rb +17 -0
  66. data/spec/shared/binding_key_strategy.rb +35 -0
  67. data/spec/shared/conditional_get.rb +48 -0
  68. data/spec/shared/context_key_strategy.rb +24 -0
  69. data/spec/spec_helper.rb +24 -0
  70. data/spec/spec_support.rb +5 -0
  71. data/spec/support/active_record.rb +36 -0
  72. data/spec/support/cache.rb +15 -0
  73. data/spec/support/garner.rb +5 -0
  74. data/spec/support/mongoid.rb +71 -0
  75. metadata +155 -157
@@ -0,0 +1,15 @@
1
+ require 'garner'
2
+ require 'active_support/cache/dalli_store'
3
+
4
+ if (server = ENV['GARNER_MEMCACHE_SERVER'])
5
+ Garner.configure do |config|
6
+ config.cache = ActiveSupport::Cache::DalliStore.new(server, compress: !!ENV['GARNER_MEMCACHE_COMPRESS'])
7
+ end
8
+ end
9
+
10
+ # Purge cache before each test example
11
+ RSpec.configure do |config|
12
+ config.before(:each) do
13
+ Garner.config.cache.clear
14
+ end
15
+ end
@@ -0,0 +1,5 @@
1
+ RSpec.configure do |config|
2
+ config.before(:each) do
3
+ Garner.config.reset!
4
+ end
5
+ end
@@ -0,0 +1,71 @@
1
+ require 'garner/mixins/mongoid'
2
+ require 'mongoid_slug'
3
+
4
+ # Use garner_test database for integration tests
5
+ Mongoid.load_configuration(
6
+ sessions: {
7
+ default: {
8
+ uri: ENV['GARNER_MONGO_URL'] || 'mongodb://localhost/garner_test',
9
+ safe: true
10
+ }
11
+ },
12
+ options: {
13
+ raise_not_found_error: false
14
+ }
15
+ )
16
+
17
+ if ENV['GARNER_MONGOID_LOG']
18
+ Mongoid.logger = Logger.new(ENV['GARNER_MONGOID_LOG'])
19
+ Moped.logger = Mongoid.logger
20
+ end
21
+
22
+ # Include mixin
23
+ module Mongoid
24
+ module Document
25
+ include Garner::Mixins::Mongoid::Document
26
+ end
27
+
28
+ def self.mongoid3?
29
+ ::Mongoid.const_defined? :Observer # deprecated in Mongoid 4.x
30
+ end
31
+ end
32
+
33
+ # Stub classes
34
+ class Monger
35
+ include Mongoid::Document
36
+ include Mongoid::Timestamps
37
+ include Mongoid::Slug
38
+ embeds_one :fish
39
+ has_many :cheeses
40
+
41
+ field :name, type: String
42
+ slug :name, history: true
43
+
44
+ field :subdocument, type: String
45
+ end
46
+
47
+ class Food
48
+ include Mongoid::Document
49
+ include Mongoid::Timestamps
50
+
51
+ field :name, type: String
52
+ end
53
+
54
+ class Fish < Food
55
+ embedded_in :monger
56
+ end
57
+
58
+ class Cheese < Food
59
+ include Mongoid::Slug
60
+ belongs_to :monger
61
+
62
+ slug :name, history: true
63
+ end
64
+
65
+ # Purge MongoDB database before each test example
66
+ RSpec.configure do |config|
67
+ config.before(:each) do
68
+ Mongoid.purge!
69
+ Mongoid.models.each(&:create_indexes)
70
+ end
71
+ end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: garner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
5
- prerelease:
4
+ version: 0.5.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Daniel Doubrovkine
@@ -10,353 +9,285 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-10-18 00:00:00.000000000 Z
12
+ date: 2014-07-17 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: rack
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
- - - ! '>='
18
+ - - '>='
21
19
  - !ruby/object:Gem::Version
22
20
  version: '0'
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
- - - ! '>='
25
+ - - '>='
29
26
  - !ruby/object:Gem::Version
30
27
  version: '0'
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: json
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
- - - ! '>='
32
+ - - '>='
37
33
  - !ruby/object:Gem::Version
38
34
  version: '0'
39
35
  type: :runtime
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
- - - ! '>='
39
+ - - '>='
45
40
  - !ruby/object:Gem::Version
46
41
  version: '0'
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: multi_json
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
- - - ! '>='
46
+ - - '>='
53
47
  - !ruby/object:Gem::Version
54
48
  version: 1.3.0
55
49
  type: :runtime
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
- - - ! '>='
53
+ - - '>='
61
54
  - !ruby/object:Gem::Version
62
55
  version: 1.3.0
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: activesupport
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
- - - ! '>='
60
+ - - '>='
69
61
  - !ruby/object:Gem::Version
70
62
  version: '0'
71
63
  type: :runtime
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
- - - ! '>='
67
+ - - '>='
77
68
  - !ruby/object:Gem::Version
78
69
  version: '0'
79
70
  - !ruby/object:Gem::Dependency
80
- name: bundler
71
+ name: rake
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
- - - ! '>='
74
+ - - '>='
85
75
  - !ruby/object:Gem::Version
86
- version: 1.3.0
76
+ version: '0'
87
77
  type: :development
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
- - - ! '>='
81
+ - - '>='
93
82
  - !ruby/object:Gem::Version
94
- version: 1.3.0
83
+ version: '0'
95
84
  - !ruby/object:Gem::Dependency
96
- name: grape
85
+ name: rspec
97
86
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
87
  requirements:
100
- - - ! '>='
88
+ - - ~>
101
89
  - !ruby/object:Gem::Version
102
- version: 0.2.0
90
+ version: '2.10'
103
91
  type: :development
104
92
  prerelease: false
105
93
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
94
  requirements:
108
- - - ! '>='
95
+ - - ~>
109
96
  - !ruby/object:Gem::Version
110
- version: 0.2.0
97
+ version: '2.10'
111
98
  - !ruby/object:Gem::Dependency
112
- name: sinatra
99
+ name: bundler
113
100
  requirement: !ruby/object:Gem::Requirement
114
- none: false
115
101
  requirements:
116
- - - ! '>='
102
+ - - '>='
117
103
  - !ruby/object:Gem::Version
118
104
  version: '0'
119
105
  type: :development
120
106
  prerelease: false
121
107
  version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
108
  requirements:
124
- - - ! '>='
109
+ - - '>='
125
110
  - !ruby/object:Gem::Version
126
111
  version: '0'
127
112
  - !ruby/object:Gem::Dependency
128
- name: rack-test
113
+ name: grape
129
114
  requirement: !ruby/object:Gem::Requirement
130
- none: false
131
115
  requirements:
132
- - - ! '>='
116
+ - - ~>
133
117
  - !ruby/object:Gem::Version
134
- version: '0'
118
+ version: 0.8.0
135
119
  type: :development
136
120
  prerelease: false
137
121
  version_requirements: !ruby/object:Gem::Requirement
138
- none: false
139
122
  requirements:
140
- - - ! '>='
123
+ - - ~>
141
124
  - !ruby/object:Gem::Version
142
- version: '0'
125
+ version: 0.8.0
143
126
  - !ruby/object:Gem::Dependency
144
- name: rspec
127
+ name: sinatra
145
128
  requirement: !ruby/object:Gem::Requirement
146
- none: false
147
129
  requirements:
148
- - - ! '>='
130
+ - - '>='
149
131
  - !ruby/object:Gem::Version
150
- version: 2.10.0
132
+ version: '0'
151
133
  type: :development
152
134
  prerelease: false
153
135
  version_requirements: !ruby/object:Gem::Requirement
154
- none: false
155
136
  requirements:
156
- - - ! '>='
137
+ - - '>='
157
138
  - !ruby/object:Gem::Version
158
- version: 2.10.0
139
+ version: '0'
159
140
  - !ruby/object:Gem::Dependency
160
- name: jeweler
141
+ name: rack-test
161
142
  requirement: !ruby/object:Gem::Requirement
162
- none: false
163
143
  requirements:
164
- - - ! '>='
144
+ - - '>='
165
145
  - !ruby/object:Gem::Version
166
146
  version: '0'
167
147
  type: :development
168
148
  prerelease: false
169
149
  version_requirements: !ruby/object:Gem::Requirement
170
- none: false
171
150
  requirements:
172
- - - ! '>='
151
+ - - '>='
173
152
  - !ruby/object:Gem::Version
174
153
  version: '0'
175
154
  - !ruby/object:Gem::Dependency
176
155
  name: mongoid
177
156
  requirement: !ruby/object:Gem::Requirement
178
- none: false
179
157
  requirements:
180
- - - ! '>='
158
+ - - '>='
181
159
  - !ruby/object:Gem::Version
182
160
  version: 3.0.0
183
161
  type: :development
184
162
  prerelease: false
185
163
  version_requirements: !ruby/object:Gem::Requirement
186
- none: false
187
164
  requirements:
188
- - - ! '>='
165
+ - - '>='
189
166
  - !ruby/object:Gem::Version
190
167
  version: 3.0.0
191
168
  - !ruby/object:Gem::Dependency
192
169
  name: mongoid_slug
193
170
  requirement: !ruby/object:Gem::Requirement
194
- none: false
195
- requirements:
196
- - - ! '>='
197
- - !ruby/object:Gem::Version
198
- version: 1.0.0
199
- type: :development
200
- prerelease: false
201
- version_requirements: !ruby/object:Gem::Requirement
202
- none: false
203
- requirements:
204
- - - ! '>='
205
- - !ruby/object:Gem::Version
206
- version: 1.0.0
207
- - !ruby/object:Gem::Dependency
208
- name: dalli
209
- requirement: !ruby/object:Gem::Requirement
210
- none: false
211
171
  requirements:
212
- - - ! '>='
172
+ - - '>='
213
173
  - !ruby/object:Gem::Version
214
174
  version: '0'
215
175
  type: :development
216
176
  prerelease: false
217
177
  version_requirements: !ruby/object:Gem::Requirement
218
- none: false
219
178
  requirements:
220
- - - ! '>='
179
+ - - '>='
221
180
  - !ruby/object:Gem::Version
222
181
  version: '0'
223
182
  - !ruby/object:Gem::Dependency
224
183
  name: activerecord
225
184
  requirement: !ruby/object:Gem::Requirement
226
- none: false
227
185
  requirements:
228
- - - ! '>='
186
+ - - '>='
229
187
  - !ruby/object:Gem::Version
230
188
  version: '0'
231
189
  type: :development
232
190
  prerelease: false
233
191
  version_requirements: !ruby/object:Gem::Requirement
234
- none: false
235
192
  requirements:
236
- - - ! '>='
193
+ - - '>='
237
194
  - !ruby/object:Gem::Version
238
195
  version: '0'
239
196
  - !ruby/object:Gem::Dependency
240
197
  name: sqlite3
241
198
  requirement: !ruby/object:Gem::Requirement
242
- none: false
243
199
  requirements:
244
- - - ! '>='
200
+ - - '>='
245
201
  - !ruby/object:Gem::Version
246
202
  version: '0'
247
203
  type: :development
248
204
  prerelease: false
249
205
  version_requirements: !ruby/object:Gem::Requirement
250
- none: false
251
206
  requirements:
252
- - - ! '>='
207
+ - - '>='
253
208
  - !ruby/object:Gem::Version
254
209
  version: '0'
255
210
  - !ruby/object:Gem::Dependency
256
211
  name: coveralls
257
212
  requirement: !ruby/object:Gem::Requirement
258
- none: false
259
- requirements:
260
- - - ! '>='
261
- - !ruby/object:Gem::Version
262
- version: '0'
263
- type: :development
264
- prerelease: false
265
- version_requirements: !ruby/object:Gem::Requirement
266
- none: false
267
- requirements:
268
- - - ! '>='
269
- - !ruby/object:Gem::Version
270
- version: '0'
271
- - !ruby/object:Gem::Dependency
272
- name: method_profiler
273
- requirement: !ruby/object:Gem::Requirement
274
- none: false
275
213
  requirements:
276
- - - ! '>='
214
+ - - '>='
277
215
  - !ruby/object:Gem::Version
278
216
  version: '0'
279
217
  type: :development
280
218
  prerelease: false
281
219
  version_requirements: !ruby/object:Gem::Requirement
282
- none: false
283
220
  requirements:
284
- - - ! '>='
285
- - !ruby/object:Gem::Version
286
- version: '0'
287
- - !ruby/object:Gem::Dependency
288
- name: pry
289
- requirement: !ruby/object:Gem::Requirement
290
- none: false
291
- requirements:
292
- - - ! '>='
293
- - !ruby/object:Gem::Version
294
- version: '0'
295
- type: :development
296
- prerelease: false
297
- version_requirements: !ruby/object:Gem::Requirement
298
- none: false
299
- requirements:
300
- - - ! '>='
221
+ - - '>='
301
222
  - !ruby/object:Gem::Version
302
223
  version: '0'
303
224
  - !ruby/object:Gem::Dependency
304
225
  name: yard
305
226
  requirement: !ruby/object:Gem::Requirement
306
- none: false
307
227
  requirements:
308
- - - ! '>='
228
+ - - '>='
309
229
  - !ruby/object:Gem::Version
310
230
  version: '0'
311
231
  type: :development
312
232
  prerelease: false
313
233
  version_requirements: !ruby/object:Gem::Requirement
314
- none: false
315
234
  requirements:
316
- - - ! '>='
235
+ - - '>='
317
236
  - !ruby/object:Gem::Version
318
237
  version: '0'
319
238
  - !ruby/object:Gem::Dependency
320
- name: redcarpet
239
+ name: dalli
321
240
  requirement: !ruby/object:Gem::Requirement
322
- none: false
323
241
  requirements:
324
- - - ! '>='
242
+ - - '>='
325
243
  - !ruby/object:Gem::Version
326
244
  version: '0'
327
245
  type: :development
328
246
  prerelease: false
329
247
  version_requirements: !ruby/object:Gem::Requirement
330
- none: false
331
248
  requirements:
332
- - - ! '>='
249
+ - - '>='
333
250
  - !ruby/object:Gem::Version
334
251
  version: '0'
335
252
  - !ruby/object:Gem::Dependency
336
- name: github-markup
253
+ name: rubocop
337
254
  requirement: !ruby/object:Gem::Requirement
338
- none: false
339
255
  requirements:
340
- - - ! '>='
256
+ - - '='
341
257
  - !ruby/object:Gem::Version
342
- version: '0'
258
+ version: 0.24.1
343
259
  type: :development
344
260
  prerelease: false
345
261
  version_requirements: !ruby/object:Gem::Requirement
346
- none: false
347
262
  requirements:
348
- - - ! '>='
263
+ - - '='
349
264
  - !ruby/object:Gem::Version
350
- version: '0'
351
- description: Garner is a cache layer for Ruby and Rack applications, supporting model
352
- and instance binding and hierarchical invalidation.
353
- email: dblock@dblock.org
265
+ version: 0.24.1
266
+ description:
267
+ email:
268
+ - dblock@dblock.org
269
+ - frank.macreery@gmail.com
354
270
  executables: []
355
271
  extensions: []
356
272
  extra_rdoc_files:
273
+ - CHANGELOG.md
274
+ - CONTRIBUTING.md
357
275
  - LICENSE.md
358
276
  - README.md
277
+ - UPGRADING.md
359
278
  files:
279
+ - .gitignore
280
+ - .rspec
281
+ - .rubocop.yml
282
+ - .travis.yml
283
+ - CHANGELOG.md
284
+ - CONTRIBUTING.md
285
+ - Gemfile
286
+ - LICENSE.md
287
+ - README.md
288
+ - Rakefile
289
+ - UPGRADING.md
290
+ - garner.gemspec
360
291
  - lib/garner.rb
361
292
  - lib/garner/cache.rb
362
293
  - lib/garner/cache/binding.rb
@@ -383,35 +314,102 @@ files:
383
314
  - lib/garner/strategies/context/key/request_path.rb
384
315
  - lib/garner/strategies/context/key/request_post.rb
385
316
  - lib/garner/version.rb
386
- - LICENSE.md
387
- - README.md
388
- homepage: http://github.com/artsy/garner
317
+ - spec/garner/cache/context_spec.rb
318
+ - spec/garner/cache/identity_spec.rb
319
+ - spec/garner/cache_spec.rb
320
+ - spec/garner/config_spec.rb
321
+ - spec/garner/mixins/mongoid/document_spec.rb
322
+ - spec/garner/mixins/mongoid/identity_spec.rb
323
+ - spec/garner/mixins/rack_spec.rb
324
+ - spec/garner/strategies/binding/invalidation/binding_index_spec.rb
325
+ - spec/garner/strategies/binding/invalidation/touch_spec.rb
326
+ - spec/garner/strategies/binding/key/binding_index_spec.rb
327
+ - spec/garner/strategies/binding/key/cache_key_spec.rb
328
+ - spec/garner/strategies/binding/key/safe_cache_key_spec.rb
329
+ - spec/garner/strategies/context/key/caller_spec.rb
330
+ - spec/garner/strategies/context/key/jsonp_spec.rb
331
+ - spec/garner/strategies/context/key/request_get_spec.rb
332
+ - spec/garner/strategies/context/key/request_path_spec.rb
333
+ - spec/garner/strategies/context/key/request_post_spec.rb
334
+ - spec/garner/version_spec.rb
335
+ - spec/integration/active_record_spec.rb
336
+ - spec/integration/grape_spec.rb
337
+ - spec/integration/mongoid_spec.rb
338
+ - spec/integration/rack_spec.rb
339
+ - spec/integration/sinatra_spec.rb
340
+ - spec/performance/strategy_benchmark.rb
341
+ - spec/performance/support/benchmark_context.rb
342
+ - spec/performance/support/benchmark_context_wrapper.rb
343
+ - spec/shared/binding_invalidation_strategy.rb
344
+ - spec/shared/binding_key_strategy.rb
345
+ - spec/shared/conditional_get.rb
346
+ - spec/shared/context_key_strategy.rb
347
+ - spec/spec_helper.rb
348
+ - spec/spec_support.rb
349
+ - spec/support/active_record.rb
350
+ - spec/support/cache.rb
351
+ - spec/support/garner.rb
352
+ - spec/support/mongoid.rb
353
+ homepage: https://github.com/artsy/garner
389
354
  licenses:
390
355
  - MIT
356
+ metadata: {}
391
357
  post_install_message:
392
358
  rdoc_options: []
393
359
  require_paths:
394
360
  - lib
395
361
  required_ruby_version: !ruby/object:Gem::Requirement
396
- none: false
397
362
  requirements:
398
- - - ! '>='
363
+ - - '>='
399
364
  - !ruby/object:Gem::Version
400
365
  version: '0'
401
- segments:
402
- - 0
403
- hash: 1633170604903825081
404
366
  required_rubygems_version: !ruby/object:Gem::Requirement
405
- none: false
406
367
  requirements:
407
- - - ! '>='
368
+ - - '>='
408
369
  - !ruby/object:Gem::Version
409
370
  version: '0'
410
371
  requirements: []
411
372
  rubyforge_project:
412
- rubygems_version: 1.8.25
373
+ rubygems_version: 2.0.14
413
374
  signing_key:
414
- specification_version: 3
375
+ specification_version: 4
415
376
  summary: Garner is a cache layer for Ruby and Rack applications, supporting model
416
377
  and instance binding and hierarchical invalidation.
417
- test_files: []
378
+ test_files:
379
+ - spec/garner/cache/context_spec.rb
380
+ - spec/garner/cache/identity_spec.rb
381
+ - spec/garner/cache_spec.rb
382
+ - spec/garner/config_spec.rb
383
+ - spec/garner/mixins/mongoid/document_spec.rb
384
+ - spec/garner/mixins/mongoid/identity_spec.rb
385
+ - spec/garner/mixins/rack_spec.rb
386
+ - spec/garner/strategies/binding/invalidation/binding_index_spec.rb
387
+ - spec/garner/strategies/binding/invalidation/touch_spec.rb
388
+ - spec/garner/strategies/binding/key/binding_index_spec.rb
389
+ - spec/garner/strategies/binding/key/cache_key_spec.rb
390
+ - spec/garner/strategies/binding/key/safe_cache_key_spec.rb
391
+ - spec/garner/strategies/context/key/caller_spec.rb
392
+ - spec/garner/strategies/context/key/jsonp_spec.rb
393
+ - spec/garner/strategies/context/key/request_get_spec.rb
394
+ - spec/garner/strategies/context/key/request_path_spec.rb
395
+ - spec/garner/strategies/context/key/request_post_spec.rb
396
+ - spec/garner/version_spec.rb
397
+ - spec/integration/active_record_spec.rb
398
+ - spec/integration/grape_spec.rb
399
+ - spec/integration/mongoid_spec.rb
400
+ - spec/integration/rack_spec.rb
401
+ - spec/integration/sinatra_spec.rb
402
+ - spec/performance/strategy_benchmark.rb
403
+ - spec/performance/support/benchmark_context.rb
404
+ - spec/performance/support/benchmark_context_wrapper.rb
405
+ - spec/shared/binding_invalidation_strategy.rb
406
+ - spec/shared/binding_key_strategy.rb
407
+ - spec/shared/conditional_get.rb
408
+ - spec/shared/context_key_strategy.rb
409
+ - spec/spec_helper.rb
410
+ - spec/spec_support.rb
411
+ - spec/support/active_record.rb
412
+ - spec/support/cache.rb
413
+ - spec/support/garner.rb
414
+ - spec/support/mongoid.rb
415
+ has_rdoc: