moneta 0.7.20 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (214) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -5
  3. data/CHANGES +6 -0
  4. data/CONTRIBUTORS +2 -0
  5. data/Gemfile +31 -44
  6. data/LICENSE +1 -1
  7. data/README.md +82 -59
  8. data/lib/active_support/cache/moneta_store.rb +3 -3
  9. data/lib/moneta.rb +4 -2
  10. data/lib/moneta/adapters/activerecord.rb +8 -8
  11. data/lib/moneta/adapters/cassandra.rb +8 -8
  12. data/lib/moneta/adapters/couch.rb +1 -1
  13. data/lib/moneta/adapters/datamapper.rb +5 -5
  14. data/lib/moneta/adapters/daybreak.rb +1 -1
  15. data/lib/moneta/adapters/fog.rb +2 -2
  16. data/lib/moneta/adapters/lmdb.rb +1 -1
  17. data/lib/moneta/adapters/localmemcache.rb +1 -1
  18. data/lib/moneta/adapters/memcached/dalli.rb +3 -3
  19. data/lib/moneta/adapters/memcached/native.rb +1 -1
  20. data/lib/moneta/adapters/mongo.rb +6 -164
  21. data/lib/moneta/adapters/mongo/base.rb +63 -0
  22. data/lib/moneta/adapters/mongo/moped.rb +113 -0
  23. data/lib/moneta/adapters/mongo/official.rb +121 -0
  24. data/lib/moneta/adapters/pstore.rb +1 -5
  25. data/lib/moneta/adapters/restclient.rb +1 -1
  26. data/lib/moneta/adapters/sequel.rb +10 -10
  27. data/lib/moneta/cache.rb +1 -1
  28. data/lib/moneta/logger.rb +2 -2
  29. data/lib/moneta/mixins.rb +4 -4
  30. data/lib/moneta/shared.rb +2 -2
  31. data/lib/moneta/stack.rb +2 -2
  32. data/lib/moneta/synchronize.rb +2 -2
  33. data/lib/moneta/transformer.rb +5 -5
  34. data/lib/moneta/transformer/config.rb +38 -40
  35. data/lib/moneta/version.rb +1 -1
  36. data/lib/rack/cache/moneta.rb +1 -1
  37. data/lib/rack/moneta_cookies.rb +2 -2
  38. data/lib/rack/moneta_rest.rb +1 -1
  39. data/lib/rack/moneta_store.rb +4 -4
  40. data/lib/rack/session/moneta.rb +14 -2
  41. data/moneta.gemspec +1 -0
  42. data/script/benchmarks +97 -96
  43. data/script/generate-specs +763 -730
  44. data/script/install-bundle +1 -1
  45. data/script/install-kyotocabinet +2 -2
  46. data/script/memusage +1 -1
  47. data/script/upload-bundle +1 -1
  48. data/spec/action_dispatch/session_moneta_store_spec.rb +5 -5
  49. data/spec/active_support/cache_moneta_store_spec.rb +20 -20
  50. data/spec/moneta/adapter_activerecord_exisiting_connection_spec.rb +2 -2
  51. data/spec/moneta/adapter_activerecord_spec.rb +6 -6
  52. data/spec/moneta/adapter_cassandra_spec.rb +1 -1
  53. data/spec/moneta/adapter_cassandra_with_default_expires_spec.rb +1 -1
  54. data/spec/moneta/adapter_couch_spec.rb +1 -1
  55. data/spec/moneta/adapter_datamapper_spec.rb +6 -6
  56. data/spec/moneta/adapter_daybreak_spec.rb +1 -1
  57. data/spec/moneta/adapter_dbm_spec.rb +1 -1
  58. data/spec/moneta/adapter_file_spec.rb +1 -1
  59. data/spec/moneta/adapter_fog_spec.rb +4 -4
  60. data/spec/moneta/adapter_gdbm_spec.rb +1 -1
  61. data/spec/moneta/adapter_hbase_spec.rb +1 -1
  62. data/spec/moneta/adapter_kyotocabinet_spec.rb +1 -1
  63. data/spec/moneta/adapter_leveldb_spec.rb +1 -1
  64. data/spec/moneta/adapter_lmdb_spec.rb +1 -1
  65. data/spec/moneta/adapter_lmdb_with_db_spec.rb +1 -1
  66. data/spec/moneta/adapter_localmemcache_spec.rb +1 -1
  67. data/spec/moneta/adapter_lruhash_spec.rb +1 -1
  68. data/spec/moneta/adapter_memcached_dalli_spec.rb +1 -1
  69. data/spec/moneta/adapter_memcached_dalli_with_default_expires_spec.rb +1 -1
  70. data/spec/moneta/adapter_memcached_native_spec.rb +1 -1
  71. data/spec/moneta/adapter_memcached_native_with_default_expires_spec.rb +1 -1
  72. data/spec/moneta/adapter_memcached_spec.rb +1 -1
  73. data/spec/moneta/adapter_memcached_with_default_expires_spec.rb +1 -1
  74. data/spec/moneta/adapter_mongo_moped_spec.rb +56 -0
  75. data/spec/moneta/adapter_mongo_moped_with_default_expires_spec.rb +51 -0
  76. data/spec/moneta/adapter_mongo_official_spec.rb +56 -0
  77. data/spec/moneta/adapter_mongo_official_with_default_expires_spec.rb +51 -0
  78. data/spec/moneta/adapter_mongo_spec.rb +1 -7
  79. data/spec/moneta/adapter_mongo_with_default_expires_spec.rb +1 -1
  80. data/spec/moneta/adapter_pstore_spec.rb +1 -1
  81. data/spec/moneta/adapter_redis_with_default_expires_spec.rb +1 -1
  82. data/spec/moneta/adapter_restclient_spec.rb +1 -1
  83. data/spec/moneta/adapter_sdbm_spec.rb +1 -1
  84. data/spec/moneta/adapter_sequel_spec.rb +1 -1
  85. data/spec/moneta/adapter_sqlite_spec.rb +1 -1
  86. data/spec/moneta/adapter_tdb_spec.rb +1 -1
  87. data/spec/moneta/adapter_tokyocabinet_bdb_spec.rb +1 -1
  88. data/spec/moneta/adapter_tokyocabinet_hdb_spec.rb +1 -1
  89. data/spec/moneta/adapter_yaml_spec.rb +1 -1
  90. data/spec/moneta/cache_file_memory_spec.rb +1 -1
  91. data/spec/moneta/expires_file_spec.rb +3 -3
  92. data/spec/moneta/expires_memory_with_default_expires_spec.rb +1 -1
  93. data/spec/moneta/mutex_spec.rb +1 -1
  94. data/spec/moneta/optionmerger_spec.rb +26 -26
  95. data/spec/moneta/pool_spec.rb +1 -1
  96. data/spec/moneta/semaphore_spec.rb +1 -1
  97. data/spec/moneta/shared_tcp_spec.rb +2 -2
  98. data/spec/moneta/shared_unix_spec.rb +2 -2
  99. data/spec/moneta/stack_file_memory_spec.rb +1 -1
  100. data/spec/moneta/stack_memory_file_spec.rb +1 -1
  101. data/spec/moneta/standard_activerecord_spec.rb +1 -1
  102. data/spec/moneta/standard_activerecord_with_expires_spec.rb +1 -1
  103. data/spec/moneta/standard_cassandra_spec.rb +1 -1
  104. data/spec/moneta/standard_client_tcp_spec.rb +1 -1
  105. data/spec/moneta/standard_client_unix_spec.rb +2 -2
  106. data/spec/moneta/standard_couch_spec.rb +1 -1
  107. data/spec/moneta/standard_couch_with_expires_spec.rb +1 -1
  108. data/spec/moneta/standard_datamapper_spec.rb +2 -2
  109. data/spec/moneta/standard_datamapper_with_expires_spec.rb +2 -2
  110. data/spec/moneta/standard_datamapper_with_repository_spec.rb +2 -2
  111. data/spec/moneta/standard_daybreak_spec.rb +1 -1
  112. data/spec/moneta/standard_daybreak_with_expires_spec.rb +1 -1
  113. data/spec/moneta/standard_dbm_spec.rb +1 -1
  114. data/spec/moneta/standard_dbm_with_expires_spec.rb +1 -1
  115. data/spec/moneta/standard_file_spec.rb +1 -1
  116. data/spec/moneta/standard_file_with_expires_spec.rb +1 -1
  117. data/spec/moneta/standard_fog_spec.rb +4 -4
  118. data/spec/moneta/standard_fog_with_expires_spec.rb +5 -5
  119. data/spec/moneta/standard_gdbm_spec.rb +1 -1
  120. data/spec/moneta/standard_gdbm_with_expires_spec.rb +1 -1
  121. data/spec/moneta/standard_hashfile_spec.rb +1 -1
  122. data/spec/moneta/standard_hashfile_with_expires_spec.rb +1 -1
  123. data/spec/moneta/standard_hbase_spec.rb +1 -1
  124. data/spec/moneta/standard_hbase_with_expires_spec.rb +1 -1
  125. data/spec/moneta/standard_kyotocabinet_spec.rb +1 -1
  126. data/spec/moneta/standard_kyotocabinet_with_expires_spec.rb +1 -1
  127. data/spec/moneta/standard_leveldb_spec.rb +1 -1
  128. data/spec/moneta/standard_leveldb_with_expires_spec.rb +1 -1
  129. data/spec/moneta/standard_lmdb_spec.rb +1 -1
  130. data/spec/moneta/standard_lmdb_with_expires_spec.rb +1 -1
  131. data/spec/moneta/standard_localmemcache_spec.rb +1 -1
  132. data/spec/moneta/standard_localmemcache_with_expires_spec.rb +1 -1
  133. data/spec/moneta/standard_lruhash_spec.rb +1 -1
  134. data/spec/moneta/standard_lruhash_with_expires_spec.rb +1 -1
  135. data/spec/moneta/standard_memcached_dalli_spec.rb +1 -1
  136. data/spec/moneta/standard_memcached_native_spec.rb +1 -1
  137. data/spec/moneta/standard_memcached_spec.rb +1 -1
  138. data/spec/moneta/standard_memory_spec.rb +1 -1
  139. data/spec/moneta/standard_memory_with_compress_spec.rb +1 -1
  140. data/spec/moneta/standard_memory_with_expires_spec.rb +1 -1
  141. data/spec/moneta/standard_memory_with_json_key_serializer_spec.rb +1 -1
  142. data/spec/moneta/standard_memory_with_json_serializer_spec.rb +1 -1
  143. data/spec/moneta/standard_memory_with_json_value_serializer_spec.rb +1 -1
  144. data/spec/moneta/standard_memory_with_prefix_spec.rb +1 -1
  145. data/spec/moneta/standard_memory_with_snappy_compress_spec.rb +1 -1
  146. data/spec/moneta/standard_mongo_moped_spec.rb +255 -0
  147. data/spec/moneta/standard_mongo_official_spec.rb +255 -0
  148. data/spec/moneta/standard_mongo_spec.rb +1 -1
  149. data/spec/moneta/standard_null_spec.rb +1 -1
  150. data/spec/moneta/standard_pstore_spec.rb +1 -1
  151. data/spec/moneta/standard_pstore_with_expires_spec.rb +1 -1
  152. data/spec/moneta/standard_redis_spec.rb +1 -1
  153. data/spec/moneta/standard_restclient_spec.rb +1 -1
  154. data/spec/moneta/standard_riak_spec.rb +1 -1
  155. data/spec/moneta/standard_riak_with_expires_spec.rb +1 -1
  156. data/spec/moneta/standard_sdbm_spec.rb +1 -1
  157. data/spec/moneta/standard_sdbm_with_expires_spec.rb +1 -1
  158. data/spec/moneta/standard_sequel_spec.rb +1 -1
  159. data/spec/moneta/standard_sequel_with_expires_spec.rb +1 -1
  160. data/spec/moneta/standard_sqlite_spec.rb +1 -1
  161. data/spec/moneta/standard_sqlite_with_expires_spec.rb +1 -1
  162. data/spec/moneta/standard_tdb_spec.rb +1 -1
  163. data/spec/moneta/standard_tdb_with_expires_spec.rb +1 -1
  164. data/spec/moneta/standard_tokyocabinet_spec.rb +1 -1
  165. data/spec/moneta/standard_tokyocabinet_with_expires_spec.rb +1 -1
  166. data/spec/moneta/standard_tokyotyrant_spec.rb +1 -1
  167. data/spec/moneta/standard_tokyotyrant_with_expires_spec.rb +1 -1
  168. data/spec/moneta/standard_yaml_spec.rb +1 -1
  169. data/spec/moneta/standard_yaml_with_expires_spec.rb +1 -1
  170. data/spec/moneta/transformer_bencode_spec.rb +1 -1
  171. data/spec/moneta/transformer_bert_spec.rb +1 -1
  172. data/spec/moneta/transformer_bson_spec.rb +1 -1
  173. data/spec/moneta/transformer_bzip2_spec.rb +1 -1
  174. data/spec/moneta/transformer_json_spec.rb +1 -1
  175. data/spec/moneta/transformer_key_inspect_spec.rb +1 -1
  176. data/spec/moneta/transformer_key_marshal_spec.rb +1 -1
  177. data/spec/moneta/transformer_key_to_s_spec.rb +1 -1
  178. data/spec/moneta/transformer_key_yaml_spec.rb +1 -1
  179. data/spec/moneta/transformer_lz4_spec.rb +1 -1
  180. data/spec/moneta/transformer_lzma_spec.rb +1 -1
  181. data/spec/moneta/transformer_lzo_spec.rb +1 -1
  182. data/spec/moneta/transformer_marshal_base64_spec.rb +1 -1
  183. data/spec/moneta/transformer_marshal_city128_spec.rb +1 -1
  184. data/spec/moneta/transformer_marshal_city32_spec.rb +1 -1
  185. data/spec/moneta/transformer_marshal_city64_spec.rb +1 -1
  186. data/spec/moneta/transformer_marshal_escape_spec.rb +1 -1
  187. data/spec/moneta/transformer_marshal_hex_spec.rb +1 -1
  188. data/spec/moneta/transformer_marshal_hmac_spec.rb +1 -1
  189. data/spec/moneta/transformer_marshal_md5_spec.rb +1 -1
  190. data/spec/moneta/transformer_marshal_md5_spread_spec.rb +1 -1
  191. data/spec/moneta/transformer_marshal_prefix_spec.rb +1 -1
  192. data/spec/moneta/transformer_marshal_qp_spec.rb +1 -1
  193. data/spec/moneta/transformer_marshal_rmd160_spec.rb +1 -1
  194. data/spec/moneta/transformer_marshal_sha1_spec.rb +1 -1
  195. data/spec/moneta/transformer_marshal_sha256_spec.rb +1 -1
  196. data/spec/moneta/transformer_marshal_sha384_spec.rb +1 -1
  197. data/spec/moneta/transformer_marshal_sha512_spec.rb +1 -1
  198. data/spec/moneta/transformer_marshal_spec.rb +1 -1
  199. data/spec/moneta/transformer_marshal_truncate_spec.rb +1 -1
  200. data/spec/moneta/transformer_marshal_uuencode_spec.rb +1 -1
  201. data/spec/moneta/transformer_msgpack_spec.rb +1 -1
  202. data/spec/moneta/transformer_ox_spec.rb +1 -1
  203. data/spec/moneta/transformer_php_spec.rb +1 -1
  204. data/spec/moneta/transformer_quicklz_spec.rb +1 -1
  205. data/spec/moneta/transformer_snappy_spec.rb +1 -1
  206. data/spec/moneta/transformer_tnet_spec.rb +1 -1
  207. data/spec/moneta/transformer_value_marshal_spec.rb +1 -1
  208. data/spec/moneta/transformer_value_yaml_spec.rb +1 -1
  209. data/spec/moneta/transformer_yaml_spec.rb +1 -1
  210. data/spec/moneta/transformer_zlib_spec.rb +1 -1
  211. data/spec/moneta/weak_create_spec.rb +4 -4
  212. data/spec/moneta/weak_increment_spec.rb +4 -4
  213. data/spec/monetaspecs.rb +481 -481
  214. metadata +14 -185
@@ -2,47 +2,45 @@ module Moneta
2
2
  class Transformer
3
3
  # Available key/value transformers
