rails-cache-tags 1.0.0 → 1.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.
data/.gitignore CHANGED
@@ -15,4 +15,5 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
- .idea
18
+ .idea
19
+ gemfiles
data/Appraisals ADDED
@@ -0,0 +1,11 @@
1
+ appraise "rails3.0" do
2
+ gem "rails", "~> 3.0.0"
3
+ end
4
+
5
+ appraise "rails3.1" do
6
+ gem "rails", "~> 3.1.0"
7
+ end
8
+
9
+ appraise "rails3.2" do
10
+ gem "rails", "~> 3.2.0"
11
+ end
data/Rakefile CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env rake
2
2
  require "bundler/gem_tasks"
3
+ require 'appraisal'
3
4
 
4
5
  desc 'Run tests'
5
6
  task :test do
@@ -1,12 +1,14 @@
1
+ require "active_support/cache"
2
+
1
3
  module Rails
2
4
  module Cache
3
5
  class Tag #:nodoc:all:
4
6
  KEY_PREFIX = '_tags'
5
7
 
6
8
  class << self
7
- # {:post => ['1', '2', '3']} => [Tag(post:1), Tag(post:2), Tag(post:3)]
8
- # {:post => 1, :user => 2} => [Tag(post:1), Tag(user:2)]
9
- # ['post:1', 'post:2', 'post:3'] => [Tag(post:1), Tag(post:2), Tag(post:3)]
9
+ # {:post => ['1', '2', '3']} => [Tag(post/1), Tag(post/2), Tag(post/3)]
10
+ # {:post => 1, :user => 2} => [Tag(post/1), Tag(user/2)]
11
+ # ['post/1', 'post/2', 'post/3'] => [Tag(post/1), Tag(post/2), Tag(post/3)]
10
12
  def build_tags(names)
11
13
  case names
12
14
  when NilClass then nil
@@ -22,13 +24,9 @@ module Rails
22
24
 
23
25
  attr_reader :name
24
26
 
25
- # Tag constructor, accepts String, Symbol and Array
27
+ # Tag constructor
26
28
  def initialize(name)
27
- @name = case name
28
- when String, Symbol then name
29
- when Array then name.join(':')
30
- else raise ArgumentError
31
- end
29
+ @name = ActiveSupport::Cache.expand_cache_key name
32
30
  end
33
31
 
34
32
  # real cache key
@@ -1,3 +1,5 @@
1
+ # coding: utf-8
2
+
1
3
  module Rails
2
4
  module Cache
3
5
  module Tags
@@ -1,7 +1,7 @@
1
1
  module Rails
2
2
  module Cache
3
3
  module Tags
4
- VERSION = "1.0.0"
4
+ VERSION = "1.1.0"
5
5
  end
6
6
  end
7
7
  end
@@ -1,5 +1,7 @@
1
1
  require "active_support/cache"
2
2
 
3
+ require "action_controller"
4
+
3
5
  require "rails/cache/tag"
4
6
  require "rails/cache/tags/store"
5
7
 
@@ -15,13 +17,11 @@ module ActiveSupport
15
17
  end
16
18
  end
17
19
 
18
- if defined?(ActionController::Base)
19
- class ActionController::Base < ActionController::Metal
20
- def expire_fragments_by_tags *args
21
- return unless cache_configured?
20
+ class ActionController::Base < ActionController::Metal
21
+ def expire_fragments_by_tags *args
22
+ return unless cache_configured?
22
23
 
23
- cache_store.delete_tag *args
24
- end
25
- alias expire_fragments_by_tag expire_fragments_by_tags
24
+ cache_store.delete_tag *args
26
25
  end
26
+ alias expire_fragments_by_tag expire_fragments_by_tags
27
27
  end
@@ -14,9 +14,9 @@ Gem::Specification.new do |gem|
14
14
  gem.require_paths = %W(lib)
15
15
  gem.version = Rails::Cache::Tags::VERSION
16
16
 
17
- gem.add_dependency "activesupport", ">= 3.0"
18
- gem.add_dependency "actionpack", ">= 3.0"
17
+ gem.add_dependency "rails", ">= 3.0"
19
18
 
