garner 0.4.5 → 0.5.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 (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: