juno 0.3.0 → 0.3.1

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 (101) hide show
  1. data/Gemfile +2 -1
  2. data/README.md +9 -4
  3. data/lib/juno.rb +10 -9
  4. data/lib/juno/adapters/activerecord.rb +1 -1
  5. data/lib/juno/adapters/cassandra.rb +8 -1
  6. data/lib/juno/adapters/couch.rb +1 -1
  7. data/lib/juno/adapters/datamapper.rb +3 -3
  8. data/lib/juno/adapters/fog.rb +1 -1
  9. data/lib/juno/adapters/hbase.rb +64 -0
  10. data/lib/juno/adapters/lruhash.rb +69 -5
  11. data/lib/juno/adapters/memcached_dalli.rb +0 -4
  12. data/lib/juno/adapters/memcached_native.rb +0 -7
  13. data/lib/juno/adapters/mongo.rb +0 -4
  14. data/lib/juno/adapters/redis.rb +8 -1
  15. data/lib/juno/adapters/sequel.rb +1 -1
  16. data/lib/juno/adapters/tokyocabinet.rb +0 -4
  17. data/lib/juno/base.rb +10 -0
  18. data/lib/juno/expires.rb +1 -1
  19. data/lib/juno/transformer.rb +1 -0
  20. data/lib/juno/version.rb +1 -1
  21. data/spec/generate.rb +75 -17
  22. data/spec/juno/adapter_datamapper_spec.rb +0 -3
  23. data/spec/juno/adapter_hbase_spec.rb +13 -0
  24. data/spec/juno/adapter_lruhash_spec.rb +14 -16
  25. data/spec/juno/adapter_memory_spec.rb +6 -0
  26. data/spec/juno/expires_file_spec.rb +9 -0
  27. data/spec/juno/expires_memory_spec.rb +9 -0
  28. data/spec/juno/lock_spec.rb +6 -0
  29. data/spec/juno/null_adapter_spec.rb +3 -0
  30. data/spec/juno/proxy_expires_memory_spec.rb +9 -0
  31. data/spec/juno/simple_activerecord_spec.rb +7 -0
  32. data/spec/juno/simple_activerecord_with_expires_spec.rb +7 -0
  33. data/spec/juno/simple_cassandra_spec.rb +7 -0
  34. data/spec/juno/simple_couch_spec.rb +7 -0
  35. data/spec/juno/simple_couch_with_expires_spec.rb +7 -0
  36. data/spec/juno/simple_datamapper_spec.rb +7 -0
  37. data/spec/juno/simple_datamapper_with_expires_spec.rb +7 -0
  38. data/spec/juno/simple_datamapper_with_repository_spec.rb +7 -0
  39. data/spec/juno/simple_dbm_spec.rb +7 -0
  40. data/spec/juno/simple_dbm_with_expires_spec.rb +7 -0
  41. data/spec/juno/simple_file_spec.rb +7 -0
  42. data/spec/juno/simple_file_with_expires_spec.rb +7 -0
  43. data/spec/juno/simple_fog_spec.rb +7 -0
  44. data/spec/juno/simple_fog_with_expires_spec.rb +7 -0
  45. data/spec/juno/simple_gdbm_spec.rb +7 -0
  46. data/spec/juno/simple_gdbm_with_expires_spec.rb +7 -0
  47. data/spec/juno/simple_hashfile_spec.rb +7 -0
  48. data/spec/juno/simple_hashfile_with_expires_spec.rb +7 -0
  49. data/spec/juno/simple_hbase_spec.rb +45 -0
  50. data/spec/juno/simple_hbase_with_expires_spec.rb +46 -0
  51. data/spec/juno/simple_leveldb_spec.rb +7 -0
  52. data/spec/juno/simple_leveldb_with_expires_spec.rb +7 -0
  53. data/spec/juno/simple_localmemcache_spec.rb +7 -0
  54. data/spec/juno/simple_localmemcache_with_expires_spec.rb +7 -0
  55. data/spec/juno/simple_lruhash_spec.rb +7 -0
  56. data/spec/juno/simple_lruhash_with_expires_spec.rb +7 -0
  57. data/spec/juno/simple_memcached_dalli_spec.rb +7 -0
  58. data/spec/juno/simple_memcached_native_spec.rb +7 -0
  59. data/spec/juno/simple_memcached_spec.rb +7 -0
  60. data/spec/juno/simple_memory_spec.rb +7 -0
  61. data/spec/juno/simple_memory_with_compress_spec.rb +7 -0
  62. data/spec/juno/simple_memory_with_expires_spec.rb +7 -0
  63. data/spec/juno/simple_memory_with_json_key_serializer_spec.rb +4 -0
  64. data/spec/juno/simple_memory_with_json_md5_key_serializer_spec.rb +4 -0
  65. data/spec/juno/simple_memory_with_prefix_spec.rb +7 -0
  66. data/spec/juno/simple_memory_with_quicklz_compress_spec.rb +7 -0
  67. data/spec/juno/simple_mongo_spec.rb +7 -0
  68. data/spec/juno/simple_mongo_with_expires_spec.rb +7 -0
  69. data/spec/juno/simple_null_spec.rb +3 -0
  70. data/spec/juno/simple_pstore_spec.rb +7 -0
  71. data/spec/juno/simple_pstore_with_expires_spec.rb +7 -0
  72. data/spec/juno/simple_redis_spec.rb +7 -0
  73. data/spec/juno/simple_riak_spec.rb +7 -0
  74. data/spec/juno/simple_riak_with_expires_spec.rb +7 -0
  75. data/spec/juno/simple_sdbm_spec.rb +7 -0
  76. data/spec/juno/simple_sdbm_with_expires_spec.rb +7 -0
  77. data/spec/juno/simple_sequel_spec.rb +7 -0
  78. data/spec/juno/simple_sequel_with_expires_spec.rb +7 -0
  79. data/spec/juno/simple_sqlite_spec.rb +7 -0
  80. data/spec/juno/simple_sqlite_with_expires_spec.rb +7 -0
  81. data/spec/juno/simple_tokyocabinet_spec.rb +7 -0
  82. data/spec/juno/simple_tokyocabinet_with_expires_spec.rb +7 -0
  83. data/spec/juno/simple_yaml_spec.rb +6 -0
  84. data/spec/juno/simple_yaml_with_expires_spec.rb +6 -0
  85. data/spec/juno/transformer_bzip2_spec.rb +22 -0
  86. data/spec/juno/transformer_marshal_base64_spec.rb +7 -0
  87. data/spec/juno/transformer_marshal_escape_spec.rb +7 -0
  88. data/spec/juno/transformer_marshal_hmac_spec.rb +7 -0
  89. data/spec/juno/transformer_marshal_md5_spec.rb +7 -0
  90. data/spec/juno/transformer_marshal_md5_spread_spec.rb +7 -0
  91. data/spec/juno/transformer_marshal_prefix_spec.rb +7 -0
  92. data/spec/juno/transformer_marshal_rmd160_spec.rb +7 -0
  93. data/spec/juno/transformer_marshal_sha1_spec.rb +7 -0
  94. data/spec/juno/transformer_marshal_sha256_spec.rb +7 -0
  95. data/spec/juno/transformer_marshal_sha384_spec.rb +7 -0
  96. data/spec/juno/transformer_marshal_sha512_spec.rb +7 -0
  97. data/spec/juno/transformer_marshal_uuencode_spec.rb +7 -0
  98. data/spec/juno/transformer_ox_spec.rb +6 -0
  99. data/spec/juno/transformer_yaml_spec.rb +6 -0
  100. data/spec/junospecs.rb +990 -320
  101. metadata +11 -2