19
+ gem.add_development_dependency 'appraisal'
20
20
  gem.add_development_dependency 'minitest', '~> 3.2'
21
21
  gem.add_development_dependency 'memcache-client'
22
22
  gem.add_development_dependency 'rack'
@@ -57,6 +57,8 @@ module CacheTagsBehavior
57
57
 
58
58
  def test_exists_with_tags
59
59
  @cache.write("foo", "bar", :tags => "baz")
60
+ assert_equal @cache.exist?("foo"), true
61
+
60
62
  @cache.delete_tag("baz")
61
63
 
62
64
  assert_equal @cache.exist?("foo"), false
@@ -67,12 +69,26 @@ module CacheTagsBehavior
67
69
  assert_equal 'bar', @cache.read('foo')
68
70
  end
69
71
 
70
- def test_read_and_write_with_tags_hash_after_expiration
72
+ def test_read_and_write_with_hash_of_tags
71
73
  @cache.write("foo", "bar", :tags => {:baz => 1})
74
+ assert_equal 'bar', @cache.read('foo')
75
+
72
76
  @cache.delete_tag :baz => 1
73
77
 
74
78
  assert_nil @cache.read('foo')
75
79
  end
80
+
81
+ def test_read_and_write_with_tags_array_of_objects
82
+ tag1 = 1.day.ago
83
+ tag2 = 2.days.ago
84
+
85
+ @cache.write("foo", "bar", :tags => [tag1, tag2])
86
+ assert_equal 'bar', @cache.read('foo')
87
+
88
+ @cache.delete_tag tag2
89
+
90
+ assert_nil @cache.read('foo')
91
+ end
76
92
  end
77
93
 
78
94
  [FileStoreTest, MemoryStoreTest, MemCacheStoreTest].each do |klass|
data/test/caching_test.rb CHANGED
@@ -14,10 +14,8 @@ class CacheKeyTest < ActiveSupport::TestCase
14
14
  ENV['RAILS_CACHE_ID'] = 'c99'
15
15
  assert_equal 'c99/foo', ActiveSupport::Cache.expand_cache_key(:foo)
16
16
  assert_equal 'c99/foo', ActiveSupport::Cache.expand_cache_key([:foo])
17
- assert_equal 'c99/foo/bar', ActiveSupport::Cache.expand_cache_key([:foo, :bar])
18
17
  assert_equal 'nm/c99/foo', ActiveSupport::Cache.expand_cache_key(:foo, :nm)
19
18
  assert_equal 'nm/c99/foo', ActiveSupport::Cache.expand_cache_key([:foo], :nm)
20
- assert_equal 'nm/c99/foo/bar', ActiveSupport::Cache.expand_cache_key([:foo, :bar], :nm)
21
19
  ensure
22
20
  ENV['RAILS_CACHE_ID'] = nil
23
21
  end
@@ -43,7 +41,7 @@ class CacheKeyTest < ActiveSupport::TestCase
43
41
  end
44
42
  end
45
43
 
46
- def test_expand_cache_key_respond_to_cache_key
44
+ def test_respond_to_cache_key
47
45
  key = 'foo'
48
46
  def key.cache_key
49
47
  :foo_key
@@ -51,25 +49,6 @@ class CacheKeyTest < ActiveSupport::TestCase
51
49
  assert_equal 'foo_key', ActiveSupport::Cache.expand_cache_key(key)
52
50
  end
53
51
 
54
- def test_expand_cache_key_array_with_something_that_responds_to_cache_key
55
- key = 'foo'
56
- def key.cache_key
57
- :foo_key
58
- end
59
- assert_equal 'foo_key', ActiveSupport::Cache.expand_cache_key([key])
60
- end
61
-
62
- def test_expand_cache_key_of_nil
63
- assert_equal '', ActiveSupport::Cache.expand_cache_key(nil)
64
- end
65
-
66
- def test_expand_cache_key_of_false
67
- assert_equal 'false', ActiveSupport::Cache.expand_cache_key(false)
68
- end
69
-
70
- def test_expand_cache_key_of_true
71
- assert_equal 'true', ActiveSupport::Cache.expand_cache_key(true)
72
- end
73
52
  end
