moneta 1.5.2 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (254) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +12 -0
  3. data/CONTRIBUTORS +1 -0
  4. data/LICENSE +1 -1
  5. data/lib/active_support/cache/moneta_store.rb +32 -6
  6. data/lib/moneta/adapters/activerecord/backend.rb +50 -0
  7. data/lib/moneta/adapters/activerecord/v5_backend.rb +80 -0
  8. data/lib/moneta/adapters/activerecord.rb +50 -95
  9. data/lib/moneta/adapters/activesupportcache.rb +69 -14
  10. data/lib/moneta/adapters/client.rb +1 -1
  11. data/lib/moneta/adapters/hbase.rb +1 -1
  12. data/lib/moneta/adapters/redis.rb +2 -1
  13. data/lib/moneta/adapters/sequel/mysql.rb +6 -18
  14. data/lib/moneta/adapters/sequel/postgres_hstore.rb +8 -1
  15. data/lib/moneta/adapters/sqlite.rb +4 -2
  16. data/lib/moneta/adapters/tokyotyrant.rb +1 -1
  17. data/lib/moneta/adapters/yaml.rb +7 -1
  18. data/lib/moneta/pool.rb +16 -18
  19. data/lib/moneta/server.rb +9 -11
  20. data/lib/moneta/transformer/config.rb +4 -4
  21. data/lib/moneta/transformer.rb +4 -0
  22. data/lib/moneta/version.rb +1 -1
  23. metadata +9 -452
  24. data/.github/workflows/ruby.yml +0 -425
  25. data/.gitignore +0 -15
  26. data/.rspec +0 -4
  27. data/.rubocop.yml +0 -194
  28. data/.yardopts +0 -6
  29. data/Gemfile +0 -206
  30. data/feature_matrix.yaml +0 -227
  31. data/moneta.gemspec +0 -36
  32. data/script/benchmarks +0 -605
  33. data/script/contributors +0 -12
  34. data/script/memusage +0 -40
  35. data/script/parallel-tests +0 -82
  36. data/script/start-couchdb +0 -27
  37. data/script/start-hbase +0 -47
  38. data/script/start-services +0 -10
  39. data/script/travis-logs +0 -14
  40. data/script/update-feature-matrix +0 -148
  41. data/spec/active_support/cache_moneta_store_spec.rb +0 -282
  42. data/spec/features/concurrent_create.rb +0 -42
  43. data/spec/features/concurrent_increment.rb +0 -39
  44. data/spec/features/create.rb +0 -25
  45. data/spec/features/create_expires.rb +0 -19
  46. data/spec/features/default_expires.rb +0 -14
  47. data/spec/features/each_key.rb +0 -119
  48. data/spec/features/expires.rb +0 -296
  49. data/spec/features/features.rb +0 -16
  50. data/spec/features/increment.rb +0 -98
  51. data/spec/features/marshallable_key.rb +0 -43
  52. data/spec/features/marshallable_value.rb +0 -7
  53. data/spec/features/multiprocess.rb +0 -8
  54. data/spec/features/not_create.rb +0 -7
  55. data/spec/features/not_each_key.rb +0 -7
  56. data/spec/features/not_increment.rb +0 -13
  57. data/spec/features/not_persist.rb +0 -9
  58. data/spec/features/null.rb +0 -66
  59. data/spec/features/persist.rb +0 -14
  60. data/spec/features/returndifferent.rb +0 -9
  61. data/spec/features/returnsame.rb +0 -9
  62. data/spec/features/store.rb +0 -261
  63. data/spec/features/store_large.rb +0 -13
  64. data/spec/features/transform_value.rb +0 -44
  65. data/spec/features/transform_value_expires.rb +0 -41
  66. data/spec/helper.rb +0 -445
  67. data/spec/moneta/adapters/activerecord/adapter_activerecord_existing_connection_spec.rb +0 -62
  68. data/spec/moneta/adapters/activerecord/adapter_activerecord_spec.rb +0 -128
  69. data/spec/moneta/adapters/activerecord/standard_activerecord_spec.rb +0 -22
  70. data/spec/moneta/adapters/activerecord/standard_activerecord_with_expires_spec.rb +0 -28
  71. data/spec/moneta/adapters/activesupportcache/adapter_activesupportcache_spec.rb +0 -54
  72. data/spec/moneta/adapters/activesupportcache/adapter_activesupportcache_with_default_expires_spec.rb +0 -54
  73. data/spec/moneta/adapters/activesupportcache/standard_activesupportcache_spec.rb +0 -14
  74. data/spec/moneta/adapters/cassandra/adapter_cassandra_spec.rb +0 -17
  75. data/spec/moneta/adapters/cassandra/adapter_cassandra_with_default_expires_spec.rb +0 -18
  76. data/spec/moneta/adapters/cassandra/helper.rb +0 -18
  77. data/spec/moneta/adapters/cassandra/standard_cassandra_spec.rb +0 -18
  78. data/spec/moneta/adapters/client/adapter_client_spec.rb +0 -11
  79. data/spec/moneta/adapters/client/client_helper.rb +0 -25
  80. data/spec/moneta/adapters/client/standard_client_tcp_spec.rb +0 -23
  81. data/spec/moneta/adapters/client/standard_client_unix_spec.rb +0 -28
  82. data/spec/moneta/adapters/cookie/adapter_cookie_spec.rb +0 -7
  83. data/spec/moneta/adapters/couch/adapter_couch_spec.rb +0 -204
  84. data/spec/moneta/adapters/couch/standard_couch_spec.rb +0 -15
  85. data/spec/moneta/adapters/couch/standard_couch_with_expires_spec.rb +0 -19
  86. data/spec/moneta/adapters/datamapper/adapter_datamapper_spec.rb +0 -64
  87. data/spec/moneta/adapters/datamapper/standard_datamapper_spec.rb +0 -21
  88. data/spec/moneta/adapters/datamapper/standard_datamapper_with_expires_spec.rb +0 -26
  89. data/spec/moneta/adapters/datamapper/standard_datamapper_with_repository_spec.rb +0 -22
  90. data/spec/moneta/adapters/daybreak/adapter_daybreak_spec.rb +0 -7
  91. data/spec/moneta/adapters/daybreak/standard_daybreak_spec.rb +0 -7
  92. data/spec/moneta/adapters/daybreak/standard_daybreak_with_expires_spec.rb +0 -11
  93. data/spec/moneta/adapters/dbm/adapter_dbm_spec.rb +0 -7
  94. data/spec/moneta/adapters/dbm/standard_dbm_spec.rb +0 -7
  95. data/spec/moneta/adapters/dbm/standard_dbm_with_expires_spec.rb +0 -12
  96. data/spec/moneta/adapters/faraday_helper.rb +0 -10
  97. data/spec/moneta/adapters/file/adapter_file_spec.rb +0 -7
  98. data/spec/moneta/adapters/file/standard_file_spec.rb +0 -7
  99. data/spec/moneta/adapters/file/standard_file_with_expires_spec.rb +0 -11
  100. data/spec/moneta/adapters/fog/adapter_fog_spec.rb +0 -16
  101. data/spec/moneta/adapters/fog/standard_fog_spec.rb +0 -15
  102. data/spec/moneta/adapters/fog/standard_fog_with_expires_spec.rb +0 -20
  103. data/spec/moneta/adapters/gdbm/adapter_gdbm_spec.rb +0 -7
  104. data/spec/moneta/adapters/gdbm/standard_gdbm_spec.rb +0 -7
  105. data/spec/moneta/adapters/gdbm/standard_gdbm_with_expires_spec.rb +0 -11
  106. data/spec/moneta/adapters/hashfile/standard_hashfile_spec.rb +0 -7
  107. data/spec/moneta/adapters/hashfile/standard_hashfile_with_expires_spec.rb +0 -12
  108. data/spec/moneta/adapters/hbase/adapter_hbase_spec.rb +0 -7
  109. data/spec/moneta/adapters/hbase/standard_hbase_spec.rb +0 -4
  110. data/spec/moneta/adapters/hbase/standard_hbase_with_expires_spec.rb +0 -8
  111. data/spec/moneta/adapters/kyotocabinet/adapter_kyotocabinet_spec.rb +0 -7
  112. data/spec/moneta/adapters/kyotocabinet/standard_kyotocabinet_spec.rb +0 -7
  113. data/spec/moneta/adapters/kyotocabinet/standard_kyotocabinet_with_expires_spec.rb +0 -14
  114. data/spec/moneta/adapters/leveldb/adapter_leveldb_spec.rb +0 -7
  115. data/spec/moneta/adapters/leveldb/standard_leveldb_spec.rb +0 -7
  116. data/spec/moneta/adapters/leveldb/standard_leveldb_with_expires_spec.rb +0 -11
  117. data/spec/moneta/adapters/lmdb/adapter_lmdb_spec.rb +0 -7
  118. data/spec/moneta/adapters/lmdb/adapter_lmdb_with_db_spec.rb +0 -7
  119. data/spec/moneta/adapters/lmdb/standard_lmdb_spec.rb +0 -7
  120. data/spec/moneta/adapters/lmdb/standard_lmdb_with_expires_spec.rb +0 -11
  121. data/spec/moneta/adapters/localmemcache/adapter_localmemcache_spec.rb +0 -7
  122. data/spec/moneta/adapters/localmemcache/standard_localmemcache_spec.rb +0 -7
  123. data/spec/moneta/adapters/localmemcache/standard_localmemcache_with_expires_spec.rb +0 -11
  124. data/spec/moneta/adapters/lruhash/adapter_lruhash_spec.rb +0 -118
  125. data/spec/moneta/adapters/lruhash/standard_lruhash_spec.rb +0 -4
  126. data/spec/moneta/adapters/lruhash/standard_lruhash_with_expires_spec.rb +0 -8
  127. data/spec/moneta/adapters/memcached/adapter_memcached_spec.rb +0 -13
  128. data/spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_spec.rb +0 -25
  129. data/spec/moneta/adapters/memcached/dalli/standard_memcached_dalli_spec.rb +0 -11
  130. data/spec/moneta/adapters/memcached/native/adapter_memcached_native_spec.rb +0 -25
  131. data/spec/moneta/adapters/memcached/native/standard_memcached_native_spec.rb +0 -11
  132. data/spec/moneta/adapters/memcached/standard_memcached_spec.rb +0 -17
  133. data/spec/moneta/adapters/memcached_helper.rb +0 -20
  134. data/spec/moneta/adapters/memory/adapter_memory_spec.rb +0 -7
  135. data/spec/moneta/adapters/memory/standard_memory_spec.rb +0 -4
  136. data/spec/moneta/adapters/memory/standard_memory_with_compress_spec.rb +0 -9
  137. data/spec/moneta/adapters/memory/standard_memory_with_expires_spec.rb +0 -8
  138. data/spec/moneta/adapters/memory/standard_memory_with_json_key_serializer_spec.rb +0 -4
  139. data/spec/moneta/adapters/memory/standard_memory_with_json_serializer_spec.rb +0 -9
  140. data/spec/moneta/adapters/memory/standard_memory_with_json_value_serializer_spec.rb +0 -9
  141. data/spec/moneta/adapters/memory/standard_memory_with_prefix_spec.rb +0 -41
  142. data/spec/moneta/adapters/memory/standard_memory_with_snappy_compress_spec.rb +0 -9
  143. data/spec/moneta/adapters/mongo/adapter_mongo_spec.rb +0 -41
  144. data/spec/moneta/adapters/mongo/adapter_mongo_with_default_expires_spec.rb +0 -14
  145. data/spec/moneta/adapters/mongo/standard_mongo_spec.rb +0 -7
  146. data/spec/moneta/adapters/null/null_adapter_spec.rb +0 -7
  147. data/spec/moneta/adapters/null/standard_null_spec.rb +0 -9
  148. data/spec/moneta/adapters/pstore/adapter_pstore_spec.rb +0 -7
  149. data/spec/moneta/adapters/pstore/standard_pstore_spec.rb +0 -9
  150. data/spec/moneta/adapters/pstore/standard_pstore_with_expires_spec.rb +0 -13
  151. data/spec/moneta/adapters/redis/adapter_redis_spec.rb +0 -20
  152. data/spec/moneta/adapters/redis/standard_redis_spec.rb +0 -14
  153. data/spec/moneta/adapters/restclient/adapter_restclient_spec.rb +0 -13
  154. data/spec/moneta/adapters/restclient/helper.rb +0 -12
  155. data/spec/moneta/adapters/restclient/standard_restclient_spec.rb +0 -13
  156. data/spec/moneta/adapters/riak/adapter_riak_spec.rb +0 -14
  157. data/spec/moneta/adapters/riak/standard_riak_spec.rb +0 -10
  158. data/spec/moneta/adapters/riak/standard_riak_with_expires_spec.rb +0 -14
  159. data/spec/moneta/adapters/sdbm/adapter_sdbm_spec.rb +0 -7
  160. data/spec/moneta/adapters/sdbm/standard_sdbm_spec.rb +0 -7
  161. data/spec/moneta/adapters/sdbm/standard_sdbm_with_expires_spec.rb +0 -11
  162. data/spec/moneta/adapters/sequel/adapter_sequel_spec.rb +0 -133
  163. data/spec/moneta/adapters/sequel/helper.rb +0 -83
  164. data/spec/moneta/adapters/sequel/standard_sequel_spec.rb +0 -8
  165. data/spec/moneta/adapters/sequel/standard_sequel_with_expires_spec.rb +0 -18
  166. data/spec/moneta/adapters/sqlite/adapter_sqlite_spec.rb +0 -7
  167. data/spec/moneta/adapters/sqlite/standard_sqlite_spec.rb +0 -7
  168. data/spec/moneta/adapters/sqlite/standard_sqlite_with_expires_spec.rb +0 -15
  169. data/spec/moneta/adapters/tdb/adapter_tdb_spec.rb +0 -7
  170. data/spec/moneta/adapters/tdb/standard_tdb_spec.rb +0 -7
  171. data/spec/moneta/adapters/tdb/standard_tdb_with_expires_spec.rb +0 -11
  172. data/spec/moneta/adapters/tokyocabinet/adapter_tokyocabinet_bdb_spec.rb +0 -7
  173. data/spec/moneta/adapters/tokyocabinet/adapter_tokyocabinet_hdb_spec.rb +0 -7
  174. data/spec/moneta/adapters/tokyocabinet/standard_tokyocabinet_spec.rb +0 -7
  175. data/spec/moneta/adapters/tokyocabinet/standard_tokyocabinet_with_expires_spec.rb +0 -11
  176. data/spec/moneta/adapters/tokyotyrant/adapter_tokyotyrant_spec.rb +0 -11
  177. data/spec/moneta/adapters/tokyotyrant/helper.rb +0 -12
  178. data/spec/moneta/adapters/tokyotyrant/standard_tokyotyrant_spec.rb +0 -7
  179. data/spec/moneta/adapters/tokyotyrant/standard_tokyotyrant_with_expires_spec.rb +0 -12
  180. data/spec/moneta/adapters/yaml/adapter_yaml_spec.rb +0 -7
  181. data/spec/moneta/adapters/yaml/standard_yaml_spec.rb +0 -9
  182. data/spec/moneta/adapters/yaml/standard_yaml_with_expires_spec.rb +0 -13
  183. data/spec/moneta/builder_spec.rb +0 -50
  184. data/spec/moneta/config_spec.rb +0 -219
  185. data/spec/moneta/mutex_spec.rb +0 -55
  186. data/spec/moneta/proxies/cache/cache_file_memory_spec.rb +0 -24
  187. data/spec/moneta/proxies/cache/cache_memory_null_spec.rb +0 -12
  188. data/spec/moneta/proxies/enumerable/enumerable_spec.rb +0 -26
  189. data/spec/moneta/proxies/expires/expires_file_spec.rb +0 -28
  190. data/spec/moneta/proxies/expires/expires_memory_spec.rb +0 -15
  191. data/spec/moneta/proxies/expires/expires_memory_with_default_expires_spec.rb +0 -16
  192. data/spec/moneta/proxies/fallback/fallback_spec.rb +0 -42
  193. data/spec/moneta/proxies/lock/lock_spec.rb +0 -10
  194. data/spec/moneta/proxies/optionmerger/optionmerger_spec.rb +0 -96
  195. data/spec/moneta/proxies/pool/pool_spec.rb +0 -353
  196. data/spec/moneta/proxies/proxy/proxy_expires_memory_spec.rb +0 -16
  197. data/spec/moneta/proxies/shared/shared_tcp_spec.rb +0 -59
  198. data/spec/moneta/proxies/shared/shared_unix_spec.rb +0 -58
  199. data/spec/moneta/proxies/transformer/transformer_bencode_spec.rb +0 -19
  200. data/spec/moneta/proxies/transformer/transformer_bert_spec.rb +0 -19
  201. data/spec/moneta/proxies/transformer/transformer_bson_spec.rb +0 -25
  202. data/spec/moneta/proxies/transformer/transformer_bzip2_spec.rb +0 -19
  203. data/spec/moneta/proxies/transformer/transformer_json_spec.rb +0 -19
  204. data/spec/moneta/proxies/transformer/transformer_key_inspect_spec.rb +0 -17
  205. data/spec/moneta/proxies/transformer/transformer_key_marshal_spec.rb +0 -17
  206. data/spec/moneta/proxies/transformer/transformer_key_to_s_spec.rb +0 -17
  207. data/spec/moneta/proxies/transformer/transformer_key_yaml_spec.rb +0 -17
  208. data/spec/moneta/proxies/transformer/transformer_lz4_spec.rb +0 -19
  209. data/spec/moneta/proxies/transformer/transformer_lzma_spec.rb +0 -19
  210. data/spec/moneta/proxies/transformer/transformer_lzo_spec.rb +0 -19
  211. data/spec/moneta/proxies/transformer/transformer_marshal_base64_spec.rb +0 -20
  212. data/spec/moneta/proxies/transformer/transformer_marshal_city128_spec.rb +0 -15
  213. data/spec/moneta/proxies/transformer/transformer_marshal_city32_spec.rb +0 -15
  214. data/spec/moneta/proxies/transformer/transformer_marshal_city64_spec.rb +0 -15
  215. data/spec/moneta/proxies/transformer/transformer_marshal_escape_spec.rb +0 -21
  216. data/spec/moneta/proxies/transformer/transformer_marshal_hex_spec.rb +0 -20
  217. data/spec/moneta/proxies/transformer/transformer_marshal_hmac_spec.rb +0 -19
  218. data/spec/moneta/proxies/transformer/transformer_marshal_md5_spec.rb +0 -15
  219. data/spec/moneta/proxies/transformer/transformer_marshal_md5_spread_spec.rb +0 -15
  220. data/spec/moneta/proxies/transformer/transformer_marshal_prefix_base64_spec.rb +0 -33
  221. data/spec/moneta/proxies/transformer/transformer_marshal_prefix_spec.rb +0 -15
  222. data/spec/moneta/proxies/transformer/transformer_marshal_qp_spec.rb +0 -20
  223. data/spec/moneta/proxies/transformer/transformer_marshal_rmd160_spec.rb +0 -15
  224. data/spec/moneta/proxies/transformer/transformer_marshal_sha1_spec.rb +0 -15
  225. data/spec/moneta/proxies/transformer/transformer_marshal_sha256_spec.rb +0 -15
  226. data/spec/moneta/proxies/transformer/transformer_marshal_sha384_spec.rb +0 -15
  227. data/spec/moneta/proxies/transformer/transformer_marshal_sha512_spec.rb +0 -15
  228. data/spec/moneta/proxies/transformer/transformer_marshal_spec.rb +0 -19
  229. data/spec/moneta/proxies/transformer/transformer_marshal_truncate_spec.rb +0 -15
  230. data/spec/moneta/proxies/transformer/transformer_marshal_urlsafe_base64_spec.rb +0 -20
  231. data/spec/moneta/proxies/transformer/transformer_marshal_uuencode_spec.rb +0 -19
  232. data/spec/moneta/proxies/transformer/transformer_msgpack_spec.rb +0 -19
  233. data/spec/moneta/proxies/transformer/transformer_ox_spec.rb +0 -19
  234. data/spec/moneta/proxies/transformer/transformer_php_spec.rb +0 -19
  235. data/spec/moneta/proxies/transformer/transformer_quicklz_spec.rb +0 -19
  236. data/spec/moneta/proxies/transformer/transformer_snappy_spec.rb +0 -19
  237. data/spec/moneta/proxies/transformer/transformer_tnet_spec.rb +0 -19
  238. data/spec/moneta/proxies/transformer/transformer_value_marshal_spec.rb +0 -19
  239. data/spec/moneta/proxies/transformer/transformer_value_yaml_spec.rb +0 -19
  240. data/spec/moneta/proxies/transformer/transformer_yaml_spec.rb +0 -19
  241. data/spec/moneta/proxies/transformer/transformer_zlib_spec.rb +0 -19
  242. data/spec/moneta/proxies/weak_create/weak_create_spec.rb +0 -21
  243. data/spec/moneta/proxies/weak_each_key/weak_each_key_spec.rb +0 -22
  244. data/spec/moneta/proxies/weak_increment/weak_increment_spec.rb +0 -21
  245. data/spec/moneta/semaphore_spec.rb +0 -68
  246. data/spec/moneta/stack_file_memory_spec.rb +0 -15
  247. data/spec/moneta/stack_memory_file_spec.rb +0 -13
  248. data/spec/rack/cache_moneta_spec.rb +0 -355
  249. data/spec/rack/moneta_cookies_spec.rb +0 -83
  250. data/spec/rack/moneta_store_spec.rb +0 -83
  251. data/spec/rack/session_moneta_spec.rb +0 -350
  252. data/spec/restserver.rb +0 -44
  253. data/test/action_dispatch/fixtures/session_autoload_test/foo.rb +0 -10
  254. data/test/action_dispatch/session_moneta_store_test.rb +0 -204