4
4
  TRANSFORMER = {
5
- # Name => [ Type, Load, Dump, Library ],
6
- :bencode => [ :serialize, '::BEncode.load(%s)', '::BEncode.dump(%s)', 'bencode' ],
7
- :bert => [ :serialize, '::BERT.decode(%s)', '::BERT.encode(%s)', 'bert' ],
8
- :bson => [ :serialize, "::BSON.deserialize(%s)['v']", "::BSON.serialize('v'=>%s).to_s", 'bson' ],
9
- :json => [ :serialize, '::MultiJson.load(%s)', '::MultiJson.dump(%s)', 'multi_json' ],
10
- :marshal => [ :serialize, '::Marshal.load(%s)', '::Marshal.dump(%s)' ],
11
- :msgpack => [ :serialize, '::MessagePack.unpack(%s)', '::MessagePack.pack(%s)', 'msgpack' ],
12
- :ox => [ :serialize, '::Ox.parse_obj(%s)', '::Ox.dump(%s)', 'ox' ],
13
- :php => [ :serialize, '::PHP.unserialize(%s)', '::PHP.serialize(%s)', 'php_serialize' ],
14
- :tnet => [ :serialize, '::TNetstring.parse(%s).first', '::TNetstring.dump(%s)', 'tnetstring' ],
15
- :yaml => [ :serialize, '::YAML.load(%s)', '::YAML.dump(%s)', 'yaml' ],
16
- :bzip2 => [ :compress, '::Bzip2.uncompress(%s)', '::Bzip2.compress(%s)', 'bzip2' ],
17
- :lz4 => [ :compress, '::LZ4.uncompress(%s)', '::LZ4.compress(%s)', 'lz4-ruby' ],
18
- :lzma => [ :compress, '::LZMA.decompress(%s)', '::LZMA.compress(%s)', 'lzma' ],
19
- :lzo => [ :compress, '::LZO.decompress(%s)', '::LZO.compress(%s)', 'lzoruby' ],
20
- :snappy => [ :compress, '::Snappy.inflate(%s)', '::Snappy.deflate(%s)', 'snappy' ],
21
- :quicklz => [ :compress, '::QuickLZ.decompress(%s)', '::QuickLZ.compress(%s)', 'qlzruby' ],
22
- :zlib => [ :compress, '::Zlib::Inflate.inflate(%s)', '::Zlib::Deflate.deflate(%s)', 'zlib' ],
23
- :base64 => RUBY_VERSION > '1.9' ?
24
- [ :encode, "%s.unpack('m0').first", "[%s].pack('m0')" ] :
25
- [ :encode, "%s.unpack('m').first", "[%s].pack('m').gsub(\"\n\", '')" ],
26
- :escape => [ :encode, 'Helper.unescape(%s)', 'Helper.escape(%s)' ],
27
- :hex => [ :encode, "[%s].pack('H*')", "%s.unpack('H*').first" ],
28
- :qp => [ :encode, "%s.unpack('M').first", "[%s].pack('M')" ],
29
- :uuencode => [ :encode, "%s.unpack('u').first", "[%s].pack('u')" ],
30
- :hmac => [ :hmac, 'Helper.hmacverify(%s, options[:secret] || @secret)',
5
+ # Name: [ Type, Load, Dump, Library ],
6
+ bencode: [ :serialize, '::BEncode.load(%s)', '::BEncode.dump(%s)', 'bencode' ],
7
+ bert: [ :serialize, '::BERT.decode(%s)', '::BERT.encode(%s)', 'bert' ],
8
+ bson: [ :serialize, "::BSON.deserialize(%s)['v']", "::BSON.serialize('v'=>%s).to_s", 'bson' ],
9
+ json: [ :serialize, '::MultiJson.load(%s)', '::MultiJson.dump(%s)', 'multi_json' ],
10
+ marshal: [ :serialize, '::Marshal.load(%s)', '::Marshal.dump(%s)' ],
11
+ msgpack: [ :serialize, '::MessagePack.unpack(%s)', '::MessagePack.pack(%s)', 'msgpack' ],
12
+ ox: [ :serialize, '::Ox.parse_obj(%s)', '::Ox.dump(%s)', 'ox' ],
13
+ php: [ :serialize, '::PHP.unserialize(%s)', '::PHP.serialize(%s)', 'php_serialize' ],
14
+ tnet: [ :serialize, '::TNetstring.parse(%s).first', '::TNetstring.dump(%s)', 'tnetstring' ],
15
+ yaml: [ :serialize, '::YAML.load(%s)', '::YAML.dump(%s)', 'yaml' ],
16
+ bzip2: [ :compress, '::Bzip2.uncompress(%s)', '::Bzip2.compress(%s)', 'bzip2' ],
17
+ lz4: [ :compress, '::LZ4.uncompress(%s)', '::LZ4.compress(%s)', 'lz4-ruby' ],
18
+ lzma: [ :compress, '::LZMA.decompress(%s)', '::LZMA.compress(%s)', 'lzma' ],
19
+ lzo: [ :compress, '::LZO.decompress(%s)', '::LZO.compress(%s)', 'lzoruby' ],
20
+ snappy: [ :compress, '::Snappy.inflate(%s)', '::Snappy.deflate(%s)', 'snappy' ],
21
+ quicklz: [ :compress, '::QuickLZ.decompress(%s)', '::QuickLZ.compress(%s)', 'qlzruby' ],
22
+ zlib: [ :compress, '::Zlib::Inflate.inflate(%s)', '::Zlib::Deflate.deflate(%s)', 'zlib' ],
23
+ base64: [ :encode, "%s.unpack('m0').first", "[%s].pack('m0')" ],
24
+ escape: [ :encode, 'Helper.unescape(%s)', 'Helper.escape(%s)' ],
25
+ hex: [ :encode, "[%s].pack('H*')", "%s.unpack('H*').first" ],
26
+ qp: [ :encode, "%s.unpack('M').first", "[%s].pack('M')" ],
27
+ uuencode: [ :encode, "%s.unpack('u').first", "[%s].pack('u')" ],
28
+ hmac: [ :hmac, 'Helper.hmacverify(%s, options[:secret] || @secret)',
31
29
  'Helper.hmacsign(%s, options[:secret] || @secret)', 'openssl' ],
32
- :truncate => [ :truncate, nil, 'Helper.truncate(%s, @maxlen)', 'digest/md5' ],
33
- :md5 => [ :digest, nil, '::Digest::MD5.hexdigest(%s)', 'digest/md5' ],
34
- :rmd160 => [ :digest, nil, '::Digest::RMD160.hexdigest(%s)', 'digest/rmd160' ],
35
- :sha1 => [ :digest, nil, '::Digest::SHA1.hexdigest(%s)', 'digest/sha1' ],
36
- :sha256 => [ :digest, nil, '::Digest::SHA256.hexdigest(%s)', 'digest/sha2' ],
37
- :sha384 => [ :digest, nil, '::Digest::SHA384.hexdigest(%s)', 'digest/sha2' ],
38
- :sha512 => [ :digest, nil, '::Digest::SHA512.hexdigest(%s)', 'digest/sha2' ],
39
- :city32 => [ :digest, nil, '::CityHash.hash32(%s).to_s(16)', 'cityhash' ],
40
- :city64 => [ :digest, nil, '::CityHash.hash64(%s).to_s(16)', 'cityhash' ],
41
- :city128 => [ :digest, nil, '::CityHash.hash128(%s).to_s(16)', 'cityhash' ],
42
- :prefix => [ :prefix, nil, '(options[:prefix] || @prefix)+%s' ],
43
- :spread => [ :spread, nil, 'Helper.spread(%s)' ],
44
- :to_s => [ :string, nil, '%s.to_s' ],
45
- :inspect => [ :string, nil, '%s.inspect' ],
30
+ truncate: [ :truncate, nil, 'Helper.truncate(%s, @maxlen)', 'digest/md5' ],
31
+ md5: [ :digest, nil, '::Digest::MD5.hexdigest(%s)', 'digest/md5' ],
32
+ rmd160: [ :digest, nil, '::Digest::RMD160.hexdigest(%s)', 'digest/rmd160' ],
33
+ sha1: [ :digest, nil, '::Digest::SHA1.hexdigest(%s)', 'digest/sha1' ],
34
+ sha256: [ :digest, nil, '::Digest::SHA256.hexdigest(%s)', 'digest/sha2' ],
35
+ sha384: [ :digest, nil, '::Digest::SHA384.hexdigest(%s)', 'digest/sha2' ],
36
+ sha512: [ :digest, nil, '::Digest::SHA512.hexdigest(%s)', 'digest/sha2' ],
37
+ city32: [ :digest, nil, '::CityHash.hash32(%s).to_s(16)', 'cityhash' ],
38
+ city64: [ :digest, nil, '::CityHash.hash64(%s).to_s(16)', 'cityhash' ],
39
+ city128: [ :digest, nil, '::CityHash.hash128(%s).to_s(16)', 'cityhash' ],
40
+ prefix: [ :prefix, nil, '(options[:prefix] || @prefix)+%s' ],
41
+ spread: [ :spread, nil, 'Helper.spread(%s)' ],
42
+ to_s: [ :string, nil, '%s.to_s' ],
43
+ inspect: [ :string, nil, '%s.inspect' ],
46
44
  }
47
45
 
48
46
  # Allowed value transformers (Read it like a regular expression!)
@@ -1,5 +1,5 @@
1
1
  module Moneta
2
2
  # Moneta version number
3
3
  # @api public
4
- VERSION = '0.7.20'
4
+ VERSION = '0.8.0'
5
5
  end
@@ -82,7 +82,7 @@ module Rack
82
82
  def write(body, ttl = 0)
83
83
  buf = StringIO.new
84
84
  key, size = slurp(body) { |part| buf.write(part) }
85
- @cache.store(key, buf.string, ttl == 0 ? {} : {:expires => ttl})
85
+ @cache.store(key, buf.string, ttl == 0 ? {} : {expires: ttl})
86
86
  [key, size]
87
87
  end
88
88
 
@@ -14,12 +14,12 @@ module Rack
14
14
  #
15
15
  # @example config.ru
16
16
  # # Give it some options
17
- # use Rack::MonetaCookies, :domain => 'example.com', :path => '/path'
17
+ # use Rack::MonetaCookies, domain: 'example.com', path: '/path'
18
18
  #
19
19
  # @example config.ru
20
20
  # # Pass it a block like the one passed to Moneta.build
21
21
  # use Rack::MonetaCookies do
22
- # use :Transformer, :key => :prefix, :prefix => 'moneta.'
22
+ # use :Transformer, key: :prefix, prefix: 'moneta.'
23
23
  # adapter :Cookie
24
24
  # end
25
25
  #
@@ -11,7 +11,7 @@ module Rack
11
11
  # @example config.ru
12
12
  # # Pass it a block like the one passed to Moneta.build
13
13
  # run Rack::MonetaRest.new do
14
- # use :Transformer, :value => :zlib
14
+ # use :Transformer, value: :zlib
15
15
  # adapter :Memory
16
16
  # end
17
17
  #
@@ -2,11 +2,11 @@ require 'moneta'
2
2
 
3
3
  module Rack
4
4
  # A Rack middleware that inserts a Moneta store in the environment
5
- # and supports per-request caching via the the option `:cache => true`.
5
+ # and supports per-request caching via the the option `cache: true`.
6
6
  #
7
7
  # @example config.ru
8
8
  # # Add Rack::MonetaStore somewhere in your rack stack
9
- # use Rack::MonetaStore, :Memory, :cache => true
9
+ # use Rack::MonetaStore, :Memory, cache: true
10
10
  #
11
11
  # run lambda { |env|
12
12
  # env['rack.moneta_store'] # is a Moneta store with per-request caching
@@ -15,7 +15,7 @@ module Rack
15
15
  # @example config.ru
16
16
  # # Pass it a block like the one passed to Moneta.build
17
17
  # use Rack::MonetaStore do
18
- # use :Transformer, :value => :zlib
18
+ # use :Transformer, value: :zlib
19
19
  # adapter :Cookie
20
20
  # end
21
21
  #
@@ -38,7 +38,7 @@ module Rack
38
38
  end
39
39
 
40
40
  def call(env)
41
- env['rack.moneta_store'] = @cache ? ::Moneta::Cache.new(:cache => ::Moneta::Adapters::Memory.new, :adapter => @store) : @store
41
+ env['rack.moneta_store'] = @cache ? ::Moneta::Cache.new(cache: ::Moneta::Adapters::Memory.new, adapter: @store) : @store
42
42
  @app.call(env)
43
43
  end
44
44
  end
@@ -4,6 +4,18 @@ require 'thread'
4
4
 
5
5
  module Rack
6
6
  module Session
7
+ # Rack::Session::Moneta stores sessions in a Moneta store.
8
+ #
9
+ # Example:
10
+ #
11
+ # use Rack::Session::Moneta, key: 'rack.session',
12
+ # domain: 'foo.com',
13
+ # path: '/',
14
+ # expire_after: 2592000,
15
+ # store: Moneta.new(...)
16
+ #
17
+ # You can use all options supported by `Rack::Session::Abstract::ID`.
18
+ #
7
19
  # @api public
8
20
  class Moneta < Abstract::ID
9
21
  attr_reader :mutex, :pool
@@ -15,7 +27,7 @@ module Rack
15
27
  @pool = ::Moneta.build(&block)
16
28
  else
17
29
  raise ArgumentError, 'Block or option :store is required' unless @pool = options[:store]
18
- @pool = ::Moneta.new(@pool, :expires => true) if Symbol === @pool
30
+ @pool = ::Moneta.new(@pool, expires: true) if Symbol === @pool
19
31
  end
20
32
  @pool = ::Moneta::WeakCreate.new(@pool) unless @pool.supports?(:create)
21
33
  @mutex = ::Mutex.new
@@ -43,7 +55,7 @@ module Rack
43
55
  def set_session(env, session_id, new_session, options)
44
56
  with_lock(env) do
45
57
  @pool.store(session_id, new_session,
46
- options[:expire_after] ? { :expires => options[:expire_after] } : {})
58
+ options[:expire_after] ? { expires: options[:expire_after] } : {})
47
59
  session_id
48
60
  end
49
61
  end
@@ -17,4 +17,5 @@ Gem::Specification.new do |s|
17
17
  s.licenses = %w(MIT)
18
18
  s.require_paths = %w(lib)
19
19
  s.summary = %{A unified interface to key/value stores, including Redis, Memcached, TokyoCabinet, ActiveRecord and many more}
20
+ s.required_ruby_version = '>= 1.9'
20
21
  end
@@ -31,103 +31,104 @@ class MonetaBenchmarks
31
31
 