74
53
 
75
54
  class CacheStoreSettingTest < ActiveSupport::TestCase
@@ -142,8 +121,8 @@ class CacheStoreNamespaceTest < ActiveSupport::TestCase
142
121
  cache.write("foo", "bar")
143
122
  cache.write("fu", "baz")
144
123
  cache.delete_matched(/^fo/)
145
- assert !cache.exist?("foo")
146
- assert cache.exist?("fu")
124
+ assert_equal false, cache.exist?("foo")
125
+ assert_equal true, cache.exist?("fu")
147
126
  end
148
127
 
149
128
  def test_delete_matched_key
@@ -151,15 +130,15 @@ class CacheStoreNamespaceTest < ActiveSupport::TestCase
151
130
  cache.write("foo", "bar")
152
131
  cache.write("fu", "baz")
153
132
  cache.delete_matched(/OO/i)
154
- assert !cache.exist?("foo")
155
- assert cache.exist?("fu")
133
+ assert_equal false, cache.exist?("foo")
134
+ assert_equal true, cache.exist?("fu")
156
135
  end
157
136
  end
158
137
 
159
138
  # Tests the base functionality that should be identical across all cache stores.
160
139
  module CacheStoreBehavior
161
140
  def test_should_read_and_write_strings
162
- assert @cache.write('foo', 'bar')
141
+ assert_equal true, @cache.write('foo', 'bar')
163
142
  assert_equal 'bar', @cache.read('foo')
164
143
  end
165
144
 
@@ -194,40 +173,20 @@ module CacheStoreBehavior
194
173
  end
195
174
 
196
175
  def test_should_read_and_write_hash
197
- assert @cache.write('foo', {:a => "b"})
176
+ assert_equal true, @cache.write('foo', {:a => "b"})
198
177
  assert_equal({:a => "b"}, @cache.read('foo'))
199
178
  end
200
179
 
201
180
  def test_should_read_and_write_integer
202
- assert @cache.write('foo', 1)
181
+ assert_equal true, @cache.write('foo', 1)
203
182
  assert_equal 1, @cache.read('foo')
204
183
  end
205
184
 
206
185
  def test_should_read_and_write_nil
207
- assert @cache.write('foo', nil)
186
+ assert_equal true, @cache.write('foo', nil)
208
187
  assert_equal nil, @cache.read('foo')
209
188
  end
210
189
 
211
- def test_should_read_and_write_false
212
- assert @cache.write('foo', false)
213
- assert_equal false, @cache.read('foo')
214
- end
215
-
216
- def test_should_read_cached_numeric_from_previous_rails_versions
217
- @old_cache = ActiveSupport::Cache::Entry.create( 1, Time.now )
218
- assert_equal( 1, @old_cache.value )
219
- end
220
-
221
- def test_should_read_cached_hash_from_previous_rails_versions
222
- @old_cache = ActiveSupport::Cache::Entry.create( {}, Time.now )
223
- assert_equal( {}, @old_cache.value )
224
- end
225
-
226
- def test_should_read_cached_string_from_previous_rails_versions
227
- @old_cache = ActiveSupport::Cache::Entry.create( 'string', Time.now )
228
- assert_equal( 'string', @old_cache.value )
229
- end
230
-
231
190
  def test_read_multi
232
191
  @cache.write('foo', 'bar')
233
192
  @cache.write('fu', 'baz')
@@ -243,13 +202,6 @@ module CacheStoreBehavior
243
202
  assert_equal({"fu" => "baz"}, @cache.read_multi('foo', 'fu'))
244
203
  end
245
204
 
246
- def test_read_and_write_compressed_small_data
247
- @cache.write('foo', 'bar', :compress => true)
248
- raw_value = @cache.send(:read_entry, 'foo', {}).raw_value
249
- assert_equal 'bar', @cache.read('foo')
250
- assert_equal 'bar', Marshal.load(raw_value)
251
- end
252
-
253
205
  def test_read_and_write_compressed_large_data
254
206
  @cache.write('foo', 'bar', :compress => true, :compress_threshold => 2)