@@ -1,54 +0,0 @@
1
- require_relative '../memcached_helper.rb'
2
-
3
- describe 'adapter_activesupportcache', adapter: :ActiveSupportCache, broken: ::Gem::Version.new(RUBY_ENGINE_VERSION) >= ::Gem::Version.new('3.0.0') do
4
- before :all do
5
- require 'active_support'
6
- require 'active_support/cache/moneta_store'
7
- end
8
-
9
- shared_examples :adapter_activesupportcache do
10
- moneta_build do
11
- Moneta::Adapters::ActiveSupportCache.new(backend: backend)
12
- end
13
-
14
- moneta_specs ADAPTER_SPECS.without_concurrent.without_create.with_native_expires
15
- end
16
-
17
- context 'using MemoryStore' do
18
- let(:t_res) { 0.125 }
19
- let(:min_ttl) { t_res }
20
- use_timecop
21
-
22
- let(:backend) { ActiveSupport::Cache::MemoryStore.new }
23
- include_examples :adapter_activesupportcache
24
- end
25
-
26
- context 'using MemCacheStore', memcached: true do
27
- let(:t_res) { 1 }
28
- let(:min_ttl) { 2 }
29
- use_timecop
30
-
31
- include_context :start_memcached, 11215
32
-
33
- let(:backend) { ActiveSupport::Cache::MemCacheStore.new('127.0.0.1:11215') }
34
- include_examples :adapter_activesupportcache
35
- end
36
-
37
- context 'using RedisCacheStore', redis: true do
38
- let(:t_res) { 1 }
39
- let(:min_ttl) { t_res }
40
- use_timecop
41
-
42
- let(:backend) { ActiveSupport::Cache::RedisCacheStore.new(url: "redis://#{redis_host}:#{redis_port}/1") }
43
- include_examples :adapter_activesupportcache
44
- end
45
-
46
- context 'using MonetaStore' do
47
- let(:t_res) { 0.125 }
48
- let(:min_ttl) { t_res }
49
- use_timecop
50
-
51
- let(:backend) { ActiveSupport::Cache::MonetaStore.new(store: Moneta.new(:Memory)) }
52
- include_examples :adapter_activesupportcache
53
- end
54
- end
@@ -1,54 +0,0 @@
1
- require_relative '../memcached_helper'
2
-
3
- describe 'adapter_activesupportcache_with_default_expires', adapter: :ActiveSupportCache, broken: ::Gem::Version.new(RUBY_ENGINE_VERSION) >= ::Gem::Version.new('3.0.0') do
4
- before :all do
5
- require 'active_support'
6
- require 'active_support/cache/moneta_store'
7
- end
8
-
9
- shared_examples :adapter_activesupportcache_with_default_expires do
10
- moneta_build do
11
- Moneta::Adapters::ActiveSupportCache.new(backend: backend, expires: min_ttl)
12
- end
13
-
14
- moneta_specs ADAPTER_SPECS.without_concurrent.without_create.with_native_expires.with_default_expires
15
- end
16
-
17
- context 'using MemoryStore' do
18
- let(:t_res) { 0.125 }
19
- let(:min_ttl) { t_res }
20
- use_timecop
21
-
22
- let(:backend) { ActiveSupport::Cache::MemoryStore.new }
23
- include_examples :adapter_activesupportcache_with_default_expires
24
- end
25
-
26
- context 'using MemCacheStore', memcached: true do
27
- let(:t_res) { 1 }
28
- let(:min_ttl) { 2 }
29
- use_timecop
30
-
31
- include_context :start_memcached, 11223
32
-
33
- let(:backend) { ActiveSupport::Cache::MemCacheStore.new('127.0.0.1:11223') }
34
- include_examples :adapter_activesupportcache_with_default_expires
35
- end
36
-
37
- context 'using RedisCacheStore' do
38
- let(:t_res) { 1 }
39
- let(:min_ttl) { t_res }
40
- use_timecop
41
-
42
- let(:backend) { ActiveSupport::Cache::RedisCacheStore.new(url: "redis://#{redis_host}:#{redis_port}/2") }
43
- include_examples :adapter_activesupportcache_with_default_expires
44
- end
45
-
46
- context 'using MonetaStore' do
47
- let(:t_res) { 0.125 }
48
- let(:min_ttl) { t_res }
49
- use_timecop
50
-
51
- let(:backend) { ActiveSupport::Cache::MonetaStore.new(store: Moneta.new(:Memory)) }
52
- include_examples :adapter_activesupportcache_with_default_expires
53
- end
54
- end
@@ -1,14 +0,0 @@
1
- describe 'standard_activesupportcache', adapter: :ActiveSupportCache, broken: ::Gem::Version.new(RUBY_ENGINE_VERSION) >= ::Gem::Version.new('3.0.0') do
2
- before :context do
3
- require 'active_support'
4
- end
5
-
6
- let(:t_res) { 0.1 }
7
- let(:min_ttl) { 0.1 }
8
-
9
- moneta_store :ActiveSupportCache do
10
- { backend: ActiveSupport::Cache::MemoryStore.new }
11
- end
12
-
13
- moneta_specs STANDARD_SPECS.without_create.without_persist.with_native_expires
14
- end
@@ -1,17 +0,0 @@
1
- require_relative './helper.rb'
2
-
3
- describe 'adapter_cassandra', retry: 3, adapter: :Cassandra, unsupported: RUBY_ENGINE == 'ruby' && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0') do
4
- let(:t_res) { 1 }
5
- let(:min_ttl) { 2 }
6
-
7
- include_context :global_cassandra_cluster
8
-
9
- moneta_build do
10
- Moneta::Adapters::Cassandra.new(
11
- cluster: cluster,
12
- keyspace: 'adapter_cassandra',
13
- create_keyspace: { durable_writes: false })
14
- end
15
-
16
- moneta_specs ADAPTER_SPECS.without_increment.without_create.with_native_expires.with_values(:nil).with_each_key
17
- end
@@ -1,18 +0,0 @@
1
- require_relative './helper.rb'
2
-
3
- describe 'adapter_cassandra_with_default_expires', isolate: true, retry: 3, adapter: :Cassandra, unsupported: RUBY_ENGINE == 'ruby' && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0') do
4
- let(:t_res) { 1 }
5
- let(:min_ttl) { 2 }
6
-
7
- include_context :global_cassandra_cluster
8
-
9
- moneta_build do
10
- Moneta::Adapters::Cassandra.new(
11
- cluster: cluster,
12
- keyspace: 'adapter_cassandra_with_default_expires',
13
- expires: min_ttl,
14
- create_keyspace: { durable_writes: false })
15
- end
16
-
17
- moneta_specs ADAPTER_SPECS.without_increment.without_create.with_native_expires.with_default_expires.with_values(:nil).with_each_key
18
- end
@@ -1,18 +0,0 @@
1
- # This is used in order to speed up cassandra specs
2
- RSpec.shared_context :global_cassandra_cluster do
3
- before :all do
4
- require 'cassandra'
5
- $moneta_cassandra_cluster ||= ::Cassandra.cluster
6
- end
7
-
8
- let(:cluster) { $moneta_cassandra_cluster }
9
- end
10
-
11
- RSpec.configure do |config|
12
- config.after :suite do
13
- if $moneta_cassandra_cluster
14
- $moneta_cassandra_cluster.close
15
- $moneta_cassandra_cluster = nil
16
- end
17
- end
18
- end
@@ -1,18 +0,0 @@
1
- require_relative './helper.rb'
2
-
3
- describe "standard_cassandra", retry: 3, adapter: :Cassandra, unsupported: RUBY_ENGINE == 'ruby' && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0') do
4
- let(:t_res) { 1 }
5
- let(:min_ttl) { 2 }
6
-
7
- include_context :global_cassandra_cluster
8
-
9
- moneta_store :Cassandra do
10
- {
11
- cluster: cluster,
12
- keyspace: "standard_cassandra",
13
- create_keyspace: { durable_writes: false }
14
- }
15
- end
16
-
17
- moneta_specs STANDARD_SPECS.without_increment.without_create.with_native_expires.with_each_key
18
- end
@@ -1,11 +0,0 @@
1
- require_relative './client_helper.rb'
2
-
3
- describe 'adapter_client', adapter: :Client do
4
- include_context :start_server, port: 9002, backend: ->{ Moneta::Adapters::Memory.new }
5
-
6
- moneta_build do
7
- Moneta::Adapters::Client.new(port: 9002)
8
- end
9
-
10
- moneta_specs ADAPTER_SPECS.with_each_key
11
- end
@@ -1,25 +0,0 @@
1
- RSpec.shared_context :start_server do |**options|
2
- before :context do
3
- begin
4
- options.each do |key, value|
5
- options[key] = instance_exec(&value) if value.respond_to? :call
6
- end
7
- backend = options.delete(:backend)
8
- @server = Moneta::Server.new(backend, options)
9
- @thread = Thread.new { @server.run }
10
- sleep 0.1 until @server.running?
11
- rescue Exception => ex
12
- puts "Failed to start server - #{ex.message}"
13
- tries ||= 0
14
- tries += 1
15
- timeout = options[:timeout] || Moneta::Server.config_defaults[:timeout]
16
- sleep 1
17
- tries < 3 ? retry : raise
18
- end
19
- end
20
-
21
- after :context do
22
- @server&.stop
23
- @thread&.join
24
- end
25
- end
@@ -1,23 +0,0 @@
1
- require_relative './client_helper.rb'
2
-
3
- describe "standard_client_tcp", adapter: :Client do
4
- include_context :start_server, port: 9003, backend: ->{ Moneta::Adapters::Memory.new }
5
-
6
- moneta_store :Client, port: 9003
7
- moneta_specs STANDARD_SPECS.with_each_key
8
-
9
- it 'supports multiple clients' do
10
- store['shared_key'] = 'shared_val'
11
- threads = (1..32).map do |i|
12
- Thread.new do
13
- client = new_store
14
- (1..31).each do |j|
15
- client['shared_key'].should == 'shared_val'
16
- client["key-\#{j}-\#{i}"] = "val-\#{j}-\#{i}"
17
- client["key-\#{j}-\#{i}"].should == "val-\#{j}-\#{i}"
18
- end
19
- end
20
- end
21
- threads.map(&:join)
22
- end
23
- end
@@ -1,28 +0,0 @@
1
- require_relative './client_helper.rb'
2
-
3
- describe "standard_client_unix", adapter: :Client do
4
- include_context :start_server,
5
- backend: ->{ Moneta::Adapters::Memory.new },
6
- socket: ->{ File.join(tempdir, 'standard_client_unix') }
7
-
8
- moneta_store :Client do
9
- { socket: File.join(tempdir, 'standard_client_unix') }
10
- end
11
-
12
- moneta_specs STANDARD_SPECS.with_each_key
13
-
14
- it 'supports multiple clients' do
15
- store['shared_key'] = 'shared_val'
16
- threads = (1..32).map do |i|
17
- Thread.new do
18
- client = new_store
19
- (1..31).each do |j|
20
- client['shared_key'].should == 'shared_val'
21
- client["key-\#{j}-\#{i}"] = "val-\#{j}-\#{i}"
22
- client["key-\#{j}-\#{i}"].should == "val-\#{j}-\#{i}"
23
- end
24
- end
25
- end
26
- threads.map(&:join)
27
- end
28
- end
@@ -1,7 +0,0 @@
1
- describe 'adapter_cookie', adapter: :Cookie do
2
- moneta_build do
3
- Moneta::Adapters::Cookie.new
4
- end
5
-
6
- moneta_specs ADAPTER_SPECS.with_each_key.without_persist.returnsame
7
- end
@@ -1,204 +0,0 @@
1
- require_relative '../faraday_helper.rb'
2
-
3
- describe 'adapter_couch', adapter: :Couch do
4
- include_context :faraday_adapter
5
-
6
- moneta_build do
7
- Moneta::Adapters::Couch.new(db: 'adapter_couch', adapter: faraday_adapter, login: couch_login, password: couch_password)
8
- end
9
-
10
- moneta_specs ADAPTER_SPECS.without_increment.simplevalues_only.without_path.with_each_key
11
-
12
- shared_examples :batch do
13
- shared_examples :no_batch do
14
- it "does not add 'batch=ok' to the query'" do
15
- expect(store).not_to receive(:request).with(any_args, hash_including(query: hash_including(batch: 'ok')))
16
- expect(store).to receive(:request)
17
- store.public_send(m, *args, options)
18
- end
19
- end
20
-
21
- context 'without a :batch option' do
22
- let(:options) { {} }
23
- include_examples(:no_batch)
24
- end
25
-
26
- context 'with batch: false' do
27
- let(:options) { { batch: false } }
28
- include_examples(:no_batch)
29
- end
30
-
31
- context 'with batch: true' do
32
- let(:options) { { batch: true } }
33
-
34
- it "adds 'batch=ok' to the query'" do
35
- expect(store).to receive(:request).with(instance_of(Symbol), instance_of(String), any_args,
36
- hash_including(expect: 202, query: hash_including(batch: 'ok')))
37
- store.public_send(m, *args, options)
38
- end
39
- end
40
- end
41
-
42
- shared_examples :full_commit do
43
- context 'without a :full_commit option' do
44
- let(:options) { {} }
45
-
46
- it "does not add a 'X-Couch-Full-Commit' header'" do
47
- expect(store).not_to receive(:request)
48
- .with(any_args, hash_including(headers: hash_including('X-Couch-Full-Commit' => instance_of(String))))
49
- expect(store).to receive(:request).ordered
50
- store.public_send(m, *args, options)
51
- end
52
- end
53
-
54
- context 'with full_commit: true' do
55
- let(:options) { { full_commit: true } }
56
-
57
- it "adds 'X-Couch-Full-Commit: true' to the headers'" do
58
- expect(store).to receive(:request)
59
- .with(instance_of(Symbol), instance_of(String), any_args,
60
- hash_including(headers: hash_including('X-Couch-Full-Commit' => 'true')))
61
- .ordered
62
- store.public_send(m, *args, options)
63
- end
64
- end
65
-
66
- context 'with full_commit: false' do
67
- let(:options) { { full_commit: false } }
68
-
69
- it "adds 'X-Couch-Full-Commit: false' to the headers'" do
70
- expect(store).to receive(:request)
71
- .with(instance_of(Symbol), instance_of(String), any_args,
72
- hash_including(headers: hash_including('X-Couch-Full-Commit' => 'false')))
73
- .ordered
74
- store.public_send(m, *args, options)
75
- end
76
- end
77
- end
78
-
79
- describe '#store' do
80
- let(:m) { :store }
81
- let(:args) { ['a', 'b'] }
82
-
83
- include_examples :batch
84
- include_examples :full_commit
85
- end
86
-
87
- describe '#delete' do
88
- let(:m) { :delete }
89
- let(:args) { ['a'] }
90
-
91
- before do
92
- expect(store).to receive(:request).with(:get, 'a', any_args).ordered do
93
- Faraday::Response.new(
94
- Faraday::Env.from(status: 200,
95
- body: '{"type":"Hash","test":1}',
96
- response_headers: { 'ETag' => '"testrev"' }))
97
- end
98
- end
99
-
100
- include_examples :batch
101
- include_examples :full_commit
102
- end
103
-
104
- describe '#merge!' do
105
- let(:m) { :merge! }
106
- let(:args) { [{'a' => '1'}] }
107
-
108
- before do
109
- expect(store).to receive(:request).with(:post, '_all_docs', any_args).ordered do
110
- { 'rows' => [] }
111
- end
112
-
113
- allow(store).to receive(:request).with(:post, '_bulk_docs', any_args) do
114
- [
115
- {
116
- "ok" => true,
117
- "id" => 'a',
118
- "rev" => 'testrev'
119
- }
120
- ]
121
- end
122
- end
123
-
124
- include_examples :full_commit
125
- end
126
-
127
- describe '#clear' do
128
- context 'changing full commit behaviour' do
129
- let(:m) { :clear }
130
- let(:args) { [] }
131
-
132
- # This will make the clear method proceed to deletion
133
- before do
134
- responses = [
135
- {
136
- 'rows' => [
137
- {
138
- 'id' => 'test',
139
- 'value' => {
140
- 'rev' => 'testrev'
141
- }
142
- }
143
- ]
144
- },
145
- { 'rows' => [] }
146
- ]
147
-
148
- expect(store).to receive(:request).at_least(:once).with(:get, '_all_docs', any_args).ordered do
149
- responses.shift
150
- end
151
- end
152
-
153
- include_examples :full_commit
154
- end
155
-
156
- shared_examples :no_compact do
157
- it 'does not post to the _compact endpoint' do
158
- expect(store).not_to receive(:post).with('_compact', any_args)
159
- store.clear(options)
160
- end
161
- end
162
-
163
- context 'without a :compact option' do
164
- let(:options) { {} }
165
- include_examples :no_compact
166
- end
167
-
168
- context 'with compact: true' do
169
- it 'posts to the _compact endpoint' do
170
- expect(store).to receive(:post).with('_compact', any_args)
171
- store.clear(compact: true)
172
- end
173
- end
174
-
175
- context 'with compact: false' do
176
- let(:options) { { compact: false } }
177
- include_examples :no_compact
178
- end
179
-
180
- context 'with await_compact: true' do
181
- it "waits for compaction to complete" do
182
- # This simulates an empty DB, so no deletes
183
- expect(store).to receive(:get).with('_all_docs', any_args).ordered { { 'rows' => [] } }
184
-
185
- # Next, compact is called.
186
- expect(store).to receive(:post).with('_compact', any_args).ordered
187
-
188
- # We expect the method to call get the DB info as many times as the true value is returned.
189
- expect(store).to receive(:get).twice.with('', any_args).ordered { { 'compact_running' => true } }
190
- expect(store).to receive(:get).once.with('', any_args).ordered { { 'compact_running' => false } }
191
- store.clear(compact: true, await_compact: true)
192
- end
193
- end
194
-
195
- context 'with await_compact: false' do
196
- it "does not wait for compaction to complete" do
197
- expect(store).to receive(:get).with('_all_docs', any_args).ordered { { 'rows' => [] } }
198
- expect(store).to receive(:post).with('_compact', any_args).ordered
199
- expect(store).not_to receive(:get).with('', any_args).ordered
200
- store.clear(compact: true, await_compact: false)
201
- end
202
- end
203
- end
204
- end
@@ -1,15 +0,0 @@
1
- require_relative '../faraday_helper.rb'
2
-
3
- describe "standard_couch", adapter: :Couch do
4
- include_context :faraday_adapter
5
-
6
- moneta_store :Couch do
7
- { db: 'standard_couch', adapter: faraday_adapter, login: couch_login, password: couch_password }
8
- end
9
-
10
- moneta_loader do |value|
11
- ::Marshal.load(value.unpack('m').first)
12
- end
13
-
14
- moneta_specs STANDARD_SPECS.without_increment.with_each_key
15
- end
@@ -1,19 +0,0 @@
1
- require_relative '../faraday_helper.rb'
2
-
3
- describe "standard_couch_with_expires", adapter: :Couch do
4
- let(:t_res) { 0.125 }
5
- let(:min_ttl) { t_res }
6
- use_timecop
7
-
8
- include_context :faraday_adapter
9
-
10
- moneta_store :Couch do
11
- { db: 'standard_couch_with_expires', adapter: faraday_adapter, expires: true, login: couch_login, password: couch_password }
12
- end
13
-
14
- moneta_loader do |value|
15
- ::Marshal.load(value.unpack('m').first)
16
- end
17
-
18
- moneta_specs STANDARD_SPECS.without_increment.with_expires.with_each_key
19
- end
@@ -1,64 +0,0 @@
1
- describe 'adapter_datamapper', unsupported: defined?(JRUBY_VERSION) || RUBY_ENGINE == 'ruby' && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0'), adapter: :DataMapper, mysql: true do
2
- before :all do
3
- require 'dm-core'
4
-
5
- # DataMapper needs default repository to be setup
6
- DataMapper.setup(:default, adapter: :in_memory)
7
- end
8
-
9
- let :database_uri do
10
- "mysql://#{mysql_username}:#{mysql_password}@#{mysql_host}:#{mysql_port}/#{mysql_database1}" + (mysql_socket ? "?socket=#{mysql_socket}" : "")
11
- end
12
-
13
- moneta_build do
14
- Moneta::Adapters::DataMapper.new(
15
- setup: database_uri,
16
- table: "adapter_datamapper"
17
- )
18
- end
19
-
20
- moneta_specs ADAPTER_SPECS.without_increment.with_values(:nil).without_values(:binary)
21
-
22
- it 'does not cross contaminate when storing' do
23
- first = Moneta::Adapters::DataMapper.new(
24
- setup: database_uri,
25
- table: "datamapper_first"
26
- )
27
- first.clear
28
-
29
- second = Moneta::Adapters::DataMapper.new(
30
- repository: :sample,
31
- setup: database_uri,
32
- table: "datamapper_second"
33
- )
34
- second.clear
35
-
36
- first['key'] = 'value'
37
- second['key'] = 'value2'
38
-
39
- first['key'].should == 'value'
40
- second['key'].should == 'value2'
41
- end
42
-
43
- it 'does not cross contaminate when deleting' do
44
- first = Moneta::Adapters::DataMapper.new(
45
- setup: database_uri,
46
- table: "datamapper_first"
47
- )
48
- first.clear
49
-
50
- second = Moneta::Adapters::DataMapper.new(
51
- repository: :sample,
52
- setup: database_uri,
53
- table: "datamapper_second"
54
- )
55
- second.clear
56
-
57
- first['key'] = 'value'
58
- second['key'] = 'value2'
59
-
60
- first.delete('key').should == 'value'
61
- first.key?('key').should be false
62
- second['key'].should == 'value2'
63
- end
64
- end
@@ -1,21 +0,0 @@
1
- describe "standard_datamapper", unsupported: defined?(JRUBY_VERSION) || RUBY_ENGINE == 'ruby' && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0'), adapter: :DataMapper, mysql: true do
2
- before :all do
3
- require 'dm-core'
4
-
5
- # DataMapper needs default repository to be setup
6
- DataMapper.setup(:default, adapter: :in_memory)
7
- end
8
-
9
- moneta_store :DataMapper do
10
- {
11
- setup: "mysql://#{mysql_username}:#{mysql_password}@#{mysql_host}:#{mysql_port}/#{mysql_database1}" + (mysql_socket ? "?socket=#{mysql_socket}" : ""),
12
- table: "simple_datamapper"
13
- }
14
- end
15
-
16
- moneta_loader do |value|
17
- ::Marshal.load(value.unpack('m').first)
18
- end
19
-
20
- moneta_specs STANDARD_SPECS.without_increment
21
- end
@@ -1,26 +0,0 @@
1
- describe "standard_datamapper_with_expires", unsupported: defined?(JRUBY_VERSION) || RUBY_ENGINE == 'ruby' && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0'), adapter: :DataMapper, mysql: true do
2
- let(:t_res) { 0.125 }
3
- let(:min_ttl) { t_res }
4
- use_timecop
5
-
6
- before :all do
7
- require 'dm-core'
8
-
9
- # DataMapper needs default repository to be setup
10
- DataMapper.setup(:default, adapter: :in_memory)
11
- end
12
-
13
- moneta_store :DataMapper do
14
- {
15
- setup: "mysql://#{mysql_username}:#{mysql_password}@#{mysql_host}:#{mysql_port}/#{mysql_database1}" + (mysql_socket ? "?socket=#{mysql_socket}" : ""),
16
- table: "simple_datamapper_with_expires",
17
- expires: true
18
- }
19
- end
20
-
21
- moneta_loader do |value|
22
- ::Marshal.load(value.unpack('m').first)
23
- end
24
-
25
- moneta_specs STANDARD_SPECS.without_increment.with_expires
26
- end
@@ -1,22 +0,0 @@
1
- describe 'standard_datamapper_with_repository', unsupported: defined?(JRUBY_VERSION) || RUBY_ENGINE == 'ruby' && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0'), adapter: :DataMapper, mysql: true do
2
- before :all do
3
- require 'dm-core'
4
-
5
- # DataMapper needs default repository to be setup
6
- DataMapper.setup(:default, adapter: :in_memory)
7
- end
8
-
9
- moneta_store :DataMapper do
10
- {
11
- repository: :repo,
12
- setup: "mysql://#{mysql_username}:#{mysql_password}@#{mysql_host}:#{mysql_port}/#{mysql_database1}" + (mysql_socket ? "?socket=#{mysql_socket}" : ""),
13
- table: "simple_datamapper_with_repository"
14
- }
15
- end
16
-
17
- moneta_loader do |value|
18
- ::Marshal.load(value.unpack('m').first)
19
- end
20
-
21
- moneta_specs STANDARD_SPECS.without_increment
22
- end