data/spec/generate.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  ADAPTER_SPECS = [:null_stringkey_stringvalue, :store_stringkey_stringvalue, :returndifferent_stringkey_stringvalue]
2
- SIMPLE_SPECS = [:null, :store, :returndifferent, :marshallable_key]
2
+ SIMPLE_SPECS = [:null, :store, :returndifferent, :marshallable_key, :marshallable_value]
3
3
  EXPIRES_SPECS = SIMPLE_SPECS + [:expires_stringkey_stringvalue]
4
4
  header = "# Generated by #{__FILE__}\n"
5
5
 
@@ -43,6 +43,7 @@ TESTS = {
43
43
  :store => :Memory,
44
44
  :options => ':value_serializer => :json',
45
45
  :value => %w(Hash String),
46
+ :specs => [:null, :store, :returndifferent, :marshallable_key],
46
47
  },
47
48
  'simple_memory_with_quicklz_compress' => {
48
49
  :store => :Memory,
@@ -79,6 +80,15 @@ TESTS = {
79
80
  :options => ':keyspace => "simple_cassandra"',
80
81
  :specs => EXPIRES_SPECS,
81
82
  },
83
+ 'simple_hbase' => {
84
+ :store => :HBase,
85
+ :options => ':table => "simple_hbase"',
86
+ },
87
+ 'simple_hbase_with_expires' => {
88
+ :store => :HBase,
89
+ :options => ':table => "simple_hbase", :expires => true',
90
+ :specs => EXPIRES_SPECS,
91
+ },
82
92
  'simple_dbm' => {
83
93
  :store => :DBM,
84
94
  :options => ':file => File.join(make_tempdir, "simple_dbm")'
@@ -126,12 +136,13 @@ TESTS = {
126
136
  },
127
137
  'simple_yaml' => {
128
138
  :store => :YAML,
129
- :options => ':file => File.join(make_tempdir, "simple_yaml")'
139
+ :options => ':file => File.join(make_tempdir, "simple_yaml")',
140
+ :specs => [:null, :store, :returndifferent, :marshallable_key],
130
141
  },
131
142
  'simple_yaml_with_expires' => {
132
143
  :store => :YAML,
133
144
  :options => ':file => File.join(make_tempdir, "simple_yaml_with_expires"), :expires => true',
134
- :specs => EXPIRES_SPECS
145
+ :specs => [:null, :store, :returndifferent, :marshallable_key, :expires_stringkey_stringvalue],
135
146
  },
136
147
  'simple_localmemcache' => {
137
148
  :store => :LocalMemCache,
@@ -382,6 +393,14 @@ end},
382
393
  :build => %{Juno.build do
383
394
  use :Transformer, :value => :zlib
384
395
  adapter :Memory
396
+ end},
397
+ :value => %w(String),
398
+ :specs => [:null, :store, :returndifferent]
399
+ },
400
+ 'transformer_bzip2' => {
401
+ :build => %{Juno.build do
402
+ use :Transformer, :value => :bzip2
403
+ adapter :Memory
385
404
  end},
386
405
  :value => %w(String),
387
406
  :specs => [:null, :store, :returndifferent]
@@ -593,6 +612,10 @@ end
593
612
  :build => "Juno::Adapters::Cassandra.new(:keyspace => 'adapter_cassandra')",
594
613
  :specs => ADAPTER_SPECS
595
614
  },
615
+ 'adapter_hbase' => {
616
+ :build => "Juno::Adapters::HBase.new(:table => 'adapter_hbase')",
617
+ :specs => ADAPTER_SPECS
618
+ },
596
619
  'adapter_cookie' => {
597
620
  :build => 'Juno::Adapters::Cookie.new',
598
621
  :specs => ADAPTER_SPECS
@@ -605,9 +628,7 @@ end
605
628
  :build => 'Juno::Adapters::DataMapper.new(:setup => "sqlite3://#{make_tempdir}/adapter_datamapper")',
606
629
  # DataMapper needs default repository to be setup
607
630
  :preamble => "require 'dm-core'\nDataMapper.setup(:default, :adapter => :in_memory)\n",
608
- :specs => ADAPTER_SPECS + [:returndifferent_stringkey_objectvalue,
609
- :null_stringkey_objectvalue,
610
- :store_stringkey_objectvalue],
631
+ :specs => ADAPTER_SPECS,
611
632
  :tests => %q{
612
633
  it 'does not cross contaminate when storing' do
613
634
  first = Juno::Adapters::DataMapper.new(:setup => "sqlite3://#{make_tempdir}/datamapper-first")
@@ -682,7 +703,21 @@ end
682
703
  },
683
704
  'adapter_lruhash' => {
684
705
  :build => 'Juno::Adapters::LRUHash.new',
685
- :specs => [:null, :store]
706
+ :specs => ADAPTER_SPECS,
707
+ :tests => %{
708
+ it 'should delete oldest' do
709
+ store = Juno::Adapters::LRUHash.new(:max_size => 10)
710
+ store[0] = 'y'
711
+ (1..1000).each do |i|
712
+ store[i] = 'x'
713
+ store[0].should == 'y'
714
+ store.instance_variable_get(:@entry).size.should == [10, i+1].min
715
+ (0...[9, i-1].min).each do |j|
716
+ store.instance_variable_get(:@entry)[i-j].should_not be_nil
717
+ end
718
+ store.key?(i-9).should be_false if i > 9
719
+ end
720
+ end}
686
721
  },
687
722
  'adapter_mongo' => {
688
723
  :build => 'Juno::Adapters::Mongo.new(:db => "adapter_mongo")',
@@ -746,9 +781,10 @@ KEYS = {
746
781
  }
747
782
 
748
783
  VALUES = {
784
+ 'Boolean' => [true, false],
749
785
  'String' => ['strval1', 'strval2'].map(&:inspect),
786
+ 'Hash' => [{'hashval1' => ['array1', 1]}, {'hashval3' => ['array2', {'hashval4' => 42}]}].map(&:inspect),
750
787
  'Object' => ['Value.new(:objval1)', 'Value.new(:objval2)'],
751
- 'Hash' => [{'hashval1' => 'hashval2'}, {'hashval3' => 'hashval4'}].map(&:inspect)
752
788
  }
753
789
 
754
790
  KEYS.each do |key_type, (key1,key2)|
@@ -813,6 +849,8 @@ end
813
849
  it "returns true from key? if a #{key_type} key is available" do
814
850
  store[#{key1}] = #{val1}
815
851
  store.key?(#{key1}).should == true
852
+ store[#{key2}] = #{val2}
853
+ store.key?(#{key2}).should == true
816
854
  end
817
855
 
818
856
  it "stores #{val_type} values with #{key_type} keys with #store" do
@@ -853,7 +891,9 @@ end}
853
891
  store[#{key1}] = #{val1}
854
892
  store[#{key1}].should_not be_equal(#{val1})
855
893
  end}
856
- SPECS["returndifferent_#{key_type.downcase}key_#{val_type.downcase}value"] = code
894
+ if val_type != 'Boolean'
895
+ SPECS["returndifferent_#{key_type.downcase}key_#{val_type.downcase}value"] = code
896
+ end
857
897
 
858
898
  code = %{it 'should support expires on store and #[]' do
859
899
  store.store(#{key1}, #{val1}, :expires => 2)
@@ -894,6 +934,18 @@ it 'should support updating the expiration time in load' do
894
934
  store[#{key2}].should == nil
895
935
  end
896
936
 
937
+ it 'should support updating the expiration time in key?' do
938
+ store.store(#{key2}, #{val2}, :expires => 2)
939
+ store[#{key2}].should == #{val2}
940
+ sleep 1
941
+ store.key?(#{key2}, :expires => 3).should be_true
942
+ store[#{key2}].should == #{val2}
943
+ sleep 1
944
+ store[#{key2}].should == #{val2}
945
+ sleep 3
946
+ store[#{key2}].should == nil
947
+ end
948
+
897
949
  it 'should support updating the expiration time in fetch' do
898
950
  store.store(#{key1}, #{val1}, :expires => 2)
899
951
  store[#{key1}].should == #{val1}
@@ -919,48 +971,54 @@ end}
919
971
  end
920
972
  end
921
973
 
922
- SPECS["marshallable_key"] = %{it "refuses to #[] from keys that cannot be marshalled" do
974
+ SPECS['marshallable_key'] = %{it 'refuses to #[] from keys that cannot be marshalled' do
923
975
  expect do
924
976
  store[Struct.new(:foo).new(:bar)]
925
977
  end.to raise_error(marshal_error)
926
978
  end
927
979
 
928
- it "refuses to load from keys that cannot be marshalled" do
980
+ it 'refuses to load from keys that cannot be marshalled' do
929
981
  expect do
930
982
  store.load(Struct.new(:foo).new(:bar))
931
983
  end.to raise_error(marshal_error)
932
984
  end
933
985
 
934
- it "refuses to fetch from keys that cannot be marshalled" do
986
+ it 'refuses to fetch from keys that cannot be marshalled' do
935
987
  expect do
936
988
  store.fetch(Struct.new(:foo).new(:bar), true)
937
989
  end.to raise_error(marshal_error)
938
990
  end
939
991
 
940
- it "refuses to #[]= to keys that cannot be marshalled" do
992
+ it 'refuses to #[]= to keys that cannot be marshalled' do
941
993
  expect do
942
994
  store[Struct.new(:foo).new(:bar)] = 'value'
943
995
  end.to raise_error(marshal_error)
944
996
  end
945
997
 
946
- it "refuses to store to keys that cannot be marshalled" do
998
+ it 'refuses to store to keys that cannot be marshalled' do
947
999
  expect do
948
1000
  store.store Struct.new(:foo).new(:bar), 'value'
949
1001
  end.to raise_error(marshal_error)
950
1002
  end
951
1003
 
952
- it "refuses to check for key? if the key cannot be marshalled" do
1004
+ it 'refuses to check for key? if the key cannot be marshalled' do
953
1005
  expect do
954
1006
  store.key? Struct.new(:foo).new(:bar)
955
1007
  end.to raise_error(marshal_error)
956
1008
  end
957
1009
 
958
- it "refuses to delete a key if the key cannot be marshalled" do
1010
+ it 'refuses to delete a key if the key cannot be marshalled' do
959
1011
  expect do
960
1012
  store.delete Struct.new(:foo).new(:bar)
961
1013
  end.to raise_error(marshal_error)
962
1014
  end}
963
1015
 
1016
+ SPECS['marshallable_value'] = %{it 'refuses to store values that cannot be marshalled' do
1017
+ expect do
1018
+ store.store 'key', Struct.new(:foo).new(:bar)
1019
+ end.to raise_error(marshal_error)
1020
+ end}
1021
+
964
1022
  specs_code = "#{header}\n"
965
1023
  SPECS.each do |key, code|
966
1024
  specs_code << "#################### #{key} ####################\n\n" <<
@@ -973,7 +1031,7 @@ TESTS.each do |name, options|
973
1031
  build = options.delete(:build)
974
1032
  store = options.delete(:store)
975
1033
  key = [options.delete(:key) || %w(Object String Hash)].flatten
976
- value = [options.delete(:value) || %w(Object String Hash)].flatten
1034
+ value = [options.delete(:value) || %w(Object String Hash Boolean)].flatten
977
1035
 
978
1036
  specs = [options.delete(:specs) || SIMPLE_SPECS].flatten
979
1037
  specs_code = []
@@ -12,9 +12,6 @@ describe_juno "adapter_datamapper" do
12
12
  it_should_behave_like 'null_stringkey_stringvalue'
13
13
  it_should_behave_like 'store_stringkey_stringvalue'
14
14
  it_should_behave_like 'returndifferent_stringkey_stringvalue'
15
- it_should_behave_like 'returndifferent_stringkey_objectvalue'
16
- it_should_behave_like 'null_stringkey_objectvalue'
17
- it_should_behave_like 'store_stringkey_objectvalue'
18
15
  it 'does not cross contaminate when storing' do
19
16
  first = Juno::Adapters::DataMapper.new(:setup => "sqlite3://#{make_tempdir}/datamapper-first")
20
17
  first.clear
@@ -0,0 +1,13 @@
1
+ # Generated by generate.rb
2
+ require 'helper'
3
+
4
+ describe_juno "adapter_hbase" do
5
+ def new_store
6
+ Juno::Adapters::HBase.new(:table => 'adapter_hbase')
7
+ end
8
+
9
+ include_context 'setup_store'
10
+ it_should_behave_like 'null_stringkey_stringvalue'
11
+ it_should_behave_like 'store_stringkey_stringvalue'
12
+ it_should_behave_like 'returndifferent_stringkey_stringvalue'
13
+ end
@@ -7,22 +7,20 @@ describe_juno "adapter_lruhash" do
7
7
  end
8
8
 
9
9
  include_context 'setup_store'
10
- it_should_behave_like 'null_objectkey_objectvalue'
11
- it_should_behave_like 'null_objectkey_stringvalue'
12
- it_should_behave_like 'null_objectkey_hashvalue'
13
- it_should_behave_like 'null_stringkey_objectvalue'
14
10
  it_should_behave_like 'null_stringkey_stringvalue'
15
- it_should_behave_like 'null_stringkey_hashvalue'
16
- it_should_behave_like 'null_hashkey_objectvalue'
17
- it_should_behave_like 'null_hashkey_stringvalue'
18
- it_should_behave_like 'null_hashkey_hashvalue'
19
- it_should_behave_like 'store_objectkey_objectvalue'
20
- it_should_behave_like 'store_objectkey_stringvalue'
21
- it_should_behave_like 'store_objectkey_hashvalue'
22
- it_should_behave_like 'store_stringkey_objectvalue'
23
11
  it_should_behave_like 'store_stringkey_stringvalue'
24
- it_should_behave_like 'store_stringkey_hashvalue'
25
- it_should_behave_like 'store_hashkey_objectvalue'
26
- it_should_behave_like 'store_hashkey_stringvalue'
27
- it_should_behave_like 'store_hashkey_hashvalue'
12
+ it_should_behave_like 'returndifferent_stringkey_stringvalue'
13
+ it 'should delete oldest' do
14
+ store = Juno::Adapters::LRUHash.new(:max_size => 10)
15
+ store[0] = 'y'
16
+ (1..1000).each do |i|
17
+ store[i] = 'x'
18
+ store[0].should == 'y'
19
+ store.instance_variable_get(:@entry).size.should == [10, i+1].min
20
+ (0...[9, i-1].min).each do |j|
21
+ store.instance_variable_get(:@entry)[i-j].should_not be_nil
22
+ end
23
+ store.key?(i-9).should be_false if i > 9
24
+ end
25
+ end
28
26
  end
@@ -10,19 +10,25 @@ describe_juno "adapter_memory" do
10
10
  it_should_behave_like 'null_objectkey_objectvalue'
11
11
  it_should_behave_like 'null_objectkey_stringvalue'
12
12
  it_should_behave_like 'null_objectkey_hashvalue'
13
+ it_should_behave_like 'null_objectkey_booleanvalue'
13
14
  it_should_behave_like 'null_stringkey_objectvalue'
14
15
  it_should_behave_like 'null_stringkey_stringvalue'
15
16
  it_should_behave_like 'null_stringkey_hashvalue'
17
+ it_should_behave_like 'null_stringkey_booleanvalue'
16
18
  it_should_behave_like 'null_hashkey_objectvalue'
17
19
  it_should_behave_like 'null_hashkey_stringvalue'
18
20
  it_should_behave_like 'null_hashkey_hashvalue'
21
+ it_should_behave_like 'null_hashkey_booleanvalue'
19
22
  it_should_behave_like 'store_objectkey_objectvalue'
20
23
  it_should_behave_like 'store_objectkey_stringvalue'
21
24
  it_should_behave_like 'store_objectkey_hashvalue'
25
+ it_should_behave_like 'store_objectkey_booleanvalue'
22
26
  it_should_behave_like 'store_stringkey_objectvalue'
23
27
  it_should_behave_like 'store_stringkey_stringvalue'
24
28
  it_should_behave_like 'store_stringkey_hashvalue'
29
+ it_should_behave_like 'store_stringkey_booleanvalue'
25
30
  it_should_behave_like 'store_hashkey_objectvalue'
26
31
  it_should_behave_like 'store_hashkey_stringvalue'
27
32
  it_should_behave_like 'store_hashkey_hashvalue'
33
+ it_should_behave_like 'store_hashkey_booleanvalue'
28
34
  end
@@ -14,30 +14,39 @@ describe_juno "expires_file" do
14
14
  it_should_behave_like 'null_objectkey_objectvalue'
15
15
  it_should_behave_like 'null_objectkey_stringvalue'
16
16
  it_should_behave_like 'null_objectkey_hashvalue'
17
+ it_should_behave_like 'null_objectkey_booleanvalue'
17
18
  it_should_behave_like 'null_stringkey_objectvalue'
18
19
  it_should_behave_like 'null_stringkey_stringvalue'
19
20
  it_should_behave_like 'null_stringkey_hashvalue'
21
+ it_should_behave_like 'null_stringkey_booleanvalue'
20
22
  it_should_behave_like 'null_hashkey_objectvalue'
21
23
  it_should_behave_like 'null_hashkey_stringvalue'
22
24
  it_should_behave_like 'null_hashkey_hashvalue'
25
+ it_should_behave_like 'null_hashkey_booleanvalue'
23
26
  it_should_behave_like 'store_objectkey_objectvalue'
24
27
  it_should_behave_like 'store_objectkey_stringvalue'
25
28
  it_should_behave_like 'store_objectkey_hashvalue'
29
+ it_should_behave_like 'store_objectkey_booleanvalue'
26
30
  it_should_behave_like 'store_stringkey_objectvalue'
27
31
  it_should_behave_like 'store_stringkey_stringvalue'
28
32
  it_should_behave_like 'store_stringkey_hashvalue'
33
+ it_should_behave_like 'store_stringkey_booleanvalue'
29
34
  it_should_behave_like 'store_hashkey_objectvalue'
30
35
  it_should_behave_like 'store_hashkey_stringvalue'
31
36
  it_should_behave_like 'store_hashkey_hashvalue'
37
+ it_should_behave_like 'store_hashkey_booleanvalue'
32
38
  it_should_behave_like 'expires_objectkey_objectvalue'
33
39
  it_should_behave_like 'expires_objectkey_stringvalue'
34
40
  it_should_behave_like 'expires_objectkey_hashvalue'
41
+ it_should_behave_like 'expires_objectkey_booleanvalue'
35
42
  it_should_behave_like 'expires_stringkey_objectvalue'
36
43
  it_should_behave_like 'expires_stringkey_stringvalue'
37
44
  it_should_behave_like 'expires_stringkey_hashvalue'
45
+ it_should_behave_like 'expires_stringkey_booleanvalue'
38
46
  it_should_behave_like 'expires_hashkey_objectvalue'
39
47
  it_should_behave_like 'expires_hashkey_stringvalue'
40
48
  it_should_behave_like 'expires_hashkey_hashvalue'
49
+ it_should_behave_like 'expires_hashkey_booleanvalue'
41
50
  it_should_behave_like 'returndifferent_objectkey_objectvalue'
42
51
  it_should_behave_like 'returndifferent_objectkey_stringvalue'
43
52
  it_should_behave_like 'returndifferent_objectkey_hashvalue'
@@ -13,28 +13,37 @@ describe_juno "expires_memory" do
13
13
  it_should_behave_like 'null_objectkey_objectvalue'
14
14
  it_should_behave_like 'null_objectkey_stringvalue'
15
15
  it_should_behave_like 'null_objectkey_hashvalue'
16
+ it_should_behave_like 'null_objectkey_booleanvalue'
16
17
  it_should_behave_like 'null_stringkey_objectvalue'
17
18
  it_should_behave_like 'null_stringkey_stringvalue'
18
19
  it_should_behave_like 'null_stringkey_hashvalue'
20
+ it_should_behave_like 'null_stringkey_booleanvalue'
19
21
  it_should_behave_like 'null_hashkey_objectvalue'
20
22
  it_should_behave_like 'null_hashkey_stringvalue'
21
23
  it_should_behave_like 'null_hashkey_hashvalue'
24
+ it_should_behave_like 'null_hashkey_booleanvalue'
22
25
  it_should_behave_like 'store_objectkey_objectvalue'
23
26
  it_should_behave_like 'store_objectkey_stringvalue'
24
27
  it_should_behave_like 'store_objectkey_hashvalue'
28
+ it_should_behave_like 'store_objectkey_booleanvalue'
25
29
  it_should_behave_like 'store_stringkey_objectvalue'
26
30
  it_should_behave_like 'store_stringkey_stringvalue'
27
31
  it_should_behave_like 'store_stringkey_hashvalue'
32
+ it_should_behave_like 'store_stringkey_booleanvalue'
28
33
  it_should_behave_like 'store_hashkey_objectvalue'
29
34
  it_should_behave_like 'store_hashkey_stringvalue'
30
35
  it_should_behave_like 'store_hashkey_hashvalue'
36
+ it_should_behave_like 'store_hashkey_booleanvalue'
31
37
  it_should_behave_like 'expires_objectkey_objectvalue'
32
38
  it_should_behave_like 'expires_objectkey_stringvalue'
33
39
  it_should_behave_like 'expires_objectkey_hashvalue'
40
+ it_should_behave_like 'expires_objectkey_booleanvalue'
34
41
  it_should_behave_like 'expires_stringkey_objectvalue'
35
42
  it_should_behave_like 'expires_stringkey_stringvalue'
36
43
  it_should_behave_like 'expires_stringkey_hashvalue'
44
+ it_should_behave_like 'expires_stringkey_booleanvalue'
37
45
  it_should_behave_like 'expires_hashkey_objectvalue'
38
46
  it_should_behave_like 'expires_hashkey_stringvalue'
39
47
  it_should_behave_like 'expires_hashkey_hashvalue'
48
+ it_should_behave_like 'expires_hashkey_booleanvalue'
40
49
  end
@@ -13,19 +13,25 @@ describe_juno "lock" do
13
13
  it_should_behave_like 'null_objectkey_objectvalue'
14
14
  it_should_behave_like 'null_objectkey_stringvalue'
15
15
  it_should_behave_like 'null_objectkey_hashvalue'
16
+ it_should_behave_like 'null_objectkey_booleanvalue'
16
17
  it_should_behave_like 'null_stringkey_objectvalue'
17
18
  it_should_behave_like 'null_stringkey_stringvalue'
18
19
  it_should_behave_like 'null_stringkey_hashvalue'
20
+ it_should_behave_like 'null_stringkey_booleanvalue'
19
21
  it_should_behave_like 'null_hashkey_objectvalue'
20
22
  it_should_behave_like 'null_hashkey_stringvalue'
21
23
  it_should_behave_like 'null_hashkey_hashvalue'
24
+ it_should_behave_like 'null_hashkey_booleanvalue'
22
25
  it_should_behave_like 'store_objectkey_objectvalue'
23
26
  it_should_behave_like 'store_objectkey_stringvalue'
24
27
  it_should_behave_like 'store_objectkey_hashvalue'
28
+ it_should_behave_like 'store_objectkey_booleanvalue'
25
29
  it_should_behave_like 'store_stringkey_objectvalue'
26
30
  it_should_behave_like 'store_stringkey_stringvalue'
27
31
  it_should_behave_like 'store_stringkey_hashvalue'
32
+ it_should_behave_like 'store_stringkey_booleanvalue'
28
33
  it_should_behave_like 'store_hashkey_objectvalue'
29
34
  it_should_behave_like 'store_hashkey_stringvalue'
30
35
  it_should_behave_like 'store_hashkey_hashvalue'
36
+ it_should_behave_like 'store_hashkey_booleanvalue'
31
37
  end
@@ -10,10 +10,13 @@ describe_juno "null_adapter" do
10
10
  it_should_behave_like 'null_objectkey_objectvalue'
11
11
  it_should_behave_like 'null_objectkey_stringvalue'
12
12
  it_should_behave_like 'null_objectkey_hashvalue'
13
+ it_should_behave_like 'null_objectkey_booleanvalue'
13
14
  it_should_behave_like 'null_stringkey_objectvalue'
14
15
  it_should_behave_like 'null_stringkey_stringvalue'
15
16
  it_should_behave_like 'null_stringkey_hashvalue'
17
+ it_should_behave_like 'null_stringkey_booleanvalue'
16
18
  it_should_behave_like 'null_hashkey_objectvalue'
17
19
  it_should_behave_like 'null_hashkey_stringvalue'
18
20
  it_should_behave_like 'null_hashkey_hashvalue'
21
+ it_should_behave_like 'null_hashkey_booleanvalue'
19
22
  end
@@ -15,28 +15,37 @@ describe_juno "proxy_expires_memory" do
15
15
  it_should_behave_like 'null_objectkey_objectvalue'
16
16
  it_should_behave_like 'null_objectkey_stringvalue'
17
17
  it_should_behave_like 'null_objectkey_hashvalue'
18
+ it_should_behave_like 'null_objectkey_booleanvalue'
18
19
  it_should_behave_like 'null_stringkey_objectvalue'
19
20
  it_should_behave_like 'null_stringkey_stringvalue'
20
21
  it_should_behave_like 'null_stringkey_hashvalue'
22
+ it_should_behave_like 'null_stringkey_booleanvalue'
21
23
  it_should_behave_like 'null_hashkey_objectvalue'
22
24
  it_should_behave_like 'null_hashkey_stringvalue'
23
25
  it_should_behave_like 'null_hashkey_hashvalue'
26
+ it_should_behave_like 'null_hashkey_booleanvalue'
24
27
  it_should_behave_like 'store_objectkey_objectvalue'
25
28
  it_should_behave_like 'store_objectkey_stringvalue'
26
29
  it_should_behave_like 'store_objectkey_hashvalue'
30
+ it_should_behave_like 'store_objectkey_booleanvalue'
27
31
  it_should_behave_like 'store_stringkey_objectvalue'
28
32
  it_should_behave_like 'store_stringkey_stringvalue'
29
33
  it_should_behave_like 'store_stringkey_hashvalue'
34
+ it_should_behave_like 'store_stringkey_booleanvalue'
30
35
  it_should_behave_like 'store_hashkey_objectvalue'
31
36
  it_should_behave_like 'store_hashkey_stringvalue'
32
37
  it_should_behave_like 'store_hashkey_hashvalue'
38
+ it_should_behave_like 'store_hashkey_booleanvalue'
33
39
  it_should_behave_like 'expires_objectkey_objectvalue'
34
40
  it_should_behave_like 'expires_objectkey_stringvalue'
35
41
  it_should_behave_like 'expires_objectkey_hashvalue'
42
+ it_should_behave_like 'expires_objectkey_booleanvalue'
36
43
  it_should_behave_like 'expires_stringkey_objectvalue'
37
44
  it_should_behave_like 'expires_stringkey_stringvalue'
38
45
  it_should_behave_like 'expires_stringkey_hashvalue'
46
+ it_should_behave_like 'expires_stringkey_booleanvalue'
39
47
  it_should_behave_like 'expires_hashkey_objectvalue'
40
48
  it_should_behave_like 'expires_hashkey_stringvalue'
41
49
  it_should_behave_like 'expires_hashkey_hashvalue'
50
+ it_should_behave_like 'expires_hashkey_booleanvalue'
42
51
  end