255
207
  raw_value = @cache.send(:read_entry, 'foo', {}).raw_value
@@ -297,30 +249,22 @@ module CacheStoreBehavior
297
249
 
298
250
  def test_exist
299
251
  @cache.write('foo', 'bar')
300
- assert @cache.exist?('foo')
301
- assert !@cache.exist?('bar')
252
+ assert_equal true, @cache.exist?('foo')
253
+ assert_equal false, @cache.exist?('bar')
302
254
  end
303
255
 
304
256
  def test_nil_exist
305
257
  @cache.write('foo', nil)
306
- assert @cache.exist?('foo')
258
+ assert_equal true, @cache.exist?('foo')
307
259
  end
308
260
 
309
261
  def test_delete
310
262
  @cache.write('foo', 'bar')
311
263
  assert @cache.exist?('foo')
312
- assert @cache.delete('foo')
264
+ assert_equal true, @cache.delete('foo')
313
265
  assert !@cache.exist?('foo')
314
266
  end
315
267
 
316
- def test_read_should_return_a_different_object_id_each_time_it_is_called
317
- @cache.write('foo', 'bar')
318
- assert_not_equal @cache.read('foo').object_id, @cache.read('foo').object_id
319
- value = @cache.read('foo')
320
- value << 'bingo'
321
- assert_not_equal value, @cache.read('foo')
322
- end
323
-
324
268
  def test_original_store_objects_should_not_be_immutable
325
269
  bar = 'bar'
326
270
  @cache.write('foo', bar)
@@ -381,10 +325,10 @@ module CacheStoreBehavior
381
325
 
382
326
  def test_crazy_key_characters
383
327
  crazy_key = "#/:*(<+=> )&$%@?;'\"\'`~-"
384
- assert @cache.write(crazy_key, "1", :raw => true)
328
+ assert_equal true, @cache.write(crazy_key, "1", :raw => true)
385
329
  assert_equal "1", @cache.read(crazy_key)
386
330
  assert_equal "1", @cache.fetch(crazy_key)
387
- assert @cache.delete(crazy_key)
331
+ assert_equal true, @cache.delete(crazy_key)
388
332
  assert_equal "2", @cache.fetch(crazy_key, :raw => true) { "2" }
389
333
  assert_equal 3, @cache.increment(crazy_key)
390
334
  assert_equal 2, @cache.decrement(crazy_key)
@@ -392,50 +336,13 @@ module CacheStoreBehavior
392
336
 
393
337
  def test_really_long_keys
394
338
  key = ""
395
- 900.times{key << "x"}
396
- assert @cache.write(key, "bar")
339
+ 1000.times{key << "x"}
340
+ assert_equal true, @cache.write(key, "bar")
397
341
  assert_equal "bar", @cache.read(key)
398
342
  assert_equal "bar", @cache.fetch(key)
399
343
  assert_nil @cache.read("#{key}x")
400
344
  assert_equal({key => "bar"}, @cache.read_multi(key))
401
- assert @cache.delete(key)
402
- end
403
- end
404
-
405
- # https://rails.lighthouseapp.com/projects/8994/tickets/6225-memcachestore-cant-deal-with-umlauts-and-special-characters
406
- # The error is caused by charcter encodings that can't be compared with ASCII-8BIT regular expressions and by special
407
- # characters like the umlaut in UTF-8.
408
- module EncodedKeyCacheBehavior
409
- if defined?(Encoding)
410
- Encoding.list.each do |encoding|
411
- define_method "test_#{encoding.name.underscore}_encoded_values" do
412
- key = "foo".force_encoding(encoding)
413
- assert @cache.write(key, "1", :raw => true)
414
- assert_equal "1", @cache.read(key)
415
- assert_equal "1", @cache.fetch(key)
416
- assert @cache.delete(key)
417
- assert_equal "2", @cache.fetch(key, :raw => true) { "2" }
418
- assert_equal 3, @cache.increment(key)
419
- assert_equal 2, @cache.decrement(key)
420
- end
421
- end
422
-
423
- def test_common_utf8_values
424
- key = "\xC3\xBCmlaut".force_encoding(Encoding::UTF_8)
425
- assert @cache.write(key, "1", :raw => true)
426
- assert_equal "1", @cache.read(key)
427
- assert_equal "1", @cache.fetch(key)
428
- assert @cache.delete(key)
429
- assert_equal "2", @cache.fetch(key, :raw => true) { "2" }
430
- assert_equal 3, @cache.increment(key)
431
- assert_equal 2, @cache.decrement(key)
432
- end
433
-
434
- def test_retains_encoding
435
- key = "\xC3\xBCmlaut".force_encoding(Encoding::UTF_8)
436
- assert @cache.write(key, "1", :raw => true)
437
- assert_equal Encoding::UTF_8, key.encoding
438
- end
345
+ assert_equal true, @cache.delete(key)
439
346
  end