32
32
  STORES = {
33
33
  # SDBM accepts only very short key/value pairs (1k for both)
34
- # :SDBM => { :file => "#{DIR}/sdbm" },
34
+ # SDBM: { file: "#{DIR}/sdbm" },
35
35
  # YAML is too slow
36
- # :YAML => { :file => "#{DIR}/yaml" },
37
- :ActiveRecord => { :table => 'activerecord', :connection => { :adapter => (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), :username => 'root', :database => 'moneta' } },
38
- :Cassandra => {},
39
- :Client => {},
40
- :Couch => {},
41
- :DBM => { :file => "#{DIR}/dbm" },
42
- :DataMapper => { :setup => 'mysql://root:@localhost/moneta', :table => 'datamapper' },
43
- :Daybreak => { :file => "#{DIR}/daybreak" },
44
- :File => { :dir => "#{DIR}/file" },
45
- :GDBM => { :file => "#{DIR}/gdbm" },
46
- :HBase => {},
47
- :HashFile => { :dir => "#{DIR}/hashfile" },
48
- :KyotoCabinet => { :file => "#{DIR}/kyotocabinet.kch" },
49
- :LRUHash => {},
50
- :LevelDB => { :dir => "#{DIR}/leveldb" },
51
- :LocalMemCache => { :file => "#{DIR}/lmc" },
52
- :LMDB => { :dir => "#{DIR}/lmdb" },
53
- :MemcachedDalli => {},
54
- :MemcachedNative => {},
55
- :Memory => {},
56
- :Mongo => {},
57
- :PStore => { :file => "#{DIR}/pstore" },
58
- :Redis => {},
59
- :RestClient => { :url => 'http://localhost:8808/' },
60
- :Riak => {},
61
- :Sequel => { :table => 'sequel',
62
- :db => (defined?(JRUBY_VERSION) ?
36
+ # YAML: { file: "#{DIR}/yaml" },
37
+ ActiveRecord: { table: 'activerecord', connection: { adapter: (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), username: 'root', database: 'moneta' } },
38
+ Cassandra: {},
39
+ Client: {},
40
+ Couch: {},
41
+ DBM: { file: "#{DIR}/dbm" },
42
+ DataMapper: { setup: 'mysql://root:@localhost/moneta', table: 'datamapper' },
43
+ Daybreak: { file: "#{DIR}/daybreak" },
44
+ File: { dir: "#{DIR}/file" },
45
+ GDBM: { file: "#{DIR}/gdbm" },
46
+ HBase: {},
47
+ HashFile: { dir: "#{DIR}/hashfile" },
48
+ KyotoCabinet: { file: "#{DIR}/kyotocabinet.kch" },
49
+ LRUHash: {},
50
+ LevelDB: { dir: "#{DIR}/leveldb" },
51
+ LocalMemCache: { file: "#{DIR}/lmc" },
52
+ LMDB: { dir: "#{DIR}/lmdb" },
53
+ MemcachedDalli: {},
54
+ MemcachedNative: {},
55
+ Memory: {},
56
+ MongoMoped: {},
57
+ MongoOfficial: {},
58
+ PStore: { file: "#{DIR}/pstore" },
59
+ Redis: {},
60
+ RestClient: { url: 'http://localhost:8808/' },
61
+ Riak: {},
62
+ Sequel: { table: 'sequel',
63
+ db: (defined?(JRUBY_VERSION) ?
63
64
  'jdbc:mysql://localhost/moneta?user=root' :
64
65
  'mysql2://root:@localhost/moneta') },
65
- :Sqlite => { :file => ':memory:' },
66
- :TDB => { :file => "#{DIR}/tdb" },
67
- :TokyoCabinet => { :file => "#{DIR}/tokyocabinet" },
68
- :TokyoTyrant => {},
66
+ Sqlite: { file: ':memory:' },
67
+ TDB: { file: "#{DIR}/tdb" },
68
+ TokyoCabinet: { file: "#{DIR}/tokyocabinet" },
69
+ TokyoTyrant: {},
69
70
  }
70
71
 
71
72
  CONFIGS = {
72
- :uniform_small => {
73
- :runs => 3,
74
- :keys => 1000,
75
- :min_key_len => 1,
76
- :max_key_len => 32,
77
- :key_dist => :uniform,
78
- :min_val_len => 0,
79
- :max_val_len => 256,
80
- :val_dist => :uniform
73
+ uniform_small: {
74
+ runs: 3,
75
+ keys: 1000,
76
+ min_key_len: 1,
77
+ max_key_len: 32,
78
+ key_dist: :uniform,
79
+ min_val_len: 0,
80
+ max_val_len: 256,
81
+ val_dist: :uniform
81
82
  },
82
- :uniform_medium => {
83
- :runs => 3,
84
- :keys => 1000,
85
- :min_key_len => 3,
86
- :max_key_len => 128,
87
- :key_dist => :uniform,
88
- :min_val_len => 0,
89
- :max_val_len => 1024,
90
- :val_dist => :uniform
83
+ uniform_medium: {
84
+ runs: 3,
85
+ keys: 1000,
86
+ min_key_len: 3,
87
+ max_key_len: 128,
88
+ key_dist: :uniform,
89
+ min_val_len: 0,
90
+ max_val_len: 1024,
91
+ val_dist: :uniform
91
92
  },
92
- :uniform_large => {
93
- :runs => 3,
94
- :keys => 100,
95
- :min_key_len => 3,
96
- :max_key_len => 128,
97
- :key_dist => :uniform,
98
- :min_val_len => 0,
99
- :max_val_len => 10240,
100
- :val_dist => :uniform
93
+ uniform_large: {
94
+ runs: 3,
95
+ keys: 100,
96
+ min_key_len: 3,
97
+ max_key_len: 128,
98
+ key_dist: :uniform,
99
+ min_val_len: 0,
100
+ max_val_len: 10240,
101
+ val_dist: :uniform
101
102
  },
102
- :normal_small => {
103
- :runs => 3,
104
- :keys => 1000,
105
- :min_key_len => 1,
106
- :max_key_len => 32,
107
- :key_dist => :normal,
108
- :min_val_len => 0,
109
- :max_val_len => 256,
110
- :val_dist => :normal
103
+ normal_small: {
104
+ runs: 3,
105
+ keys: 1000,
106
+ min_key_len: 1,
107
+ max_key_len: 32,
108
+ key_dist: :normal,
109
+ min_val_len: 0,
110
+ max_val_len: 256,
111
+ val_dist: :normal
111
112
  },
112
- :normal_medium => {
113
- :runs => 3,
114
- :keys => 1000,
115
- :min_key_len => 3,
116
- :max_key_len => 128,
117
- :key_dist => :normal,
118
- :min_val_len => 0,
119
- :max_val_len => 1024,
120
- :val_dist => :normal
113
+ normal_medium: {
114
+ runs: 3,
115
+ keys: 1000,
116
+ min_key_len: 3,
117
+ max_key_len: 128,
118
+ key_dist: :normal,
119
+ min_val_len: 0,
120
+ max_val_len: 1024,
121
+ val_dist: :normal
121
122
  },
122
- :normal_large => {
123
- :runs => 3,
124
- :keys => 100,
125
- :min_key_len => 3,
126
- :max_key_len => 128,
127
- :key_dist => :normal,
128
- :min_val_len => 0,
129
- :max_val_len => 10240,
130
- :val_dist => :normal
123
+ normal_large: {
124
+ runs: 3,
125
+ keys: 100,
126
+ min_key_len: 3,
127
+ max_key_len: 128,
128
+ key_dist: :normal,
129
+ min_val_len: 0,
130
+ max_val_len: 10240,
131
+ val_dist: :normal
131
132
  },
132
133
  }
133
134
 
@@ -206,13 +207,13 @@ class MonetaBenchmarks
206
207
  def log(level, data); end
207
208
  end
208
209
 
209
- Rack::Server.start(:app => Rack::Builder.app do
210
+ Rack::Server.start(app: Rack::Builder.app do
210
211
  use Rack::Lint
211
- run Rack::MonetaRest.new(:store => :Memory)
212
+ run Rack::MonetaRest.new(store: :Memory)
212
213
  end,
213
- :environment => :none,
214
- :server => :webrick,
215
- :Port => 8808)
214
+ environment: :none,
215
+ server: :webrick,
216
+ Port: 8808)
216
217
  rescue Exception => ex
217
218
  puts "\e[31mFailed to start Rack server - #{ex.message}\e[0m"
218
219
  end
@@ -227,7 +228,7 @@ class MonetaBenchmarks
227
228
  if name == :DataMapper
228
229
  begin
229
230
  require 'dm-core'
230
- DataMapper.setup(:default, :adapter => :in_memory)
231
+ DataMapper.setup(:default, adapter: :in_memory)
231
232
  rescue LoadError => ex
232
233
  puts "\e[31mFailed to load DataMapper - #{ex.message}\e[0m"
233
234
  end
@@ -298,10 +299,10 @@ class MonetaBenchmarks
298
299
  store = Moneta.new(name, options.dup)
299
300
 
300
301
  @stats[name] = {
301
- :write => [],
302
- :read => [],
303
- :sum => [],
304
- :error => []
302
+ write: [],
303
+ read: [],
304
+ sum: [],
305
+ error: []
305
306
  }
306
307
 
307
308
  %w(Rehearse Measure).each do |type|
@@ -19,43 +19,43 @@ class Specs
19
19
  end
20
20
 
21
21
  def new(options)
22
- Specs.new({:specs => specs, :key => key, :value => value}.merge(options))
22
+ Specs.new({specs: specs, key: key, value: value}.merge(options))
23
23
  end
24
24
 
25
25
  def without_path
26
- new(:key => key - %w(path))
26
+ new(key: key - %w(path))
27
27
  end
28
28
 
29
29
  def stringvalues_only
30
- new(:value => %w(string))
30
+ new(value: %w(string))
31
31
  end
32
32
 
33
33
  def simplekeys_only
34
- new(:key => %w(string hash integer))
34
+ new(key: %w(string hash integer))
35
35
  end
36
36
 
37
37
  def simplevalues_only
38
- new(:value => %w(string hash integer))
38
+ new(value: %w(string hash integer))
39
39
  end
40
40
 
41
41
  def without_increment
42
- new(:specs => specs - [:increment, :concurrent_increment] + [:not_increment])
42
+ new(specs: specs - [:increment, :concurrent_increment] + [:not_increment])
43
43
  end
44
44
 
45
45
  def without_large
46
- new(:specs => specs - [:store_large])
46
+ new(specs: specs - [:store_large])
47
47
  end
48
48
 
49
49
  def without_concurrent
50
- new(:specs => specs - [:concurrent_increment, :concurrent_create])
50
+ new(specs: specs - [:concurrent_increment, :concurrent_create])
51
51
  end
52
52
 
53
53
  def without_persist
54
- new(:specs => specs - [:persist, :multiprocess, :concurrent_increment, :concurrent_create] + [:not_persist])
54
+ new(specs: specs - [:persist, :multiprocess, :concurrent_increment, :concurrent_create] + [:not_persist])
55
55
  end
56
56
 
57
57
  def without_multiprocess
58
- new(:specs => specs - [:multiprocess, :concurrent_increment, :concurrent_create])
58
+ new(specs: specs - [:multiprocess, :concurrent_increment, :concurrent_create])
59
59
  end
60
60
 
61
61
  def with_expires
@@ -66,60 +66,60 @@ class Specs
66
66
  end
67
67
  a << :create_expires if a.include?(:create)
68
68
  a << :expires
69
- new(:specs => a)
69
+ new(specs: a)
70
70
  end
71
71
 
72
72
  def with_native_expires
73
73
  a = specs.dup
74
74
  a << :create_expires if a.include?(:create)
75
- new(:specs => a + [:expires])
75
+ new(specs: a + [:expires])
76
76
  end
77
77
 
78
78
  def without_marshallable
79
- new(:specs => specs - [:marshallable_value, :marshallable_key])
79
+ new(specs: specs - [:marshallable_value, :marshallable_key])
80
80
  end
81
81
 
82
82
  def without_transform
83
- new(:specs => specs - [:marshallable_value, :marshallable_key, :transform_value])
83
+ new(specs: specs - [:marshallable_value, :marshallable_key, :transform_value])
84
84
  end
85
85
 
86
86
  def returnsame
87
- new(:specs => specs - [:returndifferent] + [:returnsame])
87
+ new(specs: specs - [:returndifferent] + [:returnsame])
88
88
  end
89
89
 
90
90
  def without_marshallable_key
91
- new(:specs => specs - [:marshallable_key])
91
+ new(specs: specs - [:marshallable_key])
92
92
  end
93
93
 
94
94
  def without_marshallable_value
95
- new(:specs => specs - [:marshallable_value])
95
+ new(specs: specs - [:marshallable_value])
96
96
  end
97
97
 
98
98
  def without_store
99
- new(:specs => specs - [:store, :store_large, :transform_value, :marshallable_value])
99
+ new(specs: specs - [:store, :store_large, :transform_value, :marshallable_value])
100
100
  end
101
101
 
102
102
  def with_default_expires
103
- new(:specs => specs + [:default_expires])
103
+ new(specs: specs + [:default_expires])
104
104
  end
105
105
 
106
106
  def without_create
107
- new(:specs => specs - [:create, :concurrent_create, :create_expires] + [:not_create])
107
+ new(specs: specs - [:create, :concurrent_create, :create_expires] + [:not_create])
108
108
  end
109
109
  end
110
110
 
111
- ADAPTER_SPECS = Specs.new(:specs => [:null, :store, :returndifferent, :increment, :concurrent_increment, :concurrent_create, :persist, :multiprocess, :create, :features, :store_large], :key => %w(string path), :value => %w(string path))
112
- STANDARD_SPECS = Specs.new(:specs => [:null, :store, :returndifferent, :marshallable_key, :marshallable_value, :transform_value, :increment, :concurrent_increment, :concurrent_create, :persist, :multiprocess, :create, :features, :store_large])
113
- TRANSFORMER_SPECS = Specs.new(:specs => [:null, :store, :returndifferent, :transform_value, :increment, :create, :features, :store_large])
111
+ ADAPTER_SPECS = Specs.new(specs: [:null, :store, :returndifferent, :increment, :concurrent_increment, :concurrent_create, :persist, :multiprocess, :create, :features, :store_large], key: %w(string path), value: %w(string path))
112
+ STANDARD_SPECS = Specs.new(specs: [:null, :store, :returndifferent, :marshallable_key, :marshallable_value, :transform_value, :increment, :concurrent_increment, :concurrent_create, :persist, :multiprocess, :create, :features, :store_large])
113
+ TRANSFORMER_SPECS = Specs.new(specs: [:null, :store, :returndifferent, :transform_value, :increment, :create, :features, :store_large])
114
114
 
115
115
  header = "# coding: binary\n# Generated by #{File.basename(__FILE__)}\n"
116
116
 
117
117
  TESTS = {
118
118
  'standard_client_tcp' => {
119
- :preamble => "start_server(Moneta::Adapters::Memory.new)\n",
120
- :store => :Client,
121
- :specs => STANDARD_SPECS,
122
- :tests => %{
119
+ preamble: "start_server(Moneta::Adapters::Memory.new)\n",
120
+ store: :Client,
121
+ specs: STANDARD_SPECS,
122
+ tests: %{
123
123
  it 'supports multiple clients' do
124
124
  client = Moneta.new(:Client)
125
125
  client['shared_key'] = 'shared_val'
@@ -137,424 +137,434 @@ end
137
137
  }
138
138
  },
139
139
  'standard_client_unix' => {
140
- :preamble => "start_server(Moneta::Adapters::Memory.new, :socket => File.join(make_tempdir, 'standard_client_unix'))\n",
141
- :store => :Client,
142
- :options => ":socket => File.join(make_tempdir, 'standard_client_unix')",
143
- :specs => STANDARD_SPECS
140
+ preamble: "start_server(Moneta::Adapters::Memory.new, socket: File.join(make_tempdir, 'standard_client_unix'))\n",
141
+ store: :Client,
142
+ options: "socket: File.join(make_tempdir, 'standard_client_unix')",
143
+ specs: STANDARD_SPECS
144
144
  },
145
145
  'standard_restclient' => {
146
- :preamble => "start_restserver\n",
147
- :store => :RestClient,
148
- :options => ":url => 'http://localhost:8808/moneta/'",
149
- :specs => STANDARD_SPECS.without_increment.without_create
146
+ preamble: "start_restserver\n",
147
+ store: :RestClient,
148
+ options: "url: 'http://localhost:8808/moneta/'",
149
+ specs: STANDARD_SPECS.without_increment.without_create
150
150
  },
151
151
  'standard_memory' => {
152
- :store => :Memory,
153
- :specs => STANDARD_SPECS.without_persist
152
+ store: :Memory,
153
+ specs: STANDARD_SPECS.without_persist
154
154
  },
155
155
  'standard_memory_with_expires' => {
156
- :store => :Memory,
157
- :options => ':expires => true',
158
- :specs => STANDARD_SPECS.with_expires.without_persist
156
+ store: :Memory,
157
+ options: 'expires: true',
158
+ specs: STANDARD_SPECS.with_expires.without_persist
159
159
  },
160
160
  'standard_memory_with_compress' => {
161
- :store => :Memory,
162
- :options => ':compress => true',
163
- :load_value => 'Marshal.load(::Zlib::Inflate.inflate(value))',
164
- :specs => STANDARD_SPECS.without_persist
161
+ store: :Memory,
162
+ options: 'compress: true',
163
+ load_value: 'Marshal.load(::Zlib::Inflate.inflate(value))',
164
+ specs: STANDARD_SPECS.without_persist
165
165
  },
166
166
  'standard_memory_with_prefix' => {
167
- :store => :Memory,
168
- :options => ':prefix => "moneta"',
169
- :specs => STANDARD_SPECS.without_persist
167
+ store: :Memory,
168
+ options: 'prefix: "moneta"',
169
+ specs: STANDARD_SPECS.without_persist
170
170
  },
171
171
  'standard_memory_with_json_serializer' => {
172
- :store => :Memory,
173
- :options => ':serializer => :json',
174
- :load_value => '::MultiJson.load(value)',
175
- :specs => STANDARD_SPECS.without_marshallable.simplekeys_only.simplevalues_only.without_persist
172
+ store: :Memory,
173
+ options: 'serializer: :json',
174
+ load_value: '::MultiJson.load(value)',
175
+ specs: STANDARD_SPECS.without_marshallable.simplekeys_only.simplevalues_only.without_persist
176
176
  },
177
177
  'standard_memory_with_json_key_serializer' => {
178
- :store => :Memory,
179
- :options => ':key_serializer => :json',
180
- :specs => STANDARD_SPECS.without_marshallable_key.simplekeys_only.without_persist,
178
+ store: :Memory,
179
+ options: 'key_serializer: :json',
180
+ specs: STANDARD_SPECS.without_marshallable_key.simplekeys_only.without_persist,
181
181
  },
182
182
  'standard_memory_with_json_value_serializer' => {
183
- :store => :Memory,
184
- :options => ':value_serializer => :json',
185
- :specs => STANDARD_SPECS.without_marshallable_value.simplevalues_only.without_persist,
186
- :load_value => '::MultiJson.load(value)'
183
+ store: :Memory,
184
+ options: 'value_serializer: :json',
185
+ specs: STANDARD_SPECS.without_marshallable_value.simplevalues_only.without_persist,
186
+ load_value: '::MultiJson.load(value)'
187
187
  },
188
188
  'standard_memory_with_snappy_compress' => {
189
- :store => :Memory,
190
- :options => ':compress => :snappy',
191
- :load_value => 'Marshal.load(::Snappy.inflate(value))',
192
- :specs => STANDARD_SPECS.without_persist
189
+ store: :Memory,
190
+ options: 'compress: :snappy',
191
+ load_value: 'Marshal.load(::Snappy.inflate(value))',
192
+ specs: STANDARD_SPECS.without_persist
193
193
  },
194
194
  'standard_lruhash' => {
195
- :store => :LRUHash,
196
- :specs => STANDARD_SPECS.without_persist
195
+ store: :LRUHash,
196
+ specs: STANDARD_SPECS.without_persist
197
197
  },
198
198
  'standard_lruhash_with_expires' => {
199
- :store => :LRUHash,
200
- :options => ':expires => true',
201
- :specs => STANDARD_SPECS.with_expires.without_persist,
199
+ store: :LRUHash,
200
+ options: 'expires: true',
201
+ specs: STANDARD_SPECS.with_expires.without_persist,
202
202
  },
203
203
  'standard_file' => {
204
- :store => :File,
205
- :options => ':dir => File.join(make_tempdir, "simple_file")',
206
- :specs => STANDARD_SPECS
204
+ store: :File,
205
+ options: 'dir: File.join(make_tempdir, "simple_file")',
206
+ specs: STANDARD_SPECS
207
207
  },
208
208
  'standard_file_with_expires' => {
209
- :store => :File,
210
- :options => ':dir => File.join(make_tempdir, "simple_file_with_expires"), :expires => true',
211
- :specs => STANDARD_SPECS.with_expires
209
+ store: :File,
210
+ options: 'dir: File.join(make_tempdir, "simple_file_with_expires"), expires: true',
211
+ specs: STANDARD_SPECS.with_expires
212
212
  },
213
213
  'standard_hashfile' => {
214
- :store => :HashFile,
215
- :options => ':dir => File.join(make_tempdir, "simple_hashfile")',
216
- :specs => STANDARD_SPECS
214
+ store: :HashFile,
215
+ options: 'dir: File.join(make_tempdir, "simple_hashfile")',
216
+ specs: STANDARD_SPECS
217
217
  },
218
218
  'standard_hashfile_with_expires' => {
219
- :store => :HashFile,
220
- :options => ':dir => File.join(make_tempdir, "simple_hashfile_with_expires"), :expires => true',
221
- :specs => STANDARD_SPECS.with_expires
219
+ store: :HashFile,
220
+ options: 'dir: File.join(make_tempdir, "simple_hashfile_with_expires"), expires: true',
221
+ specs: STANDARD_SPECS.with_expires
222
222
  },
223
223
  'standard_cassandra' => {
224
- :store => :Cassandra,
225
- :options => ':keyspace => "simple_cassandra"',
226
- :specs => STANDARD_SPECS.without_increment.without_create.with_native_expires,
224
+ store: :Cassandra,
225
+ options: 'keyspace: "simple_cassandra"',
226
+ specs: STANDARD_SPECS.without_increment.without_create.with_native_expires,
227
227
  },
228
228
  'standard_hbase' => {
229
- :store => :HBase,
230
- :options => ':table => "simple_hbase"',
231
- :specs => STANDARD_SPECS.without_create
229
+ store: :HBase,
230
+ options: 'table: "simple_hbase"',
231
+ specs: STANDARD_SPECS.without_create
232
232
  },
233
233
  'standard_hbase_with_expires' => {
234
- :store => :HBase,
235
- :options => ':table => "simple_hbase", :expires => true',
236
- :specs => STANDARD_SPECS.with_expires,
234
+ store: :HBase,
235
+ options: 'table: "simple_hbase", expires: true',
236
+ specs: STANDARD_SPECS.with_expires,
237
237
  },
238
238
  'standard_dbm' => {
239
- :store => :DBM,
240
- :options => ':file => File.join(make_tempdir, "simple_dbm")',
241
- :specs => STANDARD_SPECS.without_multiprocess
239
+ store: :DBM,
240
+ options: 'file: File.join(make_tempdir, "simple_dbm")',
241
+ specs: STANDARD_SPECS.without_multiprocess
242
242
  },
243
243
  'standard_dbm_with_expires' => {
244
- :store => :DBM,
245
- :options => ':file => File.join(make_tempdir, "simple_dbm_with_expires"), :expires => true',
246
- :specs => STANDARD_SPECS.without_multiprocess.with_expires
244
+ store: :DBM,
245
+ options: 'file: File.join(make_tempdir, "simple_dbm_with_expires"), expires: true',
246
+ specs: STANDARD_SPECS.without_multiprocess.with_expires
247
247
  },
248
248
  'standard_tdb' => {
249
- :store => :TDB,
250
- :options => ':file => File.join(make_tempdir, "simple_tdb")',
251
- :specs => STANDARD_SPECS.without_multiprocess
249
+ store: :TDB,
250
+ options: 'file: File.join(make_tempdir, "simple_tdb")',
251
+ specs: STANDARD_SPECS.without_multiprocess
252
252
  },
253
253
  'standard_tdb_with_expires' => {
254
- :store => :TDB,
255
- :options => ':file => File.join(make_tempdir, "simple_tdb_with_expires"), :expires => true',
256
- :specs => STANDARD_SPECS.without_multiprocess.with_expires
254
+ store: :TDB,
255
+ options: 'file: File.join(make_tempdir, "simple_tdb_with_expires"), expires: true',
256
+ specs: STANDARD_SPECS.without_multiprocess.with_expires
257
257
  },
258
258
  'standard_daybreak' => {
259
- :store => :Daybreak,
260
- :options => ':file => File.join(make_tempdir, "simple_daybreak")',
261
- :specs => STANDARD_SPECS.without_multiprocess
259
+ store: :Daybreak,
260
+ options: 'file: File.join(make_tempdir, "simple_daybreak")',
261
+ specs: STANDARD_SPECS.without_multiprocess
262
262
  },
263
263
  'standard_daybreak_with_expires' => {
264
- :store => :Daybreak,
265
- :options => ':file => File.join(make_tempdir, "simple_daybreak_with_expires"), :expires => true',
266
- :specs => STANDARD_SPECS.without_multiprocess.with_expires
264
+ store: :Daybreak,
265
+ options: 'file: File.join(make_tempdir, "simple_daybreak_with_expires"), expires: true',
266
+ specs: STANDARD_SPECS.without_multiprocess.with_expires
267
267
  },
268
268
  'standard_gdbm' => {
269
- :store => :GDBM,
270
- :options => ':file => File.join(make_tempdir, "simple_gdbm")',
271
- :specs => STANDARD_SPECS.without_multiprocess
269
+ store: :GDBM,
270
+ options: 'file: File.join(make_tempdir, "simple_gdbm")',
271
+ specs: STANDARD_SPECS.without_multiprocess
272
272
  },
273
273
  'standard_gdbm_with_expires' => {
274
- :store => :GDBM,
275
- :options => ':file => File.join(make_tempdir, "simple_gdbm_with_expires"), :expires => true',
276
- :specs => STANDARD_SPECS.without_multiprocess.with_expires
274
+ store: :GDBM,
275
+ options: 'file: File.join(make_tempdir, "simple_gdbm_with_expires"), expires: true',
276
+ specs: STANDARD_SPECS.without_multiprocess.with_expires
277
277
  },
278
278
  'standard_sdbm' => {
279
- :store => :SDBM,
280
- :options => ':file => File.join(make_tempdir, "simple_sdbm")',
281
- :specs => STANDARD_SPECS.without_multiprocess.without_large
279
+ store: :SDBM,
280
+ options: 'file: File.join(make_tempdir, "simple_sdbm")',
281
+ specs: STANDARD_SPECS.without_multiprocess.without_large
282
282
  },
283
283
  'standard_sdbm_with_expires' => {
284
- :store => :SDBM,
285
- :options => ':file => File.join(make_tempdir, "simple_sdbm_with_expires"), :expires => true',
286
- :specs => STANDARD_SPECS.without_multiprocess.with_expires.without_large
284
+ store: :SDBM,
285
+ options: 'file: File.join(make_tempdir, "simple_sdbm_with_expires"), expires: true',
286
+ specs: STANDARD_SPECS.without_multiprocess.with_expires.without_large
287
287
  },
288
288
  'standard_leveldb' => {
289
- :store => :LevelDB,
290
- :options => ':dir => File.join(make_tempdir, "simple_leveldb")',
291
- :specs => STANDARD_SPECS.without_multiprocess
289
+ store: :LevelDB,
290
+ options: 'dir: File.join(make_tempdir, "simple_leveldb")',
291
+ specs: STANDARD_SPECS.without_multiprocess
292
292
  },
293
293
  'standard_leveldb_with_expires' => {
294
- :store => :LevelDB,
295
- :options => ':dir => File.join(make_tempdir, "simple_leveldb_with_expires"), :expires => true',
296
- :specs => STANDARD_SPECS.without_multiprocess.with_expires
294
+ store: :LevelDB,
295
+ options: 'dir: File.join(make_tempdir, "simple_leveldb_with_expires"), expires: true',
296
+ specs: STANDARD_SPECS.without_multiprocess.with_expires
297
297
  },
298
298
  'standard_lmdb' => {
299
- :store => :LMDB,
300
- :options => ':dir => File.join(make_tempdir, "simple_lmdb")',
301
- :specs => STANDARD_SPECS.without_concurrent
299
+ store: :LMDB,
300
+ options: 'dir: File.join(make_tempdir, "simple_lmdb")',
301
+ specs: STANDARD_SPECS.without_concurrent
302
302
  },
303
303
  'standard_lmdb_with_expires' => {
304
- :store => :LMDB,
305
- :options => ':dir => File.join(make_tempdir, "simple_lmdb_with_expires"), :expires => true',
306
- :specs => STANDARD_SPECS.without_concurrent.with_expires
304
+ store: :LMDB,
305
+ options: 'dir: File.join(make_tempdir, "simple_lmdb_with_expires"), expires: true',
306
+ specs: STANDARD_SPECS.without_concurrent.with_expires
307
307
  },
308
308
  'standard_pstore' => {
309
- :store => :PStore,
310
- :options => ':file => File.join(make_tempdir, "simple_pstore")',
311
- :load_value => 'value',
312
- :specs => STANDARD_SPECS
309
+ store: :PStore,
310
+ options: 'file: File.join(make_tempdir, "simple_pstore")',
311
+ load_value: 'value',
312
+ specs: STANDARD_SPECS
313
313
  },
314
314
  'standard_pstore_with_expires' => {
315
- :store => :PStore,
316
- :options => ':file => File.join(make_tempdir, "simple_pstore_with_expires"), :expires => true',
317
- :load_value => 'value',
318
- :specs => STANDARD_SPECS.with_expires
315
+ store: :PStore,
316
+ options: 'file: File.join(make_tempdir, "simple_pstore_with_expires"), expires: true',
317
+ load_value: 'value',
318
+ specs: STANDARD_SPECS.with_expires
319
319
  },
320
320
  'standard_yaml' => {
321
- :store => :YAML,
322
- :options => ':file => File.join(make_tempdir, "simple_yaml")',
323
- :specs => STANDARD_SPECS.without_marshallable_value.without_concurrent,
324
- :load_value => 'value'
321
+ store: :YAML,
322
+ options: 'file: File.join(make_tempdir, "simple_yaml")',
323
+ specs: STANDARD_SPECS.without_marshallable_value.without_concurrent,
324
+ load_value: 'value'
325
325
  },
326
326
  'standard_yaml_with_expires' => {
327
- :store => :YAML,
328
- :options => ':file => File.join(make_tempdir, "simple_yaml_with_expires"), :expires => true',
329
- :specs => STANDARD_SPECS.without_marshallable_value.with_expires.without_concurrent,
330
- :load_value => 'value'
327
+ store: :YAML,
328
+ options: 'file: File.join(make_tempdir, "simple_yaml_with_expires"), expires: true',
329
+ specs: STANDARD_SPECS.without_marshallable_value.with_expires.without_concurrent,
330
+ load_value: 'value'
331
331
  },
332
332
  'standard_localmemcache' => {
333
- :store => :LocalMemCache,
334
- :options => ':file => File.join(make_tempdir, "simple_localmemcache")',
335
- :specs => STANDARD_SPECS.without_increment.without_create
333
+ store: :LocalMemCache,
334
+ options: 'file: File.join(make_tempdir, "simple_localmemcache")',
335
+ specs: STANDARD_SPECS.without_increment.without_create
336
336
  },
337
337
  'standard_localmemcache_with_expires' => {
338
- :store => :LocalMemCache,
339
- :options => ':file => File.join(make_tempdir, "simple_localmemcache_with_expires"), :expires => true',
340
- :specs => STANDARD_SPECS.without_increment.without_create.with_expires
338
+ store: :LocalMemCache,
339
+ options: 'file: File.join(make_tempdir, "simple_localmemcache_with_expires"), expires: true',
340
+ specs: STANDARD_SPECS.without_increment.without_create.with_expires
341
341
  },
342
342
  'standard_tokyocabinet' => {
343
- :store => :TokyoCabinet,
344
- :options => ':file => File.join(make_tempdir, "simple_tokyocabinet")',
345
- :specs => STANDARD_SPECS.without_multiprocess
343
+ store: :TokyoCabinet,
344
+ options: 'file: File.join(make_tempdir, "simple_tokyocabinet")',
345
+ specs: STANDARD_SPECS.without_multiprocess
346
346
  },
347
347
  'standard_tokyocabinet_with_expires' => {
348
- :store => :TokyoCabinet,
349
- :options => ':file => File.join(make_tempdir, "simple_tokyocabinet_with_expires"), :expires => true',
350
- :specs => STANDARD_SPECS.without_multiprocess.with_expires
348
+ store: :TokyoCabinet,
349
+ options: 'file: File.join(make_tempdir, "simple_tokyocabinet_with_expires"), expires: true',
350
+ specs: STANDARD_SPECS.without_multiprocess.with_expires
351
351
  },
352
352
  'standard_tokyotyrant' => {
353
- :store => :TokyoTyrant,
354
- :specs => STANDARD_SPECS
353
+ store: :TokyoTyrant,
354
+ specs: STANDARD_SPECS
355
355
  },
356
356
  'standard_tokyotyrant_with_expires' => {
357
- :store => :TokyoTyrant,
358
- :options => ':expires => true',
359
- :specs => STANDARD_SPECS.with_expires
357
+ store: :TokyoTyrant,
358
+ options: 'expires: true',
359
+ specs: STANDARD_SPECS.with_expires
360
360
  },
361
361
  'standard_kyotocabinet' => {
362
- :store => :KyotoCabinet,
363
- :options => ':file => File.join(make_tempdir, "simple_kyotocabinet.kch")',
364
- :specs => STANDARD_SPECS.without_multiprocess
362
+ store: :KyotoCabinet,
363
+ options: 'file: File.join(make_tempdir, "simple_kyotocabinet.kch")',
364
+ specs: STANDARD_SPECS.without_multiprocess
365
365
  },
366
366
  'standard_kyotocabinet_with_expires' => {
367
- :store => :KyotoCabinet,
368
- :options => ':file => File.join(make_tempdir, "simple_kyotocabinet_with_expires.kch"), :expires => true',
369
- :specs => STANDARD_SPECS.without_multiprocess.with_expires
367
+ store: :KyotoCabinet,
368
+ options: 'file: File.join(make_tempdir, "simple_kyotocabinet_with_expires.kch"), expires: true',
369
+ specs: STANDARD_SPECS.without_multiprocess.with_expires
370
370
  },
371
371
  'standard_sqlite' => {
372
- :store => :Sqlite,
373
- :options => ':file => File.join(make_tempdir, "simple_sqlite")',
374
- :specs => STANDARD_SPECS.without_concurrent
372
+ store: :Sqlite,
373
+ options: 'file: File.join(make_tempdir, "simple_sqlite")',
374
+ specs: STANDARD_SPECS.without_concurrent
375
375
  },
376
376
  'standard_sqlite_with_expires' => {
377
- :store => :Sqlite,
378
- :options => ':file => File.join(make_tempdir, "simple_sqlite_with_expires"), :expires => true',
379
- :specs => STANDARD_SPECS.with_expires.without_concurrent
377
+ store: :Sqlite,
378
+ options: 'file: File.join(make_tempdir, "simple_sqlite_with_expires"), expires: true',
379
+ specs: STANDARD_SPECS.with_expires.without_concurrent
380
380
  },
381
381
  'standard_redis' => {
382
- :store => :Redis,
383
- :specs => STANDARD_SPECS.with_native_expires,
382
+ store: :Redis,
383
+ specs: STANDARD_SPECS.with_native_expires,
384
384
  },
385
385
  'standard_memcached' => {
386
- :store => :Memcached,
387
- :specs => STANDARD_SPECS.with_native_expires,
388
- :options => ':namespace => "simple_memcached"'
386
+ store: :Memcached,
387
+ specs: STANDARD_SPECS.with_native_expires,
388
+ options: 'namespace: "simple_memcached"'
389
389
  },
390
390
  'standard_memcached_dalli' => {
391
- :store => :MemcachedDalli,
392
- :specs => STANDARD_SPECS.with_native_expires,
393
- :options => ':namespace => "simple_memcached_dalli"'
391
+ store: :MemcachedDalli,
392
+ specs: STANDARD_SPECS.with_native_expires,
393
+ options: 'namespace: "simple_memcached_dalli"'
394
394
  },
395
395
  'standard_memcached_native' => {
396
- :store => :MemcachedNative,
397
- :specs => STANDARD_SPECS.with_native_expires,
398
- :options => ':namespace => "simple_memcached_native"'
396
+ store: :MemcachedNative,
397
+ specs: STANDARD_SPECS.with_native_expires,
398
+ options: 'namespace: "simple_memcached_native"'
399
399
  },
400
400
  'standard_riak' => {
401
- :store => :Riak,
402
- :options => ":bucket => 'standard_riak'",
401
+ store: :Riak,
402
+ options: "bucket: 'standard_riak'",
403
403
  # We don't want Riak warnings in tests
404
- :preamble => "require 'riak'\n\nRiak.disable_list_keys_warnings = true\n\n",
405
- :specs => STANDARD_SPECS.without_increment.without_create
404
+ preamble: "require 'riak'\n\nRiak.disable_list_keys_warnings = true\n\n",
405
+ specs: STANDARD_SPECS.without_increment.without_create
406
406
  },
407
407
  'standard_riak_with_expires' => {
408
- :store => :Riak,
409
- :options => ":bucket => 'standard_riak_with_expires', :expires => true",
408
+ store: :Riak,
409
+ options: "bucket: 'standard_riak_with_expires', expires: true",
410
410
  # We don't want Riak warnings in tests
411
- :preamble => "require 'riak'\n\nRiak.disable_list_keys_warnings = true\n\n",
412
- :specs => STANDARD_SPECS.without_increment.with_expires.without_create
411
+ preamble: "require 'riak'\n\nRiak.disable_list_keys_warnings = true\n\n",
412
+ specs: STANDARD_SPECS.without_increment.with_expires.without_create
413
413
  },
414
414
  'standard_couch' => {
415
- :store => :Couch,
416
- :options => ":db => 'standard_couch'",
417
- :load_value => '::Marshal.load(value.unpack(\'m\').first)',
418
- :specs => STANDARD_SPECS.without_increment
415
+ store: :Couch,
416
+ options: "db: 'standard_couch'",
417
+ load_value: '::Marshal.load(value.unpack(\'m\').first)',
418
+ specs: STANDARD_SPECS.without_increment
419
419
  },
420
420
  'standard_couch_with_expires' => {
421
- :store => :Couch,
422
- :options => ":db => 'standard_couch_with_expires', :expires => true",
423
- :specs => STANDARD_SPECS.without_increment.with_expires,
424
- :load_value => '::Marshal.load(value.unpack(\'m\').first)'
421
+ store: :Couch,
422
+ options: "db: 'standard_couch_with_expires', expires: true",
423
+ specs: STANDARD_SPECS.without_increment.with_expires,
424
+ load_value: '::Marshal.load(value.unpack(\'m\').first)'
425
425
  },
426
426
  'standard_mongo' => {
427
- :store => :Mongo,
428
- :options => ":db => 'standard_mongo'",
429
- :specs => STANDARD_SPECS.with_native_expires
427
+ store: :Mongo,
428
+ options: "db: 'standard_mongo'",
429
+ specs: STANDARD_SPECS.with_native_expires
430
+ },
431
+ 'standard_mongo_moped' => {
432
+ store: :MongoMoped,
433
+ options: "db: 'standard_mongo_moped'",
434
+ specs: STANDARD_SPECS.with_native_expires
435
+ },
436
+ 'standard_mongo_official' => {
437
+ store: :MongoOfficial,
438
+ options: "db: 'standard_mongo_official'",
439
+ specs: STANDARD_SPECS.with_native_expires
430
440
  },
431
441
  'standard_null' => {
432
- :store => :Null,
433
- :specs => STANDARD_SPECS.without_increment.without_create.without_store.without_persist
442
+ store: :Null,
443
+ specs: STANDARD_SPECS.without_increment.without_create.without_store.without_persist
434
444
  },
435
445
  'null_adapter' => {
436
- :build => 'Moneta::Adapters::Null.new',
437
- :specs => Specs.new(:specs => [:null, :not_increment, :not_create, :not_persist])
446
+ build: 'Moneta::Adapters::Null.new',
447
+ specs: Specs.new(specs: [:null, :not_increment, :not_create, :not_persist])
438
448
  },
439
449
  'standard_sequel' => {
440
- :store => :Sequel,
441
- :options => ':db => (defined?(JRUBY_VERSION) ? "jdbc:mysql://localhost/moneta?user=root" : "mysql2://root:@localhost/moneta"), :table => "simple_sequel"',
442
- :load_value => '::Marshal.load(value)',
443
- :specs => STANDARD_SPECS
450
+ store: :Sequel,
451
+ options: 'db: (defined?(JRUBY_VERSION) ? "jdbc:mysql://localhost/moneta?user=root" : "mysql2://root:@localhost/moneta"), table: "simple_sequel"',
452
+ load_value: '::Marshal.load(value)',
453
+ specs: STANDARD_SPECS
444
454
  },
445
455
  'standard_sequel_with_expires' => {
446
- :store => :Sequel,
447
- :options => ':db => (defined?(JRUBY_VERSION) ? "jdbc:mysql://localhost/moneta?user=root" : "mysql2://root:@localhost/moneta"), :table => "simple_sequel_with_expires", :expires => true',
448
- :specs => STANDARD_SPECS.with_expires,
449
- :load_value => '::Marshal.load(value)'
456
+ store: :Sequel,
457
+ options: 'db: (defined?(JRUBY_VERSION) ? "jdbc:mysql://localhost/moneta?user=root" : "mysql2://root:@localhost/moneta"), table: "simple_sequel_with_expires", expires: true',
458
+ specs: STANDARD_SPECS.with_expires,
459
+ load_value: '::Marshal.load(value)'
450
460
  },
451
461
  'standard_datamapper' => {
452
- :store => :DataMapper,
453
- :specs => STANDARD_SPECS.without_increment,
454
- :options => ':setup => "mysql://root:@localhost/moneta", :table => "simple_datamapper"',
462
+ store: :DataMapper,
463
+ specs: STANDARD_SPECS.without_increment,
464
+ options: 'setup: "mysql://root:@localhost/moneta", table: "simple_datamapper"',
455
465
  # DataMapper needs default repository to be setup
456
- :preamble => "require 'dm-core'\nDataMapper.setup(:default, :adapter => :in_memory)\n",
457
- :load_value => '::Marshal.load(value.unpack(\'m\').first)'
466
+ preamble: "require 'dm-core'\nDataMapper.setup(:default, adapter: :in_memory)\n",
467
+ load_value: '::Marshal.load(value.unpack(\'m\').first)'
458
468
  },
459
469
  'standard_datamapper_with_expires' => {
460
- :store => :DataMapper,
461
- :options => ':setup => "mysql://root:@localhost/moneta", :table => "simple_datamapper_with_expires", :expires => true',
470
+ store: :DataMapper,
471
+ options: 'setup: "mysql://root:@localhost/moneta", table: "simple_datamapper_with_expires", expires: true',
462
472
  # DataMapper needs default repository to be setup
463
- :preamble => "require 'dm-core'\nDataMapper.setup(:default, :adapter => :in_memory)\n",
464
- :specs => STANDARD_SPECS.without_increment.with_expires,
465
- :load_value => '::Marshal.load(value.unpack(\'m\').first)'
473
+ preamble: "require 'dm-core'\nDataMapper.setup(:default, adapter: :in_memory)\n",
474
+ specs: STANDARD_SPECS.without_increment.with_expires,
475
+ load_value: '::Marshal.load(value.unpack(\'m\').first)'
466
476
  },
467
477
  'standard_datamapper_with_repository' => {
468
- :store => :DataMapper,
469
- :specs => STANDARD_SPECS.without_increment,
470
- :options => ':repository => :repo, :setup => "mysql://root:@localhost/moneta", :table => "simple_datamapper_with_repository"',
478
+ store: :DataMapper,
479
+ specs: STANDARD_SPECS.without_increment,
480
+ options: 'repository: :repo, setup: "mysql://root:@localhost/moneta", table: "simple_datamapper_with_repository"',
471
481
  # DataMapper needs default repository to be setup
472
- :preamble => "require 'dm-core'\nDataMapper.setup(:default, :adapter => :in_memory)\n",
473
- :load_value => '::Marshal.load(value.unpack(\'m\').first)'
482
+ preamble: "require 'dm-core'\nDataMapper.setup(:default, adapter: :in_memory)\n",
483
+ load_value: '::Marshal.load(value.unpack(\'m\').first)'
474
484
  },
475
485
  'standard_activerecord' => {
476
- :store => :ActiveRecord,
477
- :specs => STANDARD_SPECS,
478
- :options => ":table => 'standard_activerecord', :connection => { :adapter => (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), :database => 'moneta', :username => 'root' }",
479
- :load_value => '::Marshal.load(value.unpack(\'m\').first)'
486
+ store: :ActiveRecord,
487
+ specs: STANDARD_SPECS,
488
+ options: "table: 'standard_activerecord', connection: { adapter: (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), database: 'moneta', username: 'root' }",
489
+ load_value: '::Marshal.load(value.unpack(\'m\').first)'
480
490
  },
481
491
  'standard_activerecord_with_expires' => {
482
- :store => :ActiveRecord,
483
- :options => ":table => 'standard_activerecord_with_expires', :connection => { :adapter => (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), :database => 'moneta', :username => 'root' }, :expires => true",
484
- :specs => STANDARD_SPECS.with_expires,
485
- :load_value => '::Marshal.load(value.unpack(\'m\').first)'
492
+ store: :ActiveRecord,
493
+ options: "table: 'standard_activerecord_with_expires', connection: { adapter: (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), database: 'moneta', username: 'root' }, expires: true",
494
+ specs: STANDARD_SPECS.with_expires,
495
+ load_value: '::Marshal.load(value.unpack(\'m\').first)'
486
496
  },
487
497
  'standard_fog' => {
488
- :store => :Fog,
489
- :specs => STANDARD_SPECS.without_increment.without_create,
490
- :options => ":aws_access_key_id => 'fake_access_key_id',
491
- :aws_secret_access_key => 'fake_secret_access_key',
492
- :provider => 'AWS',
493
- :dir => 'standard_fog'",
498
+ store: :Fog,
499
+ specs: STANDARD_SPECS.without_increment.without_create,
500
+ options: "aws_access_key_id: 'fake_access_key_id',
501
+ aws_secret_access_key: 'fake_secret_access_key',
502
+ provider: 'AWS',
503
+ dir: 'standard_fog'",
494
504
  # Put Fog into testing mode
495
- :preamble => "require 'fog'\nFog.mock!\n"
505
+ preamble: "require 'fog'\nFog.mock!\n"
496
506
  },
497
507
  'standard_fog_with_expires' => {
498
- :store => :Fog,
499
- :options => ":aws_access_key_id => 'fake_access_key_id',
500
- :aws_secret_access_key => 'fake_secret_access_key',
501
- :provider => 'AWS',
502
- :dir => 'standard_fog_with_expires',
503
- :expires => true",
508
+ store: :Fog,
509
+ options: "aws_access_key_id: 'fake_access_key_id',
510
+ aws_secret_access_key: 'fake_secret_access_key',
511
+ provider: 'AWS',
512
+ dir: 'standard_fog_with_expires',
513
+ expires: true",
504
514
  # Put Fog into testing mode
505
- :preamble => "require 'fog'\nFog.mock!\n",
506
- :specs => STANDARD_SPECS.without_increment.without_create.with_expires
515
+ preamble: "require 'fog'\nFog.mock!\n",
516
+ specs: STANDARD_SPECS.without_increment.without_create.with_expires
507
517
  },
508
518
  'weak_create' => {
509
519
  # Put Fog into testing mode
510
- :preamble => "require 'fog'\nFog.mock!\n",
511
- :build => %{Moneta.build do
520
+ preamble: "require 'fog'\nFog.mock!\n",
521
+ build: %{Moneta.build do
512
522
  use :WeakCreate
513
523
  adapter :Fog,
514
- :aws_access_key_id => 'fake_access_key_id',
515
- :aws_secret_access_key => 'fake_secret_access_key',
516
- :provider => 'AWS',
517
- :dir => 'weak_create'
524
+ aws_access_key_id: 'fake_access_key_id',
525
+ aws_secret_access_key: 'fake_secret_access_key',
526
+ provider: 'AWS',
527
+ dir: 'weak_create'
518
528
  end},
519
- :specs => ADAPTER_SPECS.without_increment.without_concurrent.returnsame
529
+ specs: ADAPTER_SPECS.without_increment.without_concurrent.returnsame
520
530
  },
521
531
  'weak_increment' => {
522
532
  # Put Fog into testing mode
523
- :preamble => "require 'fog'\nFog.mock!\n",
524
- :build => %{Moneta.build do
533
+ preamble: "require 'fog'\nFog.mock!\n",
534
+ build: %{Moneta.build do
525
535
  use :WeakIncrement
526
536
  adapter :Fog,
527
- :aws_access_key_id => 'fake_access_key_id',
528
- :aws_secret_access_key => 'fake_secret_access_key',
529
- :provider => 'AWS',
530
- :dir => 'weak_increment'
537
+ aws_access_key_id: 'fake_access_key_id',
538
+ aws_secret_access_key: 'fake_secret_access_key',
539
+ provider: 'AWS',
540
+ dir: 'weak_increment'
531
541
  end},
532
- :specs => ADAPTER_SPECS.without_create.without_concurrent.returnsame
542
+ specs: ADAPTER_SPECS.without_create.without_concurrent.returnsame
533
543
  },
534
544
  'expires_memory' => {
535
- :build => %{Moneta.build do
545
+ build: %{Moneta.build do
536
546
  use :Expires
537
547
  adapter :Memory
538
548
  end},
539
- :specs => STANDARD_SPECS.without_transform.with_expires.without_persist.returnsame
549
+ specs: STANDARD_SPECS.without_transform.with_expires.without_persist.returnsame
540
550
  },
541
551
  'expires_memory_with_default_expires' => {
542
- :build => %{Moneta.build do
543
- use :Expires, :expires => 1
552
+ build: %{Moneta.build do
553
+ use :Expires, expires: 1
544
554
  adapter :Memory
545
555
  end},
546
- :specs => STANDARD_SPECS.without_transform.with_expires.with_default_expires.without_persist.returnsame
556
+ specs: STANDARD_SPECS.without_transform.with_expires.with_default_expires.without_persist.returnsame
547
557
  },
548
558
  'expires_file' => {
549
- :build => %{Moneta.build do
559
+ build: %{Moneta.build do
550
560
  use :Expires
551
- use :Transformer, :key => [:marshal, :escape], :value => :marshal
552
- adapter :File, :dir => File.join(make_tempdir, "expires-file")
561
+ use :Transformer, key: [:marshal, :escape], value: :marshal
562
+ adapter :File, dir: File.join(make_tempdir, "expires-file")
553
563
  end},
554
- :specs => STANDARD_SPECS.with_expires.stringvalues_only,
555
- :tests => %{
564
+ specs: STANDARD_SPECS.with_expires.stringvalues_only,
565
+ tests: %{
556
566
  it 'deletes expired value in underlying file storage' do
557
- store.store('foo', 'bar', :expires => 2)
567
+ store.store('foo', 'bar', expires: 2)
558
568
  store['foo'].should == 'bar'
559
569
  sleep 1
560
570
  store['foo'].should == 'bar'
@@ -566,31 +576,31 @@ end
566
576
  }
567
577
  },
568
578
  'proxy_redis' => {
569
- :build => %{Moneta.build do
579
+ build: %{Moneta.build do
570
580
  use :Proxy
571
581
  use :Proxy
572
582
  adapter :Redis
573
583
  end},
574
- :specs => ADAPTER_SPECS.with_expires
584
+ specs: ADAPTER_SPECS.with_expires
575
585
  },
576
586
  'proxy_expires_memory' => {
577
- :build => %{Moneta.build do
587
+ build: %{Moneta.build do
578
588
  use :Proxy
579
589
  use :Expires
580
590
  use :Proxy
581
591
  adapter :Memory
582
592
  end},
583
- :specs => STANDARD_SPECS.without_transform.with_expires.returnsame.without_persist
593
+ specs: STANDARD_SPECS.without_transform.with_expires.returnsame.without_persist
584
594
  },
585
595
  'cache_file_memory' => {
586
- :build => %{Moneta.build do
596
+ build: %{Moneta.build do
587
597
  use(:Cache) do
588
- adapter { adapter :File, :dir => File.join(make_tempdir, "cache_file_memory") }
598
+ adapter { adapter :File, dir: File.join(make_tempdir, "cache_file_memory") }
589
599
  cache { adapter :Memory }
590
600
  end
591
601
  end},
592
- :specs => ADAPTER_SPECS.returnsame,
593
- :tests => %{
602
+ specs: ADAPTER_SPECS.returnsame,
603
+ tests: %{
594
604
  it 'stores loaded values in cache' do
595
605
  store.adapter['foo'] = 'bar'
596
606
  store.cache['foo'].should be_nil
@@ -604,22 +614,22 @@ end
604
614
  }
605
615
  },
606
616
  'cache_memory_null' => {
607
- :build => %{Moneta.build do
617
+ build: %{Moneta.build do
608
618
  use(:Cache) do
609
619
  adapter(Moneta::Adapters::Memory.new)
610
620
  cache(Moneta::Adapters::Null.new)
611
621
  end
612
622
  end},
613
- :specs => ADAPTER_SPECS.without_persist.returnsame
623
+ specs: ADAPTER_SPECS.without_persist.returnsame
614
624
  },
615
625
  'shared_tcp' => {
616
- :build => %{Moneta.build do
617
- use(:Shared, :port => 9001) do
618
- adapter :PStore, :file => File.join(make_tempdir, 'shared_tcp')
626
+ build: %{Moneta.build do
627
+ use(:Shared, port: 9001) do
628
+ adapter :PStore, file: File.join(make_tempdir, 'shared_tcp')
619
629
  end
620
630
  end},
621
- :specs => ADAPTER_SPECS,
622
- :tests => %{
631
+ specs: ADAPTER_SPECS,
632
+ tests: %{
623
633
  it 'shares values' do
624
634
  store['shared_key'] = 'shared_value'
625
635
  second = new_store
@@ -630,13 +640,13 @@ end
630
640
  }
631
641
  },
632
642
  'shared_unix' => {
633
- :build => %{Moneta.build do
634
- use(:Shared, :socket => File.join(make_tempdir, 'shared_unix.socket')) do
635
- adapter :PStore, :file => File.join(make_tempdir, 'shared_unix')
643
+ build: %{Moneta.build do
644
+ use(:Shared, socket: File.join(make_tempdir, 'shared_unix.socket')) do
645
+ adapter :PStore, file: File.join(make_tempdir, 'shared_unix')
636
646
  end
637
647
  end},
638
- :specs => ADAPTER_SPECS,
639
- :tests => %{
648
+ specs: ADAPTER_SPECS,
649
+ tests: %{
640
650
  it 'shares values' do
641
651
  store['shared_key'] = 'shared_value'
642
652
  second = new_store
@@ -647,165 +657,165 @@ end
647
657
  }
648
658
  },
649
659
  'stack_file_memory' => {
650
- :build => %{Moneta.build do
660
+ build: %{Moneta.build do
651
661
  use(:Stack) do
652
662
  add(Moneta.new(:Null))
653
663
  add(Moneta::Adapters::Null.new)
654
- add { adapter :File, :dir => File.join(make_tempdir, "stack_file_memory") }
664
+ add { adapter :File, dir: File.join(make_tempdir, "stack_file_memory") }
655
665
  add { adapter :Memory }
656
666
  end
657
667
  end},
658
- :specs => ADAPTER_SPECS.without_increment.without_create
668
+ specs: ADAPTER_SPECS.without_increment.without_create
659
669
  },
660
670
  'stack_memory_file' => {
661
- :build => %{Moneta.build do
671
+ build: %{Moneta.build do
662
672
  use(:Stack) do
663
673
  add { adapter :Memory }
664
- add { adapter :File, :dir => File.join(make_tempdir, "stack_memory_file") }
674
+ add { adapter :File, dir: File.join(make_tempdir, "stack_memory_file") }
665
675
  end
666
676
  end},
667
- :specs => ADAPTER_SPECS.returnsame
677
+ specs: ADAPTER_SPECS.returnsame
668
678
  },
669
679
  'lock' => {
670
- :build => %{Moneta.build do
680
+ build: %{Moneta.build do
671
681
  use :Lock
672
682
  adapter :Memory
673
683
  end},
674
- :specs => STANDARD_SPECS.without_transform.returnsame.without_persist
684
+ specs: STANDARD_SPECS.without_transform.returnsame.without_persist
675
685
  },
676
686
  'pool' => {
677
- :build => %{Moneta.build do
687
+ build: %{Moneta.build do
678
688
  use :Pool do
679
- adapter :File, :dir => File.join(make_tempdir, "pool")
689
+ adapter :File, dir: File.join(make_tempdir, "pool")
680
690
  end
681
691
  end},
682
- :specs => ADAPTER_SPECS
692
+ specs: ADAPTER_SPECS
683
693
  },
684
694
  'transformer_zlib' => {
685
- :build => %{Moneta.build do
686
- use :Transformer, :value => :zlib
695
+ build: %{Moneta.build do
696
+ use :Transformer, value: :zlib
687
697
  adapter :Memory
688
698
  end},
689
- :specs => TRANSFORMER_SPECS.stringvalues_only,
690
- :load_value => '::Zlib::Inflate.inflate(value)',
691
- :tests => %{
699
+ specs: TRANSFORMER_SPECS.stringvalues_only,
700
+ load_value: '::Zlib::Inflate.inflate(value)',
701
+ tests: %{
692
702
  it 'compile transformer class' do
693
703
  store.should_not be_nil
694
704
  Moneta::Transformer::ZlibValue.should_not be_nil
695
705
  end}
696
706
  },
697
707
  'transformer_bzip2' => {
698
- :build => %{Moneta.build do
699
- use :Transformer, :value => :bzip2
708
+ build: %{Moneta.build do
709
+ use :Transformer, value: :bzip2
700
710
  adapter :Memory
701
711
  end},
702
- :specs => TRANSFORMER_SPECS.stringvalues_only,
703
- :load_value => '::Bzip2.uncompress(value)',
704
- :tests => %{
712
+ specs: TRANSFORMER_SPECS.stringvalues_only,
713
+ load_value: '::Bzip2.uncompress(value)',
714
+ tests: %{
705
715
  it 'compile transformer class' do
706
716
  store.should_not be_nil
707
717
  Moneta::Transformer::Bzip2Value.should_not be_nil
708
718
  end}
709
719
  },
710
720
  'transformer_lzo' => {
711
- :build => %{Moneta.build do
712
- use :Transformer, :value => :lzo
721
+ build: %{Moneta.build do
722
+ use :Transformer, value: :lzo
713
723
  adapter :Memory
714
724
  end},
715
- :specs => TRANSFORMER_SPECS.stringvalues_only,
716
- :load_value => '::LZO.decompress(value)',
717
- :tests => %{
725
+ specs: TRANSFORMER_SPECS.stringvalues_only,
726
+ load_value: '::LZO.decompress(value)',
727
+ tests: %{
718
728
  it 'compile transformer class' do
719
729
  store.should_not be_nil
720
730
  Moneta::Transformer::LzoValue.should_not be_nil
721
731
  end}
722
732
  },
723
733
  'transformer_lz4' => {
724
- :build => %{Moneta.build do
725
- use :Transformer, :value => :lz4
734
+ build: %{Moneta.build do
735
+ use :Transformer, value: :lz4
726
736
  adapter :Memory
727
737
  end},
728
- :specs => TRANSFORMER_SPECS.stringvalues_only,
729
- :load_value => '::LZ4.uncompress(value)',
730
- :tests => %{
738
+ specs: TRANSFORMER_SPECS.stringvalues_only,
739
+ load_value: '::LZ4.uncompress(value)',
740
+ tests: %{
731
741
  it 'compile transformer class' do
732
742
  store.should_not be_nil
733
743
  Moneta::Transformer::Lz4Value.should_not be_nil
734
744
  end}
735
745
  },
736
746
  'transformer_lzma' => {
737
- :build => %{Moneta.build do
738
- use :Transformer, :value => :lzma
747
+ build: %{Moneta.build do
748
+ use :Transformer, value: :lzma
739
749
  adapter :Memory
740
750
  end},
741
- :specs => TRANSFORMER_SPECS.stringvalues_only,
742
- :load_value => '::LZMA.decompress(value)',
743
- :tests => %{
751
+ specs: TRANSFORMER_SPECS.stringvalues_only,
752
+ load_value: '::LZMA.decompress(value)',
753
+ tests: %{
744
754
  it 'compile transformer class' do
745
755
  store.should_not be_nil
746
756
  Moneta::Transformer::LzmaValue.should_not be_nil
747
757
  end}
748
758
  },
749
759
  'transformer_snappy' => {
750
- :build => %{Moneta.build do
751
- use :Transformer, :value => :snappy
760
+ build: %{Moneta.build do
761
+ use :Transformer, value: :snappy
752
762
  adapter :Memory
753
763
  end},
754
- :specs => TRANSFORMER_SPECS.stringvalues_only,
755
- :load_value => '::Snappy.inflate(value)',
756
- :tests => %{
764
+ specs: TRANSFORMER_SPECS.stringvalues_only,
765
+ load_value: '::Snappy.inflate(value)',
766
+ tests: %{
757
767
  it 'compile transformer class' do
758
768
  store.should_not be_nil
759
769
  Moneta::Transformer::SnappyValue.should_not be_nil
760
770
  end}
761
771
  },
762
772
  'transformer_quicklz' => {
763
- :build => %{Moneta.build do
764
- use :Transformer, :value => :quicklz
773
+ build: %{Moneta.build do
774
+ use :Transformer, value: :quicklz
765
775
  adapter :Memory
766
776
  end},
767
- :specs => TRANSFORMER_SPECS.stringvalues_only,
768
- :load_value => '::QuickLZ.decompress(value)',
769
- :tests => %{
777
+ specs: TRANSFORMER_SPECS.stringvalues_only,
778
+ load_value: '::QuickLZ.decompress(value)',
779
+ tests: %{
770
780
  it 'compile transformer class' do
771
781
  store.should_not be_nil
772
782
  Moneta::Transformer::QuicklzValue.should_not be_nil
773
783
  end}
774
784
  },
775
785
  'transformer_json' => {
776
- :build => %{Moneta.build do
777
- use :Transformer, :key => :json, :value => :json
786
+ build: %{Moneta.build do
787
+ use :Transformer, key: :json, value: :json
778
788
  adapter :Memory
779
789
  end},
780
- :specs => TRANSFORMER_SPECS.simplekeys_only.simplevalues_only,
781
- :load_value => '::MultiJson.load(value)',
782
- :tests => %{
790
+ specs: TRANSFORMER_SPECS.simplekeys_only.simplevalues_only,
791
+ load_value: '::MultiJson.load(value)',
792
+ tests: %{
783
793
  it 'compile transformer class' do
784
794
  store.should_not be_nil
785
795
  Moneta::Transformer::JsonKeyJsonValue.should_not be_nil
786
796
  end}
787
797
  },
788
798
  'transformer_bert' => {
789
- :build => %{Moneta.build do
790
- use :Transformer, :key => :bert, :value => :bert
799
+ build: %{Moneta.build do
800
+ use :Transformer, key: :bert, value: :bert
791
801
  adapter :Memory
792
802
  end},
793
- :specs => TRANSFORMER_SPECS.simplekeys_only.simplevalues_only,
794
- :load_value => '::BERT.decode(value)',
795
- :tests => %{
803
+ specs: TRANSFORMER_SPECS.simplekeys_only.simplevalues_only,
804
+ load_value: '::BERT.decode(value)',
805
+ tests: %{
796
806
  it 'compile transformer class' do
797
807
  store.should_not be_nil
798
808
  Moneta::Transformer::BertKeyBertValue.should_not be_nil
799
809
  end}
800
810
  },
801
811
  'transformer_bencode' => {
802
- :build => %{Moneta.build do
803
- use :Transformer, :key => :bencode, :value => :bencode
812
+ build: %{Moneta.build do
813
+ use :Transformer, key: :bencode, value: :bencode
804
814
  adapter :Memory
805
815
  end},
806
- :specs => TRANSFORMER_SPECS.simplekeys_only.simplevalues_only,
807
- :load_value => '::BEncode.load(value)',
808
- :tests => %{
816
+ specs: TRANSFORMER_SPECS.simplekeys_only.simplevalues_only,
817
+ load_value: '::BEncode.load(value)',
818
+ tests: %{
809
819
  it 'compile transformer class' do
810
820
  store.should_not be_nil
811
821
  Moneta::Transformer::BencodeKeyBencodeValue.should_not be_nil
@@ -813,408 +823,408 @@ end}
813
823
 
814
824
  },
815
825
  'transformer_bson' => {
816
- :build => %{Moneta.build do
817
- use :Transformer, :key => :bson, :value => :bson
826
+ build: %{Moneta.build do
827
+ use :Transformer, key: :bson, value: :bson
818
828
  adapter :Memory
819
829
  end},
820
- :specs => TRANSFORMER_SPECS.simplekeys_only.simplevalues_only,
821
- :load_value => "::BSON.deserialize(value)['v']",
822
- :tests => %{
830
+ specs: TRANSFORMER_SPECS.simplekeys_only.simplevalues_only,
831
+ load_value: "::BSON.deserialize(value)['v']",
832
+ tests: %{
823
833
  it 'compile transformer class' do
824
834
  store.should_not be_nil
825
835
  Moneta::Transformer::BsonKeyBsonValue.should_not be_nil
826
836
  end}
827
837
  },
828
838
  'transformer_ox' => {
829
- :build => %{Moneta.build do
830
- use :Transformer, :key => :ox, :value => :ox
839
+ build: %{Moneta.build do
840
+ use :Transformer, key: :ox, value: :ox
831
841
  adapter :Memory
832
842
  end},
833
- :specs => TRANSFORMER_SPECS,
834
- :load_value => '::Ox.parse_obj(value)',
835
- :tests => %{
843
+ specs: TRANSFORMER_SPECS,
844
+ load_value: '::Ox.parse_obj(value)',
845
+ tests: %{
836
846
  it 'compile transformer class' do
837
847
  store.should_not be_nil
838
848
  Moneta::Transformer::OxKeyOxValue.should_not be_nil
839
849
  end}
840
850
  },
841
851
  'transformer_php' => {
842
- :build => %{Moneta.build do
843
- use :Transformer, :key => :php, :value => :php
852
+ build: %{Moneta.build do
853
+ use :Transformer, key: :php, value: :php
844
854
  adapter :Memory
845
855
  end},
846
- :specs => TRANSFORMER_SPECS.simplekeys_only.simplevalues_only,
847
- :load_value => '::PHP.unserialize(value)',
848
- :tests => %{
856
+ specs: TRANSFORMER_SPECS.simplekeys_only.simplevalues_only,
857
+ load_value: '::PHP.unserialize(value)',
858
+ tests: %{
849
859
  it 'compile transformer class' do
850
860
  store.should_not be_nil
851
861
  Moneta::Transformer::PhpKeyPhpValue.should_not be_nil
852
862
  end}
853
863
  },
854
864
  'transformer_tnet' => {
855
- :build => %{Moneta.build do
856
- use :Transformer, :key => :tnet, :value => :tnet
865
+ build: %{Moneta.build do
866
+ use :Transformer, key: :tnet, value: :tnet
857
867
  adapter :Memory
858
868
  end},
859
- :specs => TRANSFORMER_SPECS.simplekeys_only.simplevalues_only,
860
- :load_value => '::TNetstring.parse(value).first',
861
- :tests => %{
869
+ specs: TRANSFORMER_SPECS.simplekeys_only.simplevalues_only,
870
+ load_value: '::TNetstring.parse(value).first',
871
+ tests: %{
862
872
  it 'compile transformer class' do
863
873
  store.should_not be_nil
864
874
  Moneta::Transformer::TnetKeyTnetValue.should_not be_nil
865
875
  end}
866
876
  },
867
877
  'transformer_msgpack' => {
868
- :build => %{Moneta.build do
869
- use :Transformer, :key => :msgpack, :value => :msgpack
878
+ build: %{Moneta.build do
879
+ use :Transformer, key: :msgpack, value: :msgpack
870
880
  adapter :Memory
871
881
  end},
872
- :specs => TRANSFORMER_SPECS.simplekeys_only.simplevalues_only,
873
- :load_value => '::MessagePack.unpack(value)',
874
- :tests => %{
882
+ specs: TRANSFORMER_SPECS.simplekeys_only.simplevalues_only,
883
+ load_value: '::MessagePack.unpack(value)',
884
+ tests: %{
875
885
  it 'compile transformer class' do
876
886
  store.should_not be_nil
877
887
  Moneta::Transformer::MsgpackKeyMsgpackValue.should_not be_nil
878
888
  end}
879
889
  },
880
890
  'transformer_marshal' => {
881
- :build => %{Moneta.build do
882
- use :Transformer, :key => :marshal, :value => :marshal
891
+ build: %{Moneta.build do
892
+ use :Transformer, key: :marshal, value: :marshal
883
893
  adapter :Memory
884
894
  end},
885
- :specs => TRANSFORMER_SPECS,
886
- :load_value => '::Marshal.load(value)',
887
- :tests => %{
895
+ specs: TRANSFORMER_SPECS,
896
+ load_value: '::Marshal.load(value)',
897
+ tests: %{
888
898
  it 'compile transformer class' do
889
899
  store.should_not be_nil
890
900
  Moneta::Transformer::MarshalKeyMarshalValue.should_not be_nil
891
901
  end}
892
902
  },
893
903
  'transformer_key_marshal' => {
894
- :build => %{Moneta.build do
895
- use :Transformer, :key => :marshal
904
+ build: %{Moneta.build do
905
+ use :Transformer, key: :marshal
896
906
  adapter :Memory
897
907
  end},
898
- :specs => TRANSFORMER_SPECS.returnsame,
899
- :load_value => 'value',
900
- :tests => %{
908
+ specs: TRANSFORMER_SPECS.returnsame,
909
+ load_value: 'value',
910
+ tests: %{
901
911
  it 'compile transformer class' do
902
912
  store.should_not be_nil
903
913
  Moneta::Transformer::MarshalKey.should_not be_nil
904
914
  end}
905
915
  },
906
916
  'transformer_key_to_s' => {
907
- :build => %{Moneta.build do
908
- use :Transformer, :key => :to_s
917
+ build: %{Moneta.build do
918
+ use :Transformer, key: :to_s
909
919
  adapter :Memory
910
920
  end},
911
- :specs => TRANSFORMER_SPECS.returnsame.simplekeys_only,
912
- :load_value => 'value',
913
- :tests => %{
921
+ specs: TRANSFORMER_SPECS.returnsame.simplekeys_only,
922
+ load_value: 'value',
923
+ tests: %{
914
924
  it 'compile transformer class' do
915
925
  store.should_not be_nil
916
926
  Moneta::Transformer::To_sKey.should_not be_nil
917
927
  end}
918
928
  },
919
929
  'transformer_key_inspect' => {
920
- :build => %{Moneta.build do
921
- use :Transformer, :key => :inspect
930
+ build: %{Moneta.build do
931
+ use :Transformer, key: :inspect
922
932
  adapter :Memory
923
933
  end},
924
- :specs => TRANSFORMER_SPECS.returnsame.simplekeys_only,
925
- :load_value => 'value',
926
- :tests => %{
934
+ specs: TRANSFORMER_SPECS.returnsame.simplekeys_only,
935
+ load_value: 'value',
936
+ tests: %{
927
937
  it 'compile transformer class' do
928
938
  store.should_not be_nil
929
939
  Moneta::Transformer::InspectKey.should_not be_nil
930
940
  end}
931
941
  },
932
942
  'transformer_value_marshal' => {
933
- :build => %{Moneta.build do
934
- use :Transformer, :value => :marshal
943
+ build: %{Moneta.build do
944
+ use :Transformer, value: :marshal
935
945
  adapter :Memory
936
946
  end},
937
- :specs => TRANSFORMER_SPECS,
938
- :load_value => '::Marshal.load(value)',
939
- :tests => %{
947
+ specs: TRANSFORMER_SPECS,
948
+ load_value: '::Marshal.load(value)',
949
+ tests: %{
940
950
  it 'compile transformer class' do
941
951
  store.should_not be_nil
942
952
  Moneta::Transformer::MarshalValue.should_not be_nil
943
953
  end}
944
954
  },
945
955
  'transformer_yaml' => {
946
- :build => %{Moneta.build do
947
- use :Transformer, :key => :yaml, :value => :yaml
956
+ build: %{Moneta.build do
957
+ use :Transformer, key: :yaml, value: :yaml
948
958
  adapter :Memory
949
959
  end},
950
- :specs => TRANSFORMER_SPECS,
951
- :load_value => '::YAML.load(value)',
952
- :tests => %{
960
+ specs: TRANSFORMER_SPECS,
961
+ load_value: '::YAML.load(value)',
962
+ tests: %{
953
963
  it 'compile transformer class' do
954
964
  store.should_not be_nil
955
965
  Moneta::Transformer::YamlKeyYamlValue.should_not be_nil
956
966
  end}
957
967
  },
958
968
  'transformer_key_yaml' => {
959
- :build => %{Moneta.build do
960
- use :Transformer, :key => :yaml
969
+ build: %{Moneta.build do
970
+ use :Transformer, key: :yaml
961
971
  adapter :Memory
962
972
  end},
963
- :specs => TRANSFORMER_SPECS.returnsame,
964
- :load_value => 'value',
965
- :tests => %{
973
+ specs: TRANSFORMER_SPECS.returnsame,
974
+ load_value: 'value',
975
+ tests: %{
966
976
  it 'compile transformer class' do
967
977
  store.should_not be_nil
968
978
  Moneta::Transformer::YamlKey.should_not be_nil
969
979
  end}
970
980
  },
971
981
  'transformer_value_yaml' => {
972
- :build => %{Moneta.build do
973
- use :Transformer, :value => :yaml
982
+ build: %{Moneta.build do
983
+ use :Transformer, value: :yaml
974
984
  adapter :Memory
975
985
  end},
976
- :specs => TRANSFORMER_SPECS,
977
- :load_value => '::YAML.load(value)',
978
- :tests => %{
986
+ specs: TRANSFORMER_SPECS,
987
+ load_value: '::YAML.load(value)',
988
+ tests: %{
979
989
  it 'compile transformer class' do
980
990
  store.should_not be_nil
981
991
  Moneta::Transformer::YamlValue.should_not be_nil
982
992
  end}
983
993
  },
984
994
  'transformer_marshal_hmac' => {
985
- :build => %{Moneta.build do
986
- use :Transformer, :key => :marshal, :value => [:marshal, :hmac], :secret => 'secret'
995
+ build: %{Moneta.build do
996
+ use :Transformer, key: :marshal, value: [:marshal, :hmac], secret: 'secret'
987
997
  adapter :Memory
988
998
  end},
989
- :specs => STANDARD_SPECS.without_persist,
990
- :load_value => '::Marshal.load(::Moneta::Transformer::Helper.hmacverify(value, \'secret\'))',
991
- :tests => %{
999
+ specs: STANDARD_SPECS.without_persist,
1000
+ load_value: '::Marshal.load(::Moneta::Transformer::Helper.hmacverify(value, \'secret\'))',
1001
+ tests: %{
992
1002
  it 'compile transformer class' do
993
1003
  store.should_not be_nil
994
1004
  Moneta::Transformer::MarshalKeyMarshalHmacValue.should_not be_nil
995
1005
  end}
996
1006
  },
997
1007
  'transformer_marshal_base64' => {
998
- :build => %{Moneta.build do
999
- use :Transformer, :key => [:marshal, :base64], :value => [:marshal, :base64]
1008
+ build: %{Moneta.build do
1009
+ use :Transformer, key: [:marshal, :base64], value: [:marshal, :base64]
1000
1010
  adapter :Memory
1001
1011
  end},
1002
- :specs => STANDARD_SPECS.without_persist,
1003
- :load_value => '::Marshal.load(value.unpack(\'m\').first)',
1004
- :tests => %{
1012
+ specs: STANDARD_SPECS.without_persist,
1013
+ load_value: '::Marshal.load(value.unpack(\'m\').first)',
1014
+ tests: %{
1005
1015
  it 'compile transformer class' do
1006
1016
  store.should_not be_nil
1007
1017
  Moneta::Transformer::MarshalBase64KeyMarshalBase64Value.should_not be_nil
1008
1018
  end}
1009
1019
  },
1010
1020
  'transformer_marshal_hex' => {
1011
- :build => %{Moneta.build do
1012
- use :Transformer, :key => [:marshal, :hex], :value => [:marshal, :hex]
1021
+ build: %{Moneta.build do
1022
+ use :Transformer, key: [:marshal, :hex], value: [:marshal, :hex]
1013
1023
  adapter :Memory
1014
1024
  end},
1015
- :specs => STANDARD_SPECS.without_persist,
1016
- :load_value => '::Marshal.load([value].pack(\'H*\'))',
1017
- :tests => %{
1025
+ specs: STANDARD_SPECS.without_persist,
1026
+ load_value: '::Marshal.load([value].pack(\'H*\'))',
1027
+ tests: %{
1018
1028
  it 'compile transformer class' do
1019
1029
  store.should_not be_nil
1020
1030
  Moneta::Transformer::MarshalHexKeyMarshalHexValue.should_not be_nil
1021
1031
  end}
1022
1032
  },
1023
1033
  'transformer_marshal_prefix' => {
1024
- :build => %{Moneta.build do
1025
- use :Transformer, :key => [:marshal, :prefix], :value => :marshal, :prefix => 'moneta'
1034
+ build: %{Moneta.build do
1035
+ use :Transformer, key: [:marshal, :prefix], value: :marshal, prefix: 'moneta'
1026
1036
  adapter :Memory
1027
1037
  end},
1028
- :specs => STANDARD_SPECS.without_persist,
1029
- :tests => %{
1038
+ specs: STANDARD_SPECS.without_persist,
1039
+ tests: %{
1030
1040
  it 'compile transformer class' do
1031
1041
  store.should_not be_nil
1032
1042
  Moneta::Transformer::MarshalPrefixKeyMarshalValue.should_not be_nil
1033
1043
  end}
1034
1044
  },
1035
1045
  'transformer_marshal_uuencode' => {
1036
- :build => %{Moneta.build do
1037
- use :Transformer, :key => [:marshal, :uuencode], :value => [:marshal, :uuencode]
1046
+ build: %{Moneta.build do
1047
+ use :Transformer, key: [:marshal, :uuencode], value: [:marshal, :uuencode]
1038
1048
  adapter :Memory
1039
1049
  end},
1040
- :specs => STANDARD_SPECS.without_persist,
1041
- :load_value => '::Marshal.load(value.unpack(\'u\').first)',
1042
- :tests => %{
1050
+ specs: STANDARD_SPECS.without_persist,
1051
+ load_value: '::Marshal.load(value.unpack(\'u\').first)',
1052
+ tests: %{
1043
1053
  it 'compile transformer class' do
1044
1054
  store.should_not be_nil
1045
1055
  Moneta::Transformer::MarshalUuencodeKeyMarshalUuencodeValue.should_not be_nil
1046
1056
  end}
1047
1057
  },
1048
1058
  'transformer_marshal_qp' => {
1049
- :build => %{Moneta.build do
1050
- use :Transformer, :key => [:marshal, :qp], :value => [:marshal, :qp]
1059
+ build: %{Moneta.build do
1060
+ use :Transformer, key: [:marshal, :qp], value: [:marshal, :qp]
1051
1061
  adapter :Memory
1052
1062
  end},
1053
- :specs => STANDARD_SPECS.without_persist,
1054
- :load_value => '::Marshal.load(value.unpack(\'M\').first)',
1055
- :tests => %{
1063
+ specs: STANDARD_SPECS.without_persist,
1064
+ load_value: '::Marshal.load(value.unpack(\'M\').first)',
1065
+ tests: %{
1056
1066
  it 'compile transformer class' do
1057
1067
  store.should_not be_nil
1058
1068
  Moneta::Transformer::MarshalQpKeyMarshalQpValue.should_not be_nil
1059
1069
  end}
1060
1070
  },
1061
1071
  'transformer_marshal_escape' => {
1062
- :build => %{Moneta.build do
1063
- use :Transformer, :key => [:marshal, :escape], :value => :marshal
1072
+ build: %{Moneta.build do
1073
+ use :Transformer, key: [:marshal, :escape], value: :marshal
1064
1074
  adapter :Memory
1065
1075
  end},
1066
- :specs => STANDARD_SPECS.without_persist,
1067
- :tests => %{
1076
+ specs: STANDARD_SPECS.without_persist,
1077
+ tests: %{
1068
1078
  it 'compile transformer class' do
1069
1079
  store.should_not be_nil
1070
1080
  Moneta::Transformer::MarshalEscapeKeyMarshalValue.should_not be_nil
1071
1081
  end}
1072
1082
  },
1073
1083
  'transformer_marshal_md5' => {
1074
- :build => %{Moneta.build do
1075
- use :Transformer, :key => [:marshal, :md5], :value => :marshal
1084
+ build: %{Moneta.build do
1085
+ use :Transformer, key: [:marshal, :md5], value: :marshal
1076
1086
  adapter :Memory
1077
1087
  end},
1078
- :specs => STANDARD_SPECS.without_persist,
1079
- :tests => %{
1088
+ specs: STANDARD_SPECS.without_persist,
1089
+ tests: %{
1080
1090
  it 'compile transformer class' do
1081
1091
  store.should_not be_nil
1082
1092
  Moneta::Transformer::MarshalMd5KeyMarshalValue.should_not be_nil
1083
1093
  end}
1084
1094
  },
1085
1095
  'transformer_marshal_sha1' => {
1086
- :build => %{Moneta.build do
1087
- use :Transformer, :key => [:marshal, :sha1], :value => :marshal
1096
+ build: %{Moneta.build do
1097
+ use :Transformer, key: [:marshal, :sha1], value: :marshal
1088
1098
  adapter :Memory
1089
1099
  end},
1090
- :specs => STANDARD_SPECS.without_persist,
1091
- :tests => %{
1100
+ specs: STANDARD_SPECS.without_persist,
1101
+ tests: %{
1092
1102
  it 'compile transformer class' do
1093
1103
  store.should_not be_nil
1094
1104
  Moneta::Transformer::MarshalSha1KeyMarshalValue.should_not be_nil
1095
1105
  end}
1096
1106
  },
1097
1107
  'transformer_marshal_sha256' => {
1098
- :build => %{Moneta.build do
1099
- use :Transformer, :key => [:marshal, :sha256], :value => :marshal
1108
+ build: %{Moneta.build do
1109
+ use :Transformer, key: [:marshal, :sha256], value: :marshal
1100
1110
  adapter :Memory
1101
1111
  end},
1102
- :specs => STANDARD_SPECS.without_persist,
1103
- :tests => %{
1112
+ specs: STANDARD_SPECS.without_persist,
1113
+ tests: %{
1104
1114
  it 'compile transformer class' do
1105
1115
  store.should_not be_nil
1106
1116
  Moneta::Transformer::MarshalSha256KeyMarshalValue.should_not be_nil
1107
1117
  end}
1108
1118
  },
1109
1119
  'transformer_marshal_sha384' => {
1110
- :build => %{Moneta.build do
1111
- use :Transformer, :key => [:marshal, :sha384], :value => :marshal
1120
+ build: %{Moneta.build do
1121
+ use :Transformer, key: [:marshal, :sha384], value: :marshal
1112
1122
  adapter :Memory
1113
1123
  end},
1114
- :specs => STANDARD_SPECS.without_persist,
1115
- :tests => %{
1124
+ specs: STANDARD_SPECS.without_persist,
1125
+ tests: %{
1116
1126
  it 'compile transformer class' do
1117
1127
  store.should_not be_nil
1118
1128
  Moneta::Transformer::MarshalSha384KeyMarshalValue.should_not be_nil
1119
1129
  end}
1120
1130
  },
1121
1131
  'transformer_marshal_sha512' => {
1122
- :build => %{Moneta.build do
1123
- use :Transformer, :key => [:marshal, :sha512], :value => :marshal
1132
+ build: %{Moneta.build do
1133
+ use :Transformer, key: [:marshal, :sha512], value: :marshal
1124
1134
  adapter :Memory
1125
1135
  end},
1126
- :specs => STANDARD_SPECS.without_persist,
1127
- :tests => %{
1136
+ specs: STANDARD_SPECS.without_persist,
1137
+ tests: %{
1128
1138
  it 'compile transformer class' do
1129
1139
  store.should_not be_nil
1130
1140
  Moneta::Transformer::MarshalSha512KeyMarshalValue.should_not be_nil
1131
1141
  end}
1132
1142
  },
1133
1143
  'transformer_marshal_rmd160' => {
1134
- :build => %{Moneta.build do
1135
- use :Transformer, :key => [:marshal, :rmd160], :value => :marshal
1144
+ build: %{Moneta.build do
1145
+ use :Transformer, key: [:marshal, :rmd160], value: :marshal
1136
1146
  adapter :Memory
1137
1147
  end},
1138
- :specs => STANDARD_SPECS.without_persist,
1139
- :tests => %{
1148
+ specs: STANDARD_SPECS.without_persist,
1149
+ tests: %{
1140
1150
  it 'compile transformer class' do
1141
1151
  store.should_not be_nil
1142
1152
  Moneta::Transformer::MarshalRmd160KeyMarshalValue.should_not be_nil
1143
1153
  end}
1144
1154
  },
1145
1155
  'transformer_marshal_md5_spread' => {
1146
- :build => %{Moneta.build do
1147
- use :Transformer, :key => [:marshal, :md5, :spread], :value => :marshal
1156
+ build: %{Moneta.build do
1157
+ use :Transformer, key: [:marshal, :md5, :spread], value: :marshal
1148
1158
  adapter :Memory
1149
1159
  end},
1150
- :specs => STANDARD_SPECS.without_persist,
1151
- :tests => %{
1160
+ specs: STANDARD_SPECS.without_persist,
1161
+ tests: %{
1152
1162
  it 'compile transformer class' do
1153
1163
  store.should_not be_nil
1154
1164
  Moneta::Transformer::MarshalMd5SpreadKeyMarshalValue.should_not be_nil
1155
1165
  end}
1156
1166
  },
1157
1167
  'transformer_marshal_city32' => {
1158
- :build => %{Moneta.build do
1159
- use :Transformer, :key => [:marshal, :city32], :value => :marshal
1168
+ build: %{Moneta.build do
1169
+ use :Transformer, key: [:marshal, :city32], value: :marshal
1160
1170
  adapter :Memory
1161
1171
  end},
1162
- :specs => STANDARD_SPECS.without_persist,
1163
- :tests => %{
1172
+ specs: STANDARD_SPECS.without_persist,
1173
+ tests: %{
1164
1174
  it 'compile transformer class' do
1165
1175
  store.should_not be_nil
1166
1176
  Moneta::Transformer::MarshalCity32KeyMarshalValue.should_not be_nil
1167
1177
  end}
1168
1178
  },
1169
1179
  'transformer_marshal_city64' => {
1170
- :build => %{Moneta.build do
1171
- use :Transformer, :key => [:marshal, :city64], :value => :marshal
1180
+ build: %{Moneta.build do
1181
+ use :Transformer, key: [:marshal, :city64], value: :marshal
1172
1182
  adapter :Memory
1173
1183
  end},
1174
- :specs => STANDARD_SPECS.without_persist,
1175
- :tests => %{
1184
+ specs: STANDARD_SPECS.without_persist,
1185
+ tests: %{
1176
1186
  it 'compile transformer class' do
1177
1187
  store.should_not be_nil
1178
1188
  Moneta::Transformer::MarshalCity64KeyMarshalValue.should_not be_nil
1179
1189
  end}
1180
1190
  },
1181
1191
  'transformer_marshal_city128' => {
1182
- :build => %{Moneta.build do
1183
- use :Transformer, :key => [:marshal, :city128], :value => :marshal
1192
+ build: %{Moneta.build do
1193
+ use :Transformer, key: [:marshal, :city128], value: :marshal
1184
1194
  adapter :Memory
1185
1195
  end},
1186
- :specs => STANDARD_SPECS.without_persist,
1187
- :tests => %{
1196
+ specs: STANDARD_SPECS.without_persist,
1197
+ tests: %{
1188
1198
  it 'compile transformer class' do
1189
1199
  store.should_not be_nil
1190
1200
  Moneta::Transformer::MarshalCity128KeyMarshalValue.should_not be_nil
1191
1201
  end}
1192
1202
  },
1193
1203
  'transformer_marshal_truncate' => {
1194
- :build => %{Moneta.build do
1195
- use :Transformer, :key => [:marshal, :truncate], :value => :marshal, :maxlen => 64
1204
+ build: %{Moneta.build do
1205
+ use :Transformer, key: [:marshal, :truncate], value: :marshal, maxlen: 64
1196
1206
  adapter :Memory
1197
1207
  end},
1198
- :specs => STANDARD_SPECS.without_persist,
1199
- :tests => %{
1208
+ specs: STANDARD_SPECS.without_persist,
1209
+ tests: %{
1200
1210
  it 'compile transformer class' do
1201
1211
  store.should_not be_nil
1202
1212
  Moneta::Transformer::MarshalTruncateKeyMarshalValue.should_not be_nil
1203
1213
  end}
1204
1214
  },
1205
1215
  'adapter_activerecord' => {
1206
- :build => "Moneta::Adapters::ActiveRecord.new(:table => 'adapter_activerecord', :connection => { :adapter => (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), :database => 'moneta', :username => 'root' })",
1207
- :specs => ADAPTER_SPECS,
1208
- :tests => %{
1216
+ build: "Moneta::Adapters::ActiveRecord.new(table: 'adapter_activerecord', connection: { adapter: (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), database: 'moneta', username: 'root' })",
1217
+ specs: ADAPTER_SPECS,
1218
+ tests: %{
1209
1219
  it 'updates an existing key/value' do
1210
1220
  store['foo/bar'] = '1'
1211
1221
  store['foo/bar'] = '2'
1212
- store.table.where(:k => 'foo/bar').count.should == 1
1222
+ store.table.where(k: 'foo/bar').count.should == 1
1213
1223
  end
1214
1224
 
1215
1225
  it 'supports different tables same database' do
1216
- store1 = Moneta::Adapters::ActiveRecord.new(:table => 'adapter_activerecord1', :connection => { :adapter => (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), :database => 'moneta', :username => 'root' })
1217
- store2 = Moneta::Adapters::ActiveRecord.new(:table => 'adapter_activerecord2', :connection => { :adapter => (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), :database => 'moneta', :username => 'root' })
1226
+ store1 = Moneta::Adapters::ActiveRecord.new(table: 'adapter_activerecord1', connection: { adapter: (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), database: 'moneta', username: 'root' })
1227
+ store2 = Moneta::Adapters::ActiveRecord.new(table: 'adapter_activerecord2', connection: { adapter: (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), database: 'moneta', username: 'root' })
1218
1228
 
1219
1229
  store1['key'] = 'value1'
1220
1230
  store2['key'] = 'value2'
@@ -1226,8 +1236,8 @@ it 'supports different tables same database' do
1226
1236
  end
1227
1237
 
1228
1238
  it 'supports different databases same table' do
1229
- store1 = Moneta::Adapters::ActiveRecord.new(:table => 'adapter_activerecord', :connection => { :adapter => (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), :database => 'moneta_activerecord1', :username => 'root' })
1230
- store2 = Moneta::Adapters::ActiveRecord.new(:table => 'adapter_activerecord', :connection => { :adapter => (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), :database => 'moneta_activerecord2', :username => 'root' })
1239
+ store1 = Moneta::Adapters::ActiveRecord.new(table: 'adapter_activerecord', connection: { adapter: (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), database: 'moneta_activerecord1', username: 'root' })
1240
+ store2 = Moneta::Adapters::ActiveRecord.new(table: 'adapter_activerecord', connection: { adapter: (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), database: 'moneta_activerecord2', username: 'root' })
1231
1241
 
1232
1242
  store1['key'] = 'value1'
1233
1243
  store2['key'] = 'value2'
@@ -1239,51 +1249,51 @@ it 'supports different databases same table' do
1239
1249
  end}
1240
1250
  },
1241
1251
  'adapter_activerecord_exisiting_connection' => {
1242
- :preamble => "require 'active_record'\nActiveRecord::Base.establish_connection :adapter => (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), :database => 'moneta', :username => 'root'\n",
1243
- :build => "Moneta::Adapters::ActiveRecord.new(:table => 'adapter_activerecord_existing_connection')",
1244
- :specs => ADAPTER_SPECS
1252
+ preamble: "require 'active_record'\nActiveRecord::Base.establish_connection adapter: (defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql2'), database: 'moneta', username: 'root'\n",
1253
+ build: "Moneta::Adapters::ActiveRecord.new(table: 'adapter_activerecord_existing_connection')",
1254
+ specs: ADAPTER_SPECS
1245
1255
  },
1246
1256
  'adapter_client' => {
1247
- :preamble => "start_server(Moneta::Adapters::Memory.new)\n",
1248
- :build => "Moneta::Adapters::Client.new",
1249
- :specs => ADAPTER_SPECS
1257
+ preamble: "start_server(Moneta::Adapters::Memory.new)\n",
1258
+ build: "Moneta::Adapters::Client.new",
1259
+ specs: ADAPTER_SPECS
1250
1260
  },
1251
1261
  'adapter_restclient' => {
1252
- :preamble => "start_restserver\n",
1253
- :build => "Moneta::Adapters::RestClient.new(:url => 'http://localhost:8808/moneta/')",
1254
- :specs => ADAPTER_SPECS.without_increment.without_create
1262
+ preamble: "start_restserver\n",
1263
+ build: "Moneta::Adapters::RestClient.new(url: 'http://localhost:8808/moneta/')",
1264
+ specs: ADAPTER_SPECS.without_increment.without_create
1255
1265
  },
1256
1266
  'adapter_cassandra' => {
1257
- :build => "Moneta::Adapters::Cassandra.new(:keyspace => 'adapter_cassandra')",
1258
- :specs => ADAPTER_SPECS.without_increment.without_create.with_native_expires
1267
+ build: "Moneta::Adapters::Cassandra.new(keyspace: 'adapter_cassandra')",
1268
+ specs: ADAPTER_SPECS.without_increment.without_create.with_native_expires
1259
1269
  },
1260
1270
  'adapter_cassandra_with_default_expires' => {
1261
- :build => %{Moneta::Adapters::Cassandra.new(:keyspace => 'adapter_cassandra_with_default_expires', :expires => 1)},
1262
- :specs => ADAPTER_SPECS.without_increment.without_create.with_native_expires.with_default_expires
1271
+ build: %{Moneta::Adapters::Cassandra.new(keyspace: 'adapter_cassandra_with_default_expires', expires: 1)},
1272
+ specs: ADAPTER_SPECS.without_increment.without_create.with_native_expires.with_default_expires
1263
1273
  },
1264
1274
  'adapter_hbase' => {
1265
- :build => "Moneta::Adapters::HBase.new(:table => 'adapter_hbase')",
1266
- :specs => ADAPTER_SPECS.without_create
1275
+ build: "Moneta::Adapters::HBase.new(table: 'adapter_hbase')",
1276
+ specs: ADAPTER_SPECS.without_create
1267
1277
  },
1268
1278
  'adapter_cookie' => {
1269
- :build => 'Moneta::Adapters::Cookie.new',
1270
- :specs => ADAPTER_SPECS.without_persist.returnsame
1279
+ build: 'Moneta::Adapters::Cookie.new',
1280
+ specs: ADAPTER_SPECS.without_persist.returnsame
1271
1281
  },
1272
1282
  'adapter_couch' => {
1273
- :build => "Moneta::Adapters::Couch.new(:db => 'adapter_couch')",
1274
- :specs => ADAPTER_SPECS.without_increment.simplevalues_only.without_path
1283
+ build: "Moneta::Adapters::Couch.new(db: 'adapter_couch')",
1284
+ specs: ADAPTER_SPECS.without_increment.simplevalues_only.without_path
1275
1285
  },
1276
1286
  'adapter_datamapper' => {
1277
- :build => 'Moneta::Adapters::DataMapper.new(:setup => "mysql://root:@localhost/moneta", :table => "adapter_datamapper")',
1287
+ build: 'Moneta::Adapters::DataMapper.new(setup: "mysql://root:@localhost/moneta", table: "adapter_datamapper")',
1278
1288
  # DataMapper needs default repository to be setup
1279
- :preamble => "require 'dm-core'\nDataMapper.setup(:default, :adapter => :in_memory)\n",
1280
- :specs => ADAPTER_SPECS.without_increment,
1281
- :tests => %q{
1289
+ preamble: "require 'dm-core'\nDataMapper.setup(:default, adapter: :in_memory)\n",
1290
+ specs: ADAPTER_SPECS.without_increment,
1291
+ tests: %q{
1282
1292
  it 'does not cross contaminate when storing' do
1283
- first = Moneta::Adapters::DataMapper.new(:setup => "mysql://root:@localhost/moneta", :table => "datamapper_first")
1293
+ first = Moneta::Adapters::DataMapper.new(setup: "mysql://root:@localhost/moneta", table: "datamapper_first")
1284
1294
  first.clear
1285
1295
 
1286
- second = Moneta::Adapters::DataMapper.new(:repository => :sample, :setup => "mysql://root:@localhost/moneta", :table => "datamapper_second")
1296
+ second = Moneta::Adapters::DataMapper.new(repository: :sample, setup: "mysql://root:@localhost/moneta", table: "datamapper_second")
1287
1297
  second.clear
1288
1298
 
1289
1299
  first['key'] = 'value'
@@ -1294,10 +1304,10 @@ it 'does not cross contaminate when storing' do
1294
1304
  end
1295
1305
 
1296
1306
  it 'does not cross contaminate when deleting' do
1297
- first = Moneta::Adapters::DataMapper.new(:setup => "mysql://root:@localhost/moneta", :table => "datamapper_first")
1307
+ first = Moneta::Adapters::DataMapper.new(setup: "mysql://root:@localhost/moneta", table: "datamapper_first")
1298
1308
  first.clear
1299
1309
 
1300
- second = Moneta::Adapters::DataMapper.new(:repository => :sample, :setup => "mysql://root:@localhost/moneta", :table => "datamapper_second")
1310
+ second = Moneta::Adapters::DataMapper.new(repository: :sample, setup: "mysql://root:@localhost/moneta", table: "datamapper_second")
1301
1311
  second.clear
1302
1312
 
1303
1313
  first['key'] = 'value'
@@ -1310,73 +1320,73 @@ end
1310
1320
  }
1311
1321
  },
1312
1322
  'adapter_dbm' => {
1313
- :build => 'Moneta::Adapters::DBM.new(:file => File.join(make_tempdir, "adapter_dbm"))',
1314
- :specs => ADAPTER_SPECS.without_multiprocess
1323
+ build: 'Moneta::Adapters::DBM.new(file: File.join(make_tempdir, "adapter_dbm"))',
1324
+ specs: ADAPTER_SPECS.without_multiprocess
1315
1325
  },
1316
1326
  'adapter_tdb' => {
1317
- :build => 'Moneta::Adapters::TDB.new(:file => File.join(make_tempdir, "adapter_tdb"))',
1318
- :specs => ADAPTER_SPECS.without_multiprocess
1327
+ build: 'Moneta::Adapters::TDB.new(file: File.join(make_tempdir, "adapter_tdb"))',
1328
+ specs: ADAPTER_SPECS.without_multiprocess
1319
1329
  },
1320
1330
  'adapter_daybreak' => {
1321
- :build => 'Moneta::Adapters::Daybreak.new(:file => File.join(make_tempdir, "adapter_daybreak"))',
1322
- :specs => ADAPTER_SPECS.without_multiprocess.returnsame
1331
+ build: 'Moneta::Adapters::Daybreak.new(file: File.join(make_tempdir, "adapter_daybreak"))',
1332
+ specs: ADAPTER_SPECS.without_multiprocess.returnsame
1323
1333
  },
1324
1334
  'adapter_file' => {
1325
- :build => 'Moneta::Adapters::File.new(:dir => File.join(make_tempdir, "adapter_file"))',
1326
- :specs => ADAPTER_SPECS
1335
+ build: 'Moneta::Adapters::File.new(dir: File.join(make_tempdir, "adapter_file"))',
1336
+ specs: ADAPTER_SPECS
1327
1337
  },
1328
1338
  'adapter_fog' => {
1329
- :build => "Moneta::Adapters::Fog.new(:aws_access_key_id => 'fake_access_key_id',
1330
- :aws_secret_access_key => 'fake_secret_access_key',
1331
- :provider => 'AWS',
1332
- :dir => 'adapter_fog')",
1339
+ build: "Moneta::Adapters::Fog.new(aws_access_key_id: 'fake_access_key_id',
1340
+ aws_secret_access_key: 'fake_secret_access_key',
1341
+ provider: 'AWS',
1342
+ dir: 'adapter_fog')",
1333
1343
  # Put Fog into testing mode
1334
- :preamble => "require 'fog'\nFog.mock!\n",
1344
+ preamble: "require 'fog'\nFog.mock!\n",
1335
1345
  # Fog returns same object in mocking mode (in-memory store)
1336
- :specs => ADAPTER_SPECS.without_increment.without_create.returnsame
1346
+ specs: ADAPTER_SPECS.without_increment.without_create.returnsame
1337
1347
  },
1338
1348
  'adapter_gdbm' => {
1339
- :build => 'Moneta::Adapters::GDBM.new(:file => File.join(make_tempdir, "adapter_gdbm"))',
1340
- :specs => ADAPTER_SPECS.without_multiprocess
1349
+ build: 'Moneta::Adapters::GDBM.new(file: File.join(make_tempdir, "adapter_gdbm"))',
1350
+ specs: ADAPTER_SPECS.without_multiprocess
1341
1351
  },
1342
1352
  'adapter_localmemcache' => {
1343
- :build => 'Moneta::Adapters::LocalMemCache.new(:file => File.join(make_tempdir, "adapter_localmemcache"))',
1344
- :specs => ADAPTER_SPECS.without_increment.without_create
1353
+ build: 'Moneta::Adapters::LocalMemCache.new(file: File.join(make_tempdir, "adapter_localmemcache"))',
1354
+ specs: ADAPTER_SPECS.without_increment.without_create
1345
1355
  },
1346
1356
  'adapter_memcached_dalli' => {
1347
- :build => 'Moneta::Adapters::MemcachedDalli.new(:namespace => "adapter_memcached_dalli")',
1348
- :specs => ADAPTER_SPECS.with_native_expires
1357
+ build: 'Moneta::Adapters::MemcachedDalli.new(namespace: "adapter_memcached_dalli")',
1358
+ specs: ADAPTER_SPECS.with_native_expires
1349
1359
  },
1350
1360
  'adapter_memcached_dalli_with_default_expires' => {
1351
- :build => %{Moneta::Adapters::MemcachedDalli.new(:expires => 1)},
1352
- :specs => ADAPTER_SPECS.with_native_expires.with_default_expires
1361
+ build: %{Moneta::Adapters::MemcachedDalli.new(expires: 1)},
1362
+ specs: ADAPTER_SPECS.with_native_expires.with_default_expires
1353
1363
  },
1354
1364
  'adapter_memcached_native' => {
1355
- :build => 'Moneta::Adapters::MemcachedNative.new(:namespace => "adapter_memcached_native")',
1356
- :specs => ADAPTER_SPECS.with_native_expires
1365
+ build: 'Moneta::Adapters::MemcachedNative.new(namespace: "adapter_memcached_native")',
1366
+ specs: ADAPTER_SPECS.with_native_expires
1357
1367
  },
1358
1368
  'adapter_memcached_native_with_default_expires' => {
1359
- :build => %{Moneta::Adapters::MemcachedNative.new(:expires => 1)},
1360
- :specs => ADAPTER_SPECS.with_native_expires.with_default_expires
1369
+ build: %{Moneta::Adapters::MemcachedNative.new(expires: 1)},
1370
+ specs: ADAPTER_SPECS.with_native_expires.with_default_expires
1361
1371
  },
1362
1372
  'adapter_memcached' => {
1363
- :build => 'Moneta::Adapters::Memcached.new(:namespace => "adapter_memcached")',
1364
- :specs => ADAPTER_SPECS.with_native_expires
1373
+ build: 'Moneta::Adapters::Memcached.new(namespace: "adapter_memcached")',
1374
+ specs: ADAPTER_SPECS.with_native_expires
1365
1375
  },
1366
1376
  'adapter_memcached_with_default_expires' => {
1367
- :build => %{Moneta::Adapters::Memcached.new(:expires => 1)},
1368
- :specs => ADAPTER_SPECS.with_native_expires.with_default_expires
1377
+ build: %{Moneta::Adapters::Memcached.new(expires: 1)},
1378
+ specs: ADAPTER_SPECS.with_native_expires.with_default_expires
1369
1379
  },
1370
1380
  'adapter_memory' => {
1371
- :build => 'Moneta::Adapters::Memory.new',
1372
- :specs => STANDARD_SPECS.without_transform.returnsame.without_persist
1381
+ build: 'Moneta::Adapters::Memory.new',
1382
+ specs: STANDARD_SPECS.without_transform.returnsame.without_persist
1373
1383
  },
1374
1384
  'adapter_lruhash' => {
1375
- :build => 'Moneta::Adapters::LRUHash.new',
1376
- :specs => ADAPTER_SPECS.without_persist.returnsame,
1377
- :tests => %{
1385
+ build: 'Moneta::Adapters::LRUHash.new',
1386
+ specs: ADAPTER_SPECS.without_persist.returnsame,
1387
+ tests: %{
1378
1388
  it 'deletes oldest' do
1379
- store = Moneta::Adapters::LRUHash.new(:max_size => 10)
1389
+ store = Moneta::Adapters::LRUHash.new(max_size: 10)
1380
1390
  store[0] = 'y'
1381
1391
  (1..1000).each do |i|
1382
1392
  store[i] = 'x'
@@ -1390,87 +1400,110 @@ it 'deletes oldest' do
1390
1400
  end}
1391
1401
  },
1392
1402
  'adapter_mongo' => {
1393
- :build => 'Moneta::Adapters::Mongo.new(:db => "adapter_mongo")',
1394
- :specs => ADAPTER_SPECS.with_native_expires.simplevalues_only,
1395
- :tests => %{
1403
+ build: 'Moneta::Adapters::Mongo.new(db: "adapter_mongo")',
1404
+ specs: ADAPTER_SPECS.with_native_expires.simplevalues_only
1405
+ },
1406
+ 'adapter_mongo_with_default_expires' => {
1407
+ build: %{Moneta::Adapters::Mongo.new(expires: 1)},
1408
+ specs: ADAPTER_SPECS.with_expires.with_default_expires.simplevalues_only
1409
+ },
1410
+ 'adapter_mongo_moped' => {
1411
+ build: 'Moneta::Adapters::MongoMoped.new(db: "adapter_mongo")',
1412
+ specs: ADAPTER_SPECS.with_native_expires.simplevalues_only,
1413
+ tests: %{
1396
1414
  it 'automatically deletes expired document' do
1397
- store.store('key', 'val', :expires => 5)
1415
+ store.store('key', 'val', expires: 5)
1416
+ store.instance_variable_get(:@collection).find('_id' => ::Moped::BSON::Binary.new(:generic, 'key')).one.should_not be_nil
1417
+ sleep 70 # Mongo needs up to 60 seconds
1418
+ store.instance_variable_get(:@collection).find('_id' => ::Moped::BSON::Binary.new(:generic, 'key')).one.should be_nil
1419
+ end}
1420
+ },
1421
+ 'adapter_mongo_moped_with_default_expires' => {
1422
+ build: %{Moneta::Adapters::MongoMoped.new(expires: 1)},
1423
+ specs: ADAPTER_SPECS.with_expires.with_default_expires.simplevalues_only
1424
+ },
1425
+ 'adapter_mongo_official' => {
1426
+ build: 'Moneta::Adapters::MongoOfficial.new(db: "adapter_mongo")',
1427
+ specs: ADAPTER_SPECS.with_native_expires.simplevalues_only,
1428
+ tests: %{
1429
+ it 'automatically deletes expired document' do
1430
+ store.store('key', 'val', expires: 5)
1398
1431
  store.instance_variable_get(:@collection).find_one('_id' => ::BSON::Binary.new('key')).should_not be_nil
1399
1432
  sleep 70 # Mongo needs up to 60 seconds
1400
1433
  store.instance_variable_get(:@collection).find_one('_id' => ::BSON::Binary.new('key')).should be_nil
1401
1434
  end}
1402
1435
  },
1403
- 'adapter_mongo_with_default_expires' => {
1404
- :build => %{Moneta::Adapters::Mongo.new(:expires => 1)},
1405
- :specs => ADAPTER_SPECS.with_expires.with_default_expires.simplevalues_only
1436
+ 'adapter_mongo_official_with_default_expires' => {
1437
+ build: %{Moneta::Adapters::MongoOfficial.new(expires: 1)},
1438
+ specs: ADAPTER_SPECS.with_expires.with_default_expires.simplevalues_only
1406
1439
  },
1407
1440
  'adapter_pstore' => {
1408
- :build => 'Moneta::Adapters::PStore.new(:file => File.join(make_tempdir, "adapter_pstore"))',
1409
- :specs => STANDARD_SPECS.without_transform
1441
+ build: 'Moneta::Adapters::PStore.new(file: File.join(make_tempdir, "adapter_pstore"))',
1442
+ specs: STANDARD_SPECS.without_transform
1410
1443
  },
1411
1444
  'adapter_redis' => {
1412
- :build => 'Moneta::Adapters::Redis.new',
1413
- :specs => ADAPTER_SPECS.with_native_expires
1445
+ build: 'Moneta::Adapters::Redis.new',
1446
+ specs: ADAPTER_SPECS.with_native_expires
1414
1447
  },
1415
1448
  'adapter_redis_with_default_expires' => {
1416
- :build => %{Moneta::Adapters::Redis.new(:expires => 1)},
1417
- :specs => ADAPTER_SPECS.with_native_expires.with_default_expires
1449
+ build: %{Moneta::Adapters::Redis.new(expires: 1)},
1450
+ specs: ADAPTER_SPECS.with_native_expires.with_default_expires
1418
1451
  },
1419
1452
  'adapter_riak' => {
1420
- :build => 'Moneta::Adapters::Riak.new',
1421
- :options => ":bucket => 'adapter_riak'",
1422
- :specs => ADAPTER_SPECS.without_increment.without_create,
1453
+ build: 'Moneta::Adapters::Riak.new',
1454
+ options: ":bucket => 'adapter_riak'",
1455
+ specs: ADAPTER_SPECS.without_increment.without_create,
1423
1456
  # We don't want Riak warnings in tests
1424
- :preamble => "require 'riak'\n\nRiak.disable_list_keys_warnings = true\n\n"
1457
+ preamble: "require 'riak'\n\nRiak.disable_list_keys_warnings = true\n\n"
1425
1458
  },
1426
1459
  'adapter_sdbm' => {
1427
- :build => 'Moneta::Adapters::SDBM.new(:file => File.join(make_tempdir, "adapter_sdbm"))',
1428
- :specs => ADAPTER_SPECS.without_multiprocess.without_large
1460
+ build: 'Moneta::Adapters::SDBM.new(file: File.join(make_tempdir, "adapter_sdbm"))',
1461
+ specs: ADAPTER_SPECS.without_multiprocess.without_large
1429
1462
  },
1430
1463
  'adapter_lmdb' => {
1431
- :build => 'Moneta::Adapters::LMDB.new(:dir => File.join(make_tempdir, "adapter_lmdb"))',
1432
- :specs => ADAPTER_SPECS.without_concurrent
1464
+ build: 'Moneta::Adapters::LMDB.new(dir: File.join(make_tempdir, "adapter_lmdb"))',
1465
+ specs: ADAPTER_SPECS.without_concurrent
1433
1466
  },
1434
1467
  'adapter_lmdb_with_db' => {
1435
- :build => 'Moneta::Adapters::LMDB.new(:dir => File.join(make_tempdir, "adapter_lmdb"), :db => "adapter_lmdb_with_db")',
1436
- :specs => ADAPTER_SPECS.without_concurrent
1468
+ build: 'Moneta::Adapters::LMDB.new(dir: File.join(make_tempdir, "adapter_lmdb"), db: "adapter_lmdb_with_db")',
1469
+ specs: ADAPTER_SPECS.without_concurrent
1437
1470
  },
1438
1471
  'adapter_leveldb' => {
1439
- :build => 'Moneta::Adapters::LevelDB.new(:dir => File.join(make_tempdir, "adapter_leveldb"))',
1440
- :specs => ADAPTER_SPECS.without_multiprocess
1472
+ build: 'Moneta::Adapters::LevelDB.new(dir: File.join(make_tempdir, "adapter_leveldb"))',
1473
+ specs: ADAPTER_SPECS.without_multiprocess
1441
1474
  },
1442
1475
  'adapter_sequel' => {
1443
- :build => 'Moneta::Adapters::Sequel.new(:db => (defined?(JRUBY_VERSION) ? "jdbc:mysql://localhost/moneta?user=root" : "mysql2://root:@localhost/moneta"), :table => "adapter_sequel")',
1444
- :specs => ADAPTER_SPECS
1476
+ build: 'Moneta::Adapters::Sequel.new(db: (defined?(JRUBY_VERSION) ? "jdbc:mysql://localhost/moneta?user=root" : "mysql2://root:@localhost/moneta"), table: "adapter_sequel")',
1477
+ specs: ADAPTER_SPECS
1445
1478
  },
1446
1479
  'adapter_sqlite' => {
1447
- :build => 'Moneta::Adapters::Sqlite.new(:file => File.join(make_tempdir, "adapter_sqlite"))',
1448
- :specs => ADAPTER_SPECS.without_concurrent
1480
+ build: 'Moneta::Adapters::Sqlite.new(file: File.join(make_tempdir, "adapter_sqlite"))',
1481
+ specs: ADAPTER_SPECS.without_concurrent
1449
1482
  },
1450
1483
  'adapter_kyotocabinet' => {
1451
- :build => 'Moneta::Adapters::KyotoCabinet.new(:file => File.join(make_tempdir, "adapter_kyotocabinet.kch"))',
1452
- :specs => ADAPTER_SPECS.without_multiprocess
1484
+ build: 'Moneta::Adapters::KyotoCabinet.new(file: File.join(make_tempdir, "adapter_kyotocabinet.kch"))',
1485
+ specs: ADAPTER_SPECS.without_multiprocess
1453
1486
  },
1454
1487
  'adapter_tokyocabinet_bdb' => {
1455
- :build => 'Moneta::Adapters::TokyoCabinet.new(:file => File.join(make_tempdir, "adapter_tokyocabinet_bdb"), :type => :bdb)',
1456
- :specs => ADAPTER_SPECS.without_multiprocess
1488
+ build: 'Moneta::Adapters::TokyoCabinet.new(file: File.join(make_tempdir, "adapter_tokyocabinet_bdb"), type: :bdb)',
1489
+ specs: ADAPTER_SPECS.without_multiprocess
1457
1490
  },
1458
1491
  'adapter_tokyocabinet_hdb' => {
1459
- :build => 'Moneta::Adapters::TokyoCabinet.new(:file => File.join(make_tempdir, "adapter_tokyocabinet_hdb"), :type => :hdb)',
1460
- :specs => ADAPTER_SPECS.without_multiprocess
1492
+ build: 'Moneta::Adapters::TokyoCabinet.new(file: File.join(make_tempdir, "adapter_tokyocabinet_hdb"), type: :hdb)',
1493
+ specs: ADAPTER_SPECS.without_multiprocess
1461
1494
  },
1462
1495
  'adapter_tokyotyrant' => {
1463
- :build => 'Moneta::Adapters::TokyoTyrant.new',
1464
- :specs => ADAPTER_SPECS
1496
+ build: 'Moneta::Adapters::TokyoTyrant.new',
1497
+ specs: ADAPTER_SPECS
1465
1498
  },
1466
1499
  'adapter_yaml' => {
1467
- :build => 'Moneta::Adapters::YAML.new(:file => File.join(make_tempdir, "adapter_yaml"))',
1468
- :specs => STANDARD_SPECS.simplevalues_only.simplekeys_only.without_transform.without_concurrent
1500
+ build: 'Moneta::Adapters::YAML.new(file: File.join(make_tempdir, "adapter_yaml"))',
1501
+ specs: STANDARD_SPECS.simplevalues_only.simplekeys_only.without_transform.without_concurrent
1469
1502
  },
1470
1503
  'mutex' => {
1471
- :store => :Memory,
1472
- :specs => Specs.new,
1473
- :tests => %{
1504
+ store: :Memory,
1505
+ specs: Specs.new,
1506
+ tests: %{
1474
1507
  it 'should have #lock' do
1475
1508
  mutex = Moneta::Mutex.new(store, 'mutex')
1476
1509
  mutex.lock.should be_true
@@ -1525,9 +1558,9 @@ end
1525
1558
  }
1526
1559
  },
1527
1560
  'semaphore' => {
1528
- :store => :Memory,
1529
- :specs => Specs.new,
1530
- :tests => %{
1561
+ store: :Memory,
1562
+ specs: Specs.new,
1563
+ tests: %{
1531
1564
  it 'should have #lock' do
1532
1565
  mutex = Moneta::Semaphore.new(store, 'semaphore')
1533
1566
  mutex.lock.should be_true
@@ -1595,17 +1628,17 @@ end
1595
1628
  }
1596
1629
  },
1597
1630
  'optionmerger' => {
1598
- :store => :Memory,
1599
- :specs => Specs.new,
1600
- :tests => %{
1631
+ store: :Memory,
1632
+ specs: Specs.new,
1633
+ tests: %{
1601
1634
  it '#with should return OptionMerger' do
1602
- options = {:optionname => :optionvalue}
1635
+ options = {optionname: :optionvalue}
1603
1636
  merger = store.with(options)
1604
1637
  merger.should be_instance_of(Moneta::OptionMerger)
1605
1638
  end
1606
1639
 
1607
1640
  it 'saves default options' do
1608
- options = {:optionname => :optionvalue}
1641
+ options = {optionname: :optionvalue}
1609
1642
  merger = store.with(options)
1610
1643
  Moneta::OptionMerger::METHODS.each do |method|
1611
1644
  merger.default_options[method].should equal(options)
@@ -1615,42 +1648,42 @@ end
1615
1648
  PREFIX = [['alpha', nil], ['beta', nil], ['alpha', 'beta']]
1616
1649
 
1617
1650
  it 'merges options' do
1618
- merger = store.with(:opt1 => :val1, :opt2 => :val2).with(:opt2 => :overwrite, :opt3 => :val3)
1651
+ merger = store.with(opt1: :val1, opt2: :val2).with(opt2: :overwrite, opt3: :val3)
1619
1652
  Moneta::OptionMerger::METHODS.each do |method|
1620
- merger.default_options[method].should == {:opt1 => :val1, :opt2 => :overwrite, :opt3 => :val3}
1653
+ merger.default_options[method].should == {opt1: :val1, opt2: :overwrite, opt3: :val3}
1621
1654
  end
1622
1655
  end
1623
1656
 
1624
1657
  it 'merges options only for some methods' do
1625
1658
  PREFIX.each do |(alpha,beta)|
1626
- options = {:opt1 => :val1, :opt2 => :val2, :prefix => alpha}
1627
- merger = store.with(options).with(:opt2 => :overwrite, :opt3 => :val3, :prefix => beta, :only => :clear)
1659
+ options = {opt1: :val1, opt2: :val2, prefix: alpha}
1660
+ merger = store.with(options).with(opt2: :overwrite, opt3: :val3, prefix: beta, only: :clear)
1628
1661
  (Moneta::OptionMerger::METHODS - [:clear]).each do |method|
1629
1662
  merger.default_options[method].should equal(options)
1630
1663
  end
1631
- merger.default_options[:clear].should == {:opt1 => :val1, :opt2 => :overwrite, :opt3 => :val3, :prefix => "\#{alpha}\#{beta}"}
1664
+ merger.default_options[:clear].should == {opt1: :val1, opt2: :overwrite, opt3: :val3, prefix: "\#{alpha}\#{beta}"}
1632
1665
 
1633
- merger = store.with(options).with(:opt2 => :overwrite, :opt3 => :val3, :prefix => beta, :only => [:load, :store])
1666
+ merger = store.with(options).with(opt2: :overwrite, opt3: :val3, prefix: beta, only: [:load, :store])
1634
1667
  (Moneta::OptionMerger::METHODS - [:load, :store]).each do |method|
1635
1668
  merger.default_options[method].should equal(options)
1636
1669
  end
1637
- merger.default_options[:load].should == {:opt1 => :val1, :opt2 => :overwrite, :opt3 => :val3, :prefix => "\#{alpha}\#{beta}"}
1638
- merger.default_options[:store].should == {:opt1 => :val1, :opt2 => :overwrite, :opt3 => :val3, :prefix => "\#{alpha}\#{beta}"}
1670
+ merger.default_options[:load].should == {opt1: :val1, opt2: :overwrite, opt3: :val3, prefix: "\#{alpha}\#{beta}"}
1671
+ merger.default_options[:store].should == {opt1: :val1, opt2: :overwrite, opt3: :val3, prefix: "\#{alpha}\#{beta}"}
1639
1672
  end
1640
1673
  end
1641
1674
 
1642
1675
  it 'merges options except for some methods' do
1643
1676
  PREFIX.each do |(alpha,beta)|
1644
- options = {:opt1 => :val1, :opt2 => :val2, :prefix => alpha}
1645
- merger = store.with(options).with(:opt2 => :overwrite, :opt3 => :val3, :except => :clear, :prefix => beta)
1677
+ options = {opt1: :val1, opt2: :val2, prefix: alpha}
1678
+ merger = store.with(options).with(opt2: :overwrite, opt3: :val3, except: :clear, prefix: beta)
1646
1679
  (Moneta::OptionMerger::METHODS - [:clear]).each do |method|
1647
- merger.default_options[method].should == {:opt1 => :val1, :opt2 => :overwrite, :opt3 => :val3, :prefix => "\#{alpha}\#{beta}"}
1680
+ merger.default_options[method].should == {opt1: :val1, opt2: :overwrite, opt3: :val3, prefix: "\#{alpha}\#{beta}"}
1648
1681
  end
1649
1682
  merger.default_options[:clear].should equal(options)
1650
1683
 
1651
- merger = store.with(options).with(:opt2 => :overwrite, :opt3 => :val3, :prefix => beta, :except => [:load, :store])
1684
+ merger = store.with(options).with(opt2: :overwrite, opt3: :val3, prefix: beta, except: [:load, :store])
1652
1685
  (Moneta::OptionMerger::METHODS - [:load, :store]).each do |method|
1653
- merger.default_options[method].should == {:opt1 => :val1, :opt2 => :overwrite, :opt3 => :val3, :prefix => "\#{alpha}\#{beta}"}
1686
+ merger.default_options[method].should == {opt1: :val1, opt2: :overwrite, opt3: :val3, prefix: "\#{alpha}\#{beta}"}
1654
1687
  end
1655
1688
  merger.default_options[:load].should equal(options)
1656
1689
  merger.default_options[:store].should equal(options)
@@ -1658,29 +1691,29 @@ it 'merges options except for some methods' do
1658
1691
  end
1659
1692
 
1660
1693
  it 'has method #raw' do
1661
- store.raw.default_options.should == {:store=>{:raw=>true},:create=>{:raw=>true},:load=>{:raw=>true},:delete=>{:raw=>true}}
1694
+ store.raw.default_options.should == {store:{raw:true},create:{raw:true},load:{raw:true},delete:{raw:true}}
1662
1695
  store.raw.should equal(store.raw.raw)
1663
1696
  end
1664
1697
 
1665
1698
  it 'has method #expires' do
1666
- store.expires(10).default_options.should == {:store=>{:expires=>10},:create=>{:expires=>10},:increment=>{:expires=>10}}
1699
+ store.expires(10).default_options.should == {store:{expires:10},create:{expires:10},increment:{expires:10}}
1667
1700
  end
1668
1701
 
1669
1702
  it 'has method #prefix' do
1670
- store.prefix('a').default_options.should == {:store=>{:prefix=>'a'},:load=>{:prefix=>'a'},:create=>{:prefix=>'a'},
1671
- :delete=>{:prefix=>'a'},:key? => {:prefix=>'a'},:increment=>{:prefix=>'a'}}
1703
+ store.prefix('a').default_options.should == {store:{prefix:'a'},load:{prefix:'a'},create:{prefix:'a'},
1704
+ delete:{prefix:'a'},key?: {prefix:'a'},increment:{prefix:'a'}}
1672
1705
 
1673
- store.prefix('a').prefix('b').default_options.should == {:store=>{:prefix=>'ab'},:load=>{:prefix=>'ab'},:create=>{:prefix=>'ab'},
1674
- :delete=>{:prefix=>'ab'},:key? => {:prefix=>'ab'},:increment=>{:prefix=>'ab'}}
1706
+ store.prefix('a').prefix('b').default_options.should == {store:{prefix:'ab'},load:{prefix:'ab'},create:{prefix:'ab'},
1707
+ delete:{prefix:'ab'},key?: {prefix:'ab'},increment:{prefix:'ab'}}
1675
1708
 
1676
- store.raw.prefix('b').default_options.should == {:store=>{:raw=>true,:prefix=>'b'},:load=>{:raw=>true,:prefix=>'b'},:create=>{:raw=>true,:prefix=>'b'},:delete=>{:raw=>true,:prefix=>'b'},:key? => {:prefix=>'b'},:increment=>{:prefix=>'b'}}
1709
+ store.raw.prefix('b').default_options.should == {store:{raw:true,prefix:'b'},load:{raw:true,prefix:'b'},create:{raw:true,prefix:'b'},delete:{raw:true,prefix:'b'},key?: {prefix:'b'},increment:{prefix:'b'}}
1677
1710
 
1678
- store.prefix('a').raw.default_options.should == {:store=>{:raw=>true,:prefix=>'a'},:load=>{:raw=>true,:prefix=>'a'},:create=>{:raw=>true,:prefix=>'a'},:delete=>{:raw=>true,:prefix=>'a'},:key? => {:prefix=>'a'},:increment=>{:prefix=>'a'}}
1711
+ store.prefix('a').raw.default_options.should == {store:{raw:true,prefix:'a'},load:{raw:true,prefix:'a'},create:{raw:true,prefix:'a'},delete:{raw:true,prefix:'a'},key?: {prefix:'a'},increment:{prefix:'a'}}
1679
1712
  end
1680
1713
 
1681
1714
  it 'supports adding proxis using #with' do
1682
- compressed_store = store.with(:prefix => 'compressed') do
1683
- use :Transformer, :value => :zlib
1715
+ compressed_store = store.with(prefix: 'compressed') do
1716
+ use :Transformer, value: :zlib
1684
1717
  end
1685
1718
  store['key'] = 'uncompressed value'
1686
1719
  compressed_store['key'] = 'compressed value'
@@ -1768,7 +1801,7 @@ it 'fetches a key with a block with fetch, if the key is not available' do
1768
1801
  end
1769
1802
 
1770
1803
  it 'accepts frozen options' do
1771
- options = {:option1 => 1, :options2 => 2}
1804
+ options = {option1: 1, options2: 2}
1772
1805
  options.freeze
1773
1806
  store.key?(#{key1}, options).should be_false
1774
1807
  store.load(#{key1}, options).should be_nil
@@ -1902,8 +1935,8 @@ SPECS['multiprocess'] = %{it 'supports access by multiple instances/processes' d
1902
1935
  store2.close
1903
1936
  end}
1904
1937
 
1905
- SPECS['expires'] = %{it 'supports expires on store and []', :retry => 3 do
1906
- store.store('key1', 'val1', :expires => 3)
1938
+ SPECS['expires'] = %{it 'supports expires on store and []', retry: 3 do
1939
+ store.store('key1', 'val1', expires: 3)
1907
1940
  store['key1'].should == 'val1'
1908
1941
  sleep 1
1909
1942
  store['key1'].should == 'val1'
@@ -1912,14 +1945,14 @@ SPECS['expires'] = %{it 'supports expires on store and []', :retry => 3 do
1912
1945
  end
1913
1946
 
1914
1947
  it 'supports strict expires on store and []' do
1915
- store.store('key1', 'val1', :expires => 2)
1948
+ store.store('key1', 'val1', expires: 2)
1916
1949
  store['key1'].should == 'val1'
1917
1950
  sleep 3 # Sleep 3 seconds because after 2 seconds the value can still exist!
1918
1951
  store['key1'].should be_nil
1919
1952
  end
1920
1953
 
1921
- it 'supports expires on store and fetch', :retry => 3 do
1922
- store.store('key1', 'val1', :expires => 3)
1954
+ it 'supports expires on store and fetch', retry: 3 do
1955
+ store.store('key1', 'val1', expires: 3)
1923
1956
  store.fetch('key1').should == 'val1'
1924
1957
  sleep 1
1925
1958
  store.fetch('key1').should == 'val1'
@@ -1928,28 +1961,28 @@ it 'supports expires on store and fetch', :retry => 3 do
1928
1961
  end
1929
1962
 
1930
1963
  it 'supports strict expires on store and fetch' do
1931
- store.store('key1', 'val1', :expires => 2)
1964
+ store.store('key1', 'val1', expires: 2)
1932
1965
  store.fetch('key1').should == 'val1'
1933
1966
  sleep 3 # Sleep 3 seconds because after 2 seconds the value can still exist!
1934
1967
  store.fetch('key1').should be_nil
1935
1968
  end
1936
1969
 
1937
1970
  it 'supports 0 as no-expires on store and []' do
1938
- store.store('key1', 'val1', :expires => 0)
1971
+ store.store('key1', 'val1', expires: 0)
1939
1972
  store['key1'].should == 'val1'
1940
1973
  sleep 2
1941
1974
  store['key1'].should == 'val1'
1942
1975
  end
1943
1976
 
1944
1977
  it 'supports false as no-expires on store and []' do
1945
- store.store('key1', 'val1', :expires => false)
1978
+ store.store('key1', 'val1', expires: false)
1946
1979
  store['key1'].should == 'val1'
1947
1980
  sleep 2
1948
1981
  store['key1'].should == 'val1'
1949
1982
  end
1950
1983
 
1951
- it 'supports expires on store and load', :retry => 3 do
1952
- store.store('key1', 'val1', :expires => 3)
1984
+ it 'supports expires on store and load', retry: 3 do
1985
+ store.store('key1', 'val1', expires: 3)
1953
1986
  store.load('key1').should == 'val1'
1954
1987
  sleep 1
1955
1988
  store.load('key1').should == 'val1'
@@ -1958,14 +1991,14 @@ it 'supports expires on store and load', :retry => 3 do
1958
1991
  end
1959
1992
 
1960
1993
  it 'supports strict expires on store and load' do
1961
- store.store('key1', 'val1', :expires => 2)
1994
+ store.store('key1', 'val1', expires: 2)
1962
1995
  store.load('key1').should == 'val1'
1963
1996
  sleep 3 # Sleep 3 seconds because after 2 seconds the value can still exist!
1964
1997
  store.load('key1').should be_nil
1965
1998
  end
1966
1999
 
1967
- it 'supports expires on store and #key?', :retry => 3 do
1968
- store.store('key1', 'val1', :expires => 3)
2000
+ it 'supports expires on store and #key?', retry: 3 do
2001
+ store.store('key1', 'val1', expires: 3)
1969
2002
  store.key?('key1').should be_true
1970
2003
  sleep 1
1971
2004
  store.key?('key1').should be_true
@@ -1974,17 +2007,17 @@ it 'supports expires on store and #key?', :retry => 3 do
1974
2007
  end
1975
2008
 
1976
2009
  it 'supports strict expires on store and #key?' do
1977
- store.store('key1', 'val1', :expires => 2)
2010
+ store.store('key1', 'val1', expires: 2)
1978
2011
  store.key?('key1').should be_true
1979
2012
  sleep 3 # Sleep 3 seconds because after 2 seconds the value can still exist!
1980
2013
  store.key?('key1').should be_false
1981
2014
  end
1982
2015
 
1983
- it 'supports updating the expiration time in load', :retry => 3 do
1984
- store.store('key2', 'val2', :expires => 3)
2016
+ it 'supports updating the expiration time in load', retry: 3 do
2017
+ store.store('key2', 'val2', expires: 3)
1985
2018
  store['key2'].should == 'val2'
1986
2019
  sleep 1
1987
- store.load('key2', :expires => 5).should == 'val2'
2020
+ store.load('key2', expires: 5).should == 'val2'
1988
2021
  store['key2'].should == 'val2'
1989
2022
  sleep 3
1990
2023
  store['key2'].should == 'val2'
@@ -1993,24 +2026,24 @@ it 'supports updating the expiration time in load', :retry => 3 do
1993
2026
  end
1994
2027
 
1995
2028
  it 'supports 0 as no-expires in load' do
1996
- store.store('key1', 'val1', :expires => 2)
1997
- store.load('key1', :expires => 0).should == 'val1'
2029
+ store.store('key1', 'val1', expires: 2)
2030
+ store.load('key1', expires: 0).should == 'val1'
1998
2031
  sleep 3
1999
2032
  store.load('key1').should == 'val1'
2000
2033
  end
2001
2034
 
2002
2035
  it 'supports false as no-expires in load' do
2003
- store.store('key1', 'val1', :expires => 2)
2004
- store.load('key1', :expires => false).should == 'val1'
2036
+ store.store('key1', 'val1', expires: 2)
2037
+ store.load('key1', expires: false).should == 'val1'
2005
2038
  sleep 3
2006
2039
  store.load('key1').should == 'val1'
2007
2040
  end
2008
2041
 
2009
- it 'supports updating the expiration time in #key?', :retry => 3 do
2010
- store.store('key2', 'val2', :expires => 3)
2042
+ it 'supports updating the expiration time in #key?', retry: 3 do
2043
+ store.store('key2', 'val2', expires: 3)
2011
2044
  store['key2'].should == 'val2'
2012
2045
  sleep 1
2013
- store.key?('key2', :expires => 5).should be_true
2046
+ store.key?('key2', expires: 5).should be_true
2014
2047
  store['key2'].should == 'val2'
2015
2048
  sleep 3
2016
2049
  store['key2'].should == 'val2'
@@ -2019,24 +2052,24 @@ it 'supports updating the expiration time in #key?', :retry => 3 do
2019
2052
  end
2020
2053
 
2021
2054
  it 'supports 0 as no-expires in #key?' do
2022
- store.store('key1', 'val1', :expires => 2)
2023
- store.key?('key1', :expires => 0).should be_true
2055
+ store.store('key1', 'val1', expires: 2)
2056
+ store.key?('key1', expires: 0).should be_true
2024
2057
  sleep 3
2025
2058
  store['key1'].should == 'val1'
2026
2059
  end
2027
2060
 
2028
2061
  it 'supports false as no-expires in #key?' do
2029
- store.store('key1', 'val1', :expires => 2)
2030
- store.key?('key1', :expires => false ).should be_true
2062
+ store.store('key1', 'val1', expires: 2)
2063
+ store.key?('key1', expires: false ).should be_true
2031
2064
  sleep 3
2032
2065
  store['key1'].should == 'val1'
2033
2066
  end
2034
2067
 
2035
- it 'supports updating the expiration time in fetch', :retry => 3 do
2036
- store.store('key1', 'val1', :expires => 3)
2068
+ it 'supports updating the expiration time in fetch', retry: 3 do
2069
+ store.store('key1', 'val1', expires: 3)
2037
2070
  store['key1'].should == 'val1'
2038
2071
  sleep 1
2039
- store.fetch('key1', nil, :expires => 5).should == 'val1'
2072
+ store.fetch('key1', nil, expires: 5).should == 'val1'
2040
2073
  store['key1'].should == 'val1'
2041
2074
  sleep 3
2042
2075
  store['key1'].should == 'val1'
@@ -2045,28 +2078,28 @@ it 'supports updating the expiration time in fetch', :retry => 3 do
2045
2078
  end
2046
2079
 
2047
2080
  it 'supports 0 as no-expires in fetch' do
2048
- store.store('key1', 'val1', :expires => 2)
2049
- store.fetch('key1', nil, :expires => 0).should == 'val1'
2081
+ store.store('key1', 'val1', expires: 2)
2082
+ store.fetch('key1', nil, expires: 0).should == 'val1'
2050
2083
  sleep 3
2051
2084
  store.load('key1').should == 'val1'
2052
2085
  end
2053
2086
 
2054
2087
  it 'supports false as no-expires in fetch' do
2055
- store.store('key1', 'val1', :expires => 2)
2056
- store.fetch('key1', nil, :expires => false).should == 'val1'
2088
+ store.store('key1', 'val1', expires: 2)
2089
+ store.fetch('key1', nil, expires: false).should == 'val1'
2057
2090
  sleep 3
2058
2091
  store.load('key1').should == 'val1'
2059
2092
  end
2060
2093
 
2061
2094
  it 'strictly respects expires in delete' do
2062
- store.store('key2', 'val2', :expires => 2)
2095
+ store.store('key2', 'val2', expires: 2)
2063
2096
  store['key2'].should == 'val2'
2064
2097
  sleep 3 # Sleep 3 seconds because after 2 seconds the value can still exist!
2065
2098
  store.delete('key2').should be_nil
2066
2099
  end
2067
2100
 
2068
- it 'respects expires in delete', :retry => 3 do
2069
- store.store('key2', 'val2', :expires => 3)
2101
+ it 'respects expires in delete', retry: 3 do
2102
+ store.store('key2', 'val2', expires: 3)
2070
2103
  store['key2'].should == 'val2'
2071
2104
  sleep 1
2072
2105
  store['key2'].should == 'val2'
@@ -2074,8 +2107,8 @@ it 'respects expires in delete', :retry => 3 do
2074
2107
  store.delete('key2').should be_nil
2075
2108
  end
2076
2109
 
2077
- it 'supports the #expires syntactic sugar', :retry => 3 do
2078
- store.store('persistent_key', 'persistent_value', :expires => 0)
2110
+ it 'supports the #expires syntactic sugar', retry: 3 do
2111
+ store.store('persistent_key', 'persistent_value', expires: 0)
2079
2112
  store.expires(1).store('key2', 'val2')
2080
2113
  store['key2'].should == 'val2'
2081
2114
  sleep 2
@@ -2084,32 +2117,32 @@ it 'supports the #expires syntactic sugar', :retry => 3 do
2084
2117
  end
2085
2118
 
2086
2119
  it 'supports false as no-expires on store and []' do
2087
- store.store('key1', 'val1', :expires => false)
2120
+ store.store('key1', 'val1', expires: false)
2088
2121
  store['key1'].should == 'val1'
2089
2122
  sleep 2
2090
2123
  store['key1'].should == 'val1'
2091
2124
  end
2092
2125
 
2093
- it 'does not update the expiration time in #key? when not asked to do so', :retry => 3 do
2094
- store.store('key1', 'val1', :expires => 1)
2126
+ it 'does not update the expiration time in #key? when not asked to do so', retry: 3 do
2127
+ store.store('key1', 'val1', expires: 1)
2095
2128
  store.key?('key1').should be_true
2096
- store.key?('key1', :expires => nil).should be_true
2129
+ store.key?('key1', expires: nil).should be_true
2097
2130
  sleep 2
2098
2131
  store.key?('key1').should be_false
2099
2132
  end
2100
2133
 
2101
- it 'does not update the expiration time in fetch when not asked to do so', :retry => 3 do
2102
- store.store('key1', 'val1', :expires => 1)
2134
+ it 'does not update the expiration time in fetch when not asked to do so', retry: 3 do
2135
+ store.store('key1', 'val1', expires: 1)
2103
2136
  store.fetch('key1').should == 'val1'
2104
- store.fetch('key1', :expires => nil).should == 'val1'
2137
+ store.fetch('key1', expires: nil).should == 'val1'
2105
2138
  sleep 2
2106
2139
  store.fetch('key1').should be_nil
2107
2140
  end
2108
2141
 
2109
- it 'does not update the expiration time in load when not asked to do so', :retry => 3 do
2110
- store.store('key1', 'val1', :expires => 1)
2142
+ it 'does not update the expiration time in load when not asked to do so', retry: 3 do
2143
+ store.store('key1', 'val1', expires: 1)
2111
2144
  store.load('key1').should == 'val1'
2112
- store.load('key1', :expires => nil).should == 'val1'
2145
+ store.load('key1', expires: nil).should == 'val1'
2113
2146
  sleep 2
2114
2147
  store.load('key1').should be_nil
2115
2148
  end}
@@ -2142,10 +2175,10 @@ SPECS['concurrent_increment'] = %{def increment_thread(name)
2142
2175
  s = new_store
2143
2176
  100.times do |i|
2144
2177
  100.times do |j|
2145
- s.increment("counter\#{j}", 1, :expires => false)
2178
+ s.increment("counter\#{j}", 1, expires: false)
2146
2179
  Thread.pass if rand(1000) >= 995
2147
2180
  end
2148
- s.store("\#{name}\#{i}", i.to_s, :expires => false)
2181
+ s.store("\#{name}\#{i}", i.to_s, expires: false)
2149
2182
  end
2150
2183
  s.close
2151
2184
  end
@@ -2172,7 +2205,7 @@ SPECS['concurrent_create'] = %{def create_thread(name)
2172
2205
  Thread.new do
2173
2206
  s = new_store
2174
2207
  1000.times do |i|
2175
- s[i.to_s].should == name if s.create(i.to_s, name, :expires => false)
2208
+ s[i.to_s].should == name if s.create(i.to_s, name, expires: false)
2176
2209
  Thread.pass if rand(100) >= 99
2177
2210
  end
2178
2211
  s.close
@@ -2194,9 +2227,9 @@ SPECS['increment'] = %{it 'initializes in #increment with 1' do
2194
2227
  store.key?('inckey').should be_true
2195
2228
  store.raw['inckey'].should == '1'
2196
2229
  store.raw.load('inckey').should == '1'
2197
- store.load('inckey', :raw => true).should == '1'
2230
+ store.load('inckey', raw: true).should == '1'
2198
2231
 
2199
- store.delete('inckey', :raw => true).should == '1'
2232
+ store.delete('inckey', raw: true).should == '1'
2200
2233
  store.key?('inckey').should be_false
2201
2234
  end
2202
2235
 
@@ -2204,14 +2237,14 @@ it 'initializes in #increment with higher value' do
2204
2237
  store.increment('inckey', 42).should == 42
2205
2238
  store.key?('inckey').should be_true
2206
2239
  store.raw['inckey'].should == '42'
2207
- store.delete('inckey', :raw => true).should == '42'
2240
+ store.delete('inckey', raw: true).should == '42'
2208
2241
  end
2209
2242
 
2210
2243
  it 'initializes in #increment with 0' do
2211
2244
  store.increment('inckey', 0).should == 0
2212
2245
  store.key?('inckey').should be_true
2213
2246
  store.raw['inckey'].should == '0'
2214
- store.delete('inckey', :raw => true).should == '0'
2247
+ store.delete('inckey', raw: true).should == '0'
2215
2248
  end
2216
2249
 
2217
2250
  it 'initializes in #decrement with 0' do
@@ -2253,7 +2286,7 @@ it 'supports decrementing existing value' do
2253
2286
  end
2254
2287
 
2255
2288
  it 'interprets raw value as integer' do
2256
- store.store('inckey', '42', :raw => true)
2289
+ store.store('inckey', '42', raw: true)
2257
2290
  store.increment('inckey').should == 43
2258
2291
  store.raw['inckey'].should == '43'
2259
2292
  end
@@ -2318,15 +2351,15 @@ SPECS['not_create'] = %{it 'does not support #create' do
2318
2351
  end}
2319
2352
 
2320
2353
  SPECS['create_expires'] = %{it 'creates the given key and expires it' do
2321
- store.create('key','value', :expires => 1).should be_true
2354
+ store.create('key','value', expires: 1).should be_true
2322
2355
  store['key'].should == 'value'
2323
2356
  sleep 2
2324
2357
  store.key?('key').should be_false
2325
2358
  end
2326
2359
 
2327
2360
  it 'does not change expires if the key exists' do
2328
- store.store('key', 'value', :expires => false).should == 'value'
2329
- store.create('key','another value', :expires => 1).should be_false
2361
+ store.store('key', 'value', expires: false).should == 'value'
2362
+ store.create('key','another value', expires: 1).should be_false
2330
2363
  store['key'].should == 'value'
2331
2364
  sleep 2
2332
2365
  store['key'].should == 'value'
@@ -2383,11 +2416,11 @@ end}
2383
2416
 
2384
2417
  SPECS['transform_value'] = %{it 'allows to bypass transformer with :raw' do
2385
2418
  store['key'] = 'value'
2386
- load_value(store.load('key', :raw => true)).should == 'value'
2419
+ load_value(store.load('key', raw: true)).should == 'value'
2387
2420
 
2388
- store.store('key', 'value', :raw => true)
2389
- store.load('key', :raw => true).should == 'value'
2390
- store.delete('key', :raw => true).should == 'value'
2421
+ store.store('key', 'value', raw: true)
2422
+ store.load('key', raw: true).should == 'value'
2423
+ store.delete('key', raw: true).should == 'value'
2391
2424
  end
2392
2425
 
2393
2426
  it 'allows to bypass transformer with raw syntactic sugar' do
@@ -2404,12 +2437,12 @@ it 'allows to bypass transformer with raw syntactic sugar' do
2404
2437
  end
2405
2438
 
2406
2439
  it 'returns unmarshalled value' do
2407
- store.store('key', 'unmarshalled value', :raw => true)
2408
- store.load('key', :raw => true).should == 'unmarshalled value'
2440
+ store.store('key', 'unmarshalled value', raw: true)
2441
+ store.load('key', raw: true).should == 'unmarshalled value'
2409
2442
  end
2410
2443
 
2411
2444
  it 'might raise exception on invalid value' do
2412
- store.store('key', 'unmarshalled value', :raw => true)
2445
+ store.store('key', 'unmarshalled value', raw: true)
2413
2446
 
2414
2447
  begin
2415
2448
  store['key'].should == load_value('unmarshalled value')
@@ -2426,30 +2459,30 @@ end}
2426
2459
 
2427
2460
  SPECS['transform_value_expires'] = %{it 'allows to bypass transformer with :raw' do
2428
2461
  store['key'] = 'value'
2429
- load_value(store.load('key', :raw => true)).should == 'value'
2462
+ load_value(store.load('key', raw: true)).should == 'value'
2430
2463
  store['key'] = [1,2,3]
2431
- load_value(store.load('key', :raw => true)).should == [[1,2,3]]
2464
+ load_value(store.load('key', raw: true)).should == [[1,2,3]]
2432
2465
  store['key'] = nil
2433
- load_value(store.load('key', :raw => true)).should == [nil]
2466
+ load_value(store.load('key', raw: true)).should == [nil]
2434
2467
  store['key'] = false
2435
- load_value(store.load('key', :raw => true)).should be_false
2468
+ load_value(store.load('key', raw: true)).should be_false
2436
2469
 
2437
- store.store('key', 'value', :expires => 10)
2438
- load_value(store.load('key', :raw => true)).first.should == 'value'
2439
- load_value(store.load('key', :raw => true)).last.should respond_to(:to_int)
2470
+ store.store('key', 'value', expires: 10)
2471
+ load_value(store.load('key', raw: true)).first.should == 'value'
2472
+ load_value(store.load('key', raw: true)).last.should respond_to(:to_int)
2440
2473
 
2441
- store.store('key', 'value', :raw => true)
2442
- store.load('key', :raw => true).should == 'value'
2443
- store.delete('key', :raw => true).should == 'value'
2474
+ store.store('key', 'value', raw: true)
2475
+ store.load('key', raw: true).should == 'value'
2476
+ store.delete('key', raw: true).should == 'value'
2444
2477
  end
2445
2478
 
2446
2479
  it 'returns unmarshalled value' do
2447
- store.store('key', 'unmarshalled value', :raw => true)
2448
- store.load('key', :raw => true).should == 'unmarshalled value'
2480
+ store.store('key', 'unmarshalled value', raw: true)
2481
+ store.load('key', raw: true).should == 'unmarshalled value'
2449
2482
  end
2450
2483
 
2451
2484
  it 'might raise exception on invalid value' do
2452
- store.store('key', 'unmarshalled value', :raw => true)
2485
+ store.store('key', 'unmarshalled value', raw: true)
2453
2486
 
2454
2487
  begin
2455
2488
  store['key'].should == load_value('unmarshalled value')
@@ -2509,7 +2542,7 @@ TESTS.each do |name, options|
2509
2542
  opts = options.delete(:options)
2510
2543
  opts = ', ' << opts if opts
2511
2544
 
2512
- build ||= "Moneta.new(#{store.inspect}#{opts}, :logger => {:file => File.join(make_tempdir, '#{name}.log')})"
2545
+ build ||= "Moneta.new(#{store.inspect}#{opts}, logger: {file: File.join(make_tempdir, '#{name}.log')})"
2513
2546
 
2514
2547
  code = %{#{header}require 'helper'
2515
2548