moneta 0.7.20 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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