440
347
  end
441
348
 
@@ -446,10 +353,10 @@ module CacheDeleteMatchedBehavior
446
353
  @cache.write("foo/bar", "baz")
447
354
  @cache.write("fu/baz", "bar")
448
355
  @cache.delete_matched(/oo/)
449
- assert !@cache.exist?("foo")
450
- assert @cache.exist?("fu")
451
- assert !@cache.exist?("foo/bar")
452
- assert @cache.exist?("fu/baz")
356
+ assert_equal false, @cache.exist?("foo")
357
+ assert_equal true, @cache.exist?("fu")
358
+ assert_equal false, @cache.exist?("foo/bar")
359
+ assert_equal true, @cache.exist?("fu/baz")
453
360
  end
454
361
  end
455
362
 
@@ -478,7 +385,7 @@ module LocalCacheBehavior
478
385
  retval = @cache.with_local_cache do
479
386
  @cache.write('foo', 'bar')
480
387
  end
481
- assert retval
388
+ assert_equal true, retval
482
389
  assert_equal 'bar', @cache.read('foo')
483
390
  end
484
391
 
@@ -566,7 +473,6 @@ class FileStoreTest < ActiveSupport::TestCase
566
473
  Dir.mkdir(cache_dir) unless File.exist?(cache_dir)
567
474
  @cache = ActiveSupport::Cache.lookup_store(:file_store, cache_dir, :expires_in => 60)
568
475
  @peek = ActiveSupport::Cache.lookup_store(:file_store, cache_dir, :expires_in => 60)
569
- @cache_with_pathname = ActiveSupport::Cache.lookup_store(:file_store, Pathname.new(cache_dir), :expires_in => 60)
570
476
  end
571
477
 
572
478
  def teardown
@@ -586,83 +492,17 @@ class FileStoreTest < ActiveSupport::TestCase
586
492
  key = @cache.send(:key_file_path, "views/index?id=1")
587
493
  assert_equal "views/index?id=1", @cache.send(:file_path_key, key)
588
494
  end
589
-
590
- def test_key_transformation_with_pathname
591
- FileUtils.touch(File.join(cache_dir, "foo"))
592
- key = @cache_with_pathname.send(:key_file_path, "views/index?id=1")
593
- assert_equal "views/index?id=1", @cache_with_pathname.send(:file_path_key, key)
594
- end
595
-
596
- # Because file systems have a maximum filename size, filenames > max size should be split in to directories
597
- # If filename is 'AAAAB', where max size is 4, the returned path should be AAAA/B
598
- def test_key_transformation_max_filename_size
599
- key = "#{'A' * ActiveSupport::Cache::FileStore::FILENAME_MAX_SIZE}B"
600
- path = @cache.send(:key_file_path, key)
601
- assert path.split('/').all? { |dir_name| dir_name.size <= ActiveSupport::Cache::FileStore::FILENAME_MAX_SIZE}
602
- assert_equal 'B', File.basename(path)
603
- end
604
-
605
- # If nothing has been stored in the cache, there is a chance the cache directory does not yet exist
606
- # Ensure delete_matched gracefully handles this case
607
- def test_delete_matched_when_cache_directory_does_not_exist
608
- assert_nothing_raised(Exception) do
609
- ActiveSupport::Cache::FileStore.new('/test/cache/directory').delete_matched(/does_not_exist/)
610
- end
611
- end
612
495
  end
613
496
 
614
497
  class MemoryStoreTest < ActiveSupport::TestCase
615
498
  def setup
616
- @record_size = Marshal.dump("aaaaaaaaaa").bytesize
617
- @cache = ActiveSupport::Cache.lookup_store(:memory_store, :expires_in => 60, :size => @record_size * 10)
499
+ @cache = ActiveSupport::Cache.lookup_store(:memory_store, :expires_in => 60, :size => 100)
618
500
  end
619
501
 
620
502
  include CacheStoreBehavior
621
503
  include CacheDeleteMatchedBehavior
622
504
  include CacheIncrementDecrementBehavior
623
505
 
624
- def test_prune_size
625
- @cache.write(1, "aaaaaaaaaa") && sleep(0.001)
626
- @cache.write(2, "bbbbbbbbbb") && sleep(0.001)
627
- @cache.write(3, "cccccccccc") && sleep(0.001)
628
- @cache.write(4, "dddddddddd") && sleep(0.001)
629
- @cache.write(5, "eeeeeeeeee") && sleep(0.001)
630
- @cache.read(2) && sleep(0.001)
631
- @cache.read(4)
632
- @cache.prune(@record_size * 3)
633
- assert @cache.exist?(5)
634
- assert @cache.exist?(4)
635
- assert !@cache.exist?(3)
636
- assert @cache.exist?(2)
637
- assert !@cache.exist?(1)
638
- end
639
-
640
- def test_prune_size_on_write
641
- @cache.write(1, "aaaaaaaaaa") && sleep(0.001)
642
- @cache.write(2, "bbbbbbbbbb") && sleep(0.001)
643
- @cache.write(3, "cccccccccc") && sleep(0.001)
644
- @cache.write(4, "dddddddddd") && sleep(0.001)
645
- @cache.write(5, "eeeeeeeeee") && sleep(0.001)
646
- @cache.write(6, "ffffffffff") && sleep(0.001)
647
- @cache.write(7, "gggggggggg") && sleep(0.001)
648
- @cache.write(8, "hhhhhhhhhh") && sleep(0.001)
649
- @cache.write(9, "iiiiiiiiii") && sleep(0.001)
650
- @cache.write(10, "kkkkkkkkkk") && sleep(0.001)
651
- @cache.read(2) && sleep(0.001)
652
- @cache.read(4) && sleep(0.001)
653
- @cache.write(11, "llllllllll")
654
- assert @cache.exist?(11)
655
- assert @cache.exist?(10)
656
- assert @cache.exist?(9)
657
- assert @cache.exist?(8)
658
- assert @cache.exist?(7)
659
- assert !@cache.exist?(6)
660
- assert !@cache.exist?(5)
661
- assert @cache.exist?(4)
662
- assert !@cache.exist?(3)
663
- assert @cache.exist?(2)
664
- assert !@cache.exist?(1)
665
- end
666
506
 
667
507
  def test_pruning_is_capped_at_a_max_time
668
508
  def @cache.delete_entry (*args)
@@ -675,14 +515,26 @@ class MemoryStoreTest < ActiveSupport::TestCase
675
515
  @cache.write(4, "dddddddddd") && sleep(0.001)
676
516
  @cache.write(5, "eeeeeeeeee") && sleep(0.001)
677
517
  @cache.prune(30, 0.001)
678
- assert @cache.exist?(5)
679
- assert @cache.exist?(4)
680
- assert @cache.exist?(3)
681
- assert @cache.exist?(2)
682
- assert !@cache.exist?(1)
518
+ assert_equal true, @cache.exist?(5)
519
+ assert_equal true, @cache.exist?(4)
520
+ assert_equal true, @cache.exist?(3)
521
+ assert_equal true, @cache.exist?(2)
522
+ assert_equal false, @cache.exist?(1)
683
523
  end
684
524
  end
685
525
 
526
+ class SynchronizedStoreTest < ActiveSupport::TestCase
527
+ def setup
528
+ ActiveSupport::Deprecation.silence do
529
+ @cache = ActiveSupport::Cache.lookup_store(:memory_store, :expires_in => 60)
530
+ end
531
+ end
532
+
533
+ include CacheStoreBehavior
534
+ include CacheDeleteMatchedBehavior
535
+ include CacheIncrementDecrementBehavior
536
+ end
537
+
686
538
  uses_memcached 'memcached backed store' do
687
539
  class MemCacheStoreTest < ActiveSupport::TestCase
688
540
  def setup
@@ -697,7 +549,6 @@ uses_memcached 'memcached backed store' do
697
549
  include CacheStoreBehavior
698
550
  include LocalCacheBehavior
699
551
  include CacheIncrementDecrementBehavior
700
- include EncodedKeyCacheBehavior
701
552
 
702
553
  def test_raw_values
703
554
  cache = ActiveSupport::Cache.lookup_store(:mem_cache_store, :raw => true)
@@ -706,13 +557,6 @@ uses_memcached 'memcached backed store' do
706
557
  assert_equal "2", cache.read("foo")
707
558
  end
708
559
 
709
- def test_raw_values_with_marshal
710
- cache = ActiveSupport::Cache.lookup_store(:mem_cache_store, :raw => true)
711
- cache.clear
712
- cache.write("foo", Marshal.dump([]))
713
- assert_equal [], cache.read("foo")
714
- end
715
-
716
560
  def test_local_cache_raw_values
717
561
  cache = ActiveSupport::Cache.lookup_store(:mem_cache_store, :raw => true)
718
562
  cache.clear
@@ -721,73 +565,6 @@ uses_memcached 'memcached backed store' do
721
565
  assert_equal "2", cache.read("foo")
722
566
  end
723
567
  end
724
-
725
- def test_local_cache_raw_values_with_marshal
726
- cache = ActiveSupport::Cache.lookup_store(:mem_cache_store, :raw => true)
727
- cache.clear
728
- cache.with_local_cache do
729
- cache.write("foo", Marshal.dump([]))
730
- assert_equal [], cache.read("foo")
731
- end
732
- end
733
- end
734
- end
735
-
736
- class NullStoreTest < ActiveSupport::TestCase
737
- def setup
738
- @cache = ActiveSupport::Cache.lookup_store(:null_store)
739
- end
740
-
741
- def test_clear
742
- @cache.clear
743
- end
744
-
745
- def test_cleanup
746
- @cache.cleanup
747
- end
748
-
749
- def test_write
750
- assert_equal true, @cache.write("name", "value")
751
- end
752
-
753
- def test_read
754
- @cache.write("name", "value")
755
- assert_nil @cache.read("name")
756
- end
757
-
758
- def test_delete
759
- @cache.write("name", "value")
760
- assert_equal false, @cache.delete("name")
761
- end
762
-
763
- def test_increment
764
- @cache.write("name", 1, :raw => true)
765
- assert_nil @cache.increment("name")
766
- end
767
-
768
- def test_decrement
769
- @cache.write("name", 1, :raw => true)
770
- assert_nil @cache.increment("name")
771
- end
772
-
773
- def test_delete_matched
774
- @cache.write("name", "value")
775
- @cache.delete_matched(/name/)
776
- end
777
-
778
- def test_local_store_strategy
779
- @cache.with_local_cache do
780
- @cache.write("name", "value")
781
- assert_equal "value", @cache.read("name")
782
- @cache.delete("name")
783
- assert_nil @cache.read("name")
784
- @cache.write("name", "value")
785
- end
786
- assert_nil @cache.read("name")
787
- end
788
-
789
- def test_setting_nil_cache_store
790
- assert ActiveSupport::Cache.lookup_store.class.name, ActiveSupport::Cache::NullStore.name
791
568
  end
792
569
  end
793
570
 
@@ -816,31 +593,24 @@ class CacheEntryTest < ActiveSupport::TestCase
816
593
  entry = ActiveSupport::Cache::Entry.create("raw", time, :compress => false, :expires_in => 300)
817
594
  assert_equal "raw", entry.raw_value
818
595
  assert_equal time.to_f, entry.created_at
819
- assert !entry.compressed?
596
+ assert_nil entry.compressed?.presence
820
597
  assert_equal 300, entry.expires_in
821
598
  end
822
599
 
823
600
  def test_expired
824
601
  entry = ActiveSupport::Cache::Entry.new("value")
825
- assert !entry.expired?, 'entry not expired'
602
+ assert_nil entry.expired?.presence
826
603
  entry = ActiveSupport::Cache::Entry.new("value", :expires_in => 60)
827
- assert !entry.expired?, 'entry not expired'
604
+ assert_nil entry.expired?.presence
828
605
  time = Time.now + 61
829
606
  Time.stubs(:now).returns(time)
830
- assert entry.expired?, 'entry is expired'
607
+ assert_equal true, entry.expired?
831
608
  end
832
609
 
833
610
  def test_compress_values
834
611
  entry = ActiveSupport::Cache::Entry.new("value", :compress => true, :compress_threshold => 1)
835
612
  assert_equal "value", entry.value
836
- assert entry.compressed?
613
+ assert_equal true, entry.compressed?
837
614
  assert_equal "value", Marshal.load(Zlib::Inflate.inflate(entry.raw_value))
838
615
  end
839
-
840
- def test_non_compress_values
841
- entry = ActiveSupport::Cache::Entry.new("value")
842
- assert_equal "value", entry.value
843
- assert_equal "value", Marshal.load(entry.raw_value)
844
- assert !entry.compressed?
845
- end
846
- end
616
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-cache-tags
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-08 00:00:00.000000000Z
12
+ date: 2012-07-09 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: activesupport
16
- requirement: &80939770 !ruby/object:Gem::Requirement
15
+ name: rails
16
+ requirement: &20365460 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,21 +21,21 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *80939770
24
+ version_requirements: *20365460
25
25
  - !ruby/object:Gem::Dependency
26
- name: actionpack
27
- requirement: &80939520 !ruby/object:Gem::Requirement
26
+ name: appraisal
27
+ requirement: &20364680 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
31
31
  - !ruby/object:Gem::Version
32
- version: '3.0'
33
- type: :runtime
32
+ version: '0'
33
+ type: :development
34
34
  prerelease: false
35
- version_requirements: *80939520
35
+ version_requirements: *20364680
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: minitest
38
- requirement: &80939250 !ruby/object:Gem::Requirement
38
+ requirement: &20363940 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '3.2'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *80939250
46
+ version_requirements: *20363940
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: memcache-client
49
- requirement: &80938990 !ruby/object:Gem::Requirement
49
+ requirement: &20363440 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *80938990
57
+ version_requirements: *20363440
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rack
60
- requirement: &80938690 !ruby/object:Gem::Requirement
60
+ requirement: &20362660 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *80938690
68
+ version_requirements: *20362660
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mocha
71
- requirement: &80938320 !ruby/object:Gem::Requirement
71
+ requirement: &20361940 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *80938320
79
+ version_requirements: *20361940
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: simplecov
82
- requirement: &80937860 !ruby/object:Gem::Requirement
82
+ requirement: &20361520 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *80937860
90
+ version_requirements: *20361520
91
91
  description: Tagged caching support for Rails
92
92
  email:
93
93
  - amikhailov83@gmail.com
@@ -96,6 +96,7 @@ extensions: []
96
96
  extra_rdoc_files: []
97
97
  files:
98
98
  - .gitignore
99
+ - Appraisals
99
100
  - Gemfile
100
101
  - LICENSE
101
102
  - README.md
@@ -120,12 +121,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
121
  - - ! '>='
121
122
  - !ruby/object:Gem::Version
122
123
  version: '0'
124
+ segments:
125
+ - 0
126
+ hash: -1686496298142022939
123
127
  required_rubygems_version: !ruby/object:Gem::Requirement
124
128
  none: false
125
129
  requirements:
126
130
  - - ! '>='
127
131
  - !ruby/object:Gem::Version
128
132
  version: '0'
133
+ segments:
134
+ - 0
135
+ hash: -1686496298142022939
129
136
  requirements: []
130
137
  rubyforge_project:
131
138
  rubygems_version: 1.8.17