moneta 1.2.0 → 1.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +418 -0
  3. data/.gitignore +2 -0
  4. data/.rubocop.yml +27 -9
  5. data/CHANGES +28 -0
  6. data/CONTRIBUTORS +4 -2
  7. data/Gemfile +12 -8
  8. data/README.md +20 -18
  9. data/feature_matrix.yaml +2 -11
  10. data/lib/moneta.rb +9 -9
  11. data/lib/moneta/adapters/client.rb +56 -19
  12. data/lib/moneta/adapters/couch.rb +5 -0
  13. data/lib/moneta/adapters/mongo.rb +264 -7
  14. data/lib/moneta/adapters/redis.rb +5 -1
  15. data/lib/moneta/adapters/sequel.rb +45 -464
  16. data/lib/moneta/adapters/sequel/mysql.rb +66 -0
  17. data/lib/moneta/adapters/sequel/postgres.rb +80 -0
  18. data/lib/moneta/adapters/sequel/postgres_hstore.rb +240 -0
  19. data/lib/moneta/adapters/sequel/sqlite.rb +57 -0
  20. data/lib/moneta/adapters/sqlite.rb +7 -7
  21. data/lib/moneta/builder.rb +2 -2
  22. data/lib/moneta/create_support.rb +21 -0
  23. data/lib/moneta/dbm_adapter.rb +31 -0
  24. data/lib/moneta/{mixins.rb → defaults.rb} +1 -302
  25. data/lib/moneta/each_key_support.rb +27 -0
  26. data/lib/moneta/expires_support.rb +60 -0
  27. data/lib/moneta/hash_adapter.rb +68 -0
  28. data/lib/moneta/increment_support.rb +16 -0
  29. data/lib/moneta/lock.rb +6 -1
  30. data/lib/moneta/nil_values.rb +35 -0
  31. data/lib/moneta/option_support.rb +51 -0
  32. data/lib/moneta/pool.rb +38 -6
  33. data/lib/moneta/proxy.rb +1 -1
  34. data/lib/moneta/server.rb +215 -61
  35. data/lib/moneta/shared.rb +13 -7
  36. data/lib/moneta/transformer.rb +50 -8
  37. data/lib/moneta/transformer/config.rb +59 -40
  38. data/lib/moneta/transformer/helper.rb +2 -2
  39. data/lib/moneta/transformer/helper/bson.rb +5 -15
  40. data/lib/moneta/version.rb +1 -1
  41. data/lib/rack/cache/moneta.rb +14 -15
  42. data/moneta.gemspec +14 -8
  43. data/script/benchmarks +7 -3
  44. data/script/contributors +11 -6
  45. data/script/start-couchdb +27 -0
  46. data/script/start-hbase +2 -2
  47. data/script/start-services +3 -3
  48. data/spec/active_support/cache_moneta_store_spec.rb +37 -39
  49. data/spec/features/concurrent_increment.rb +2 -3
  50. data/spec/features/create_expires.rb +15 -15
  51. data/spec/features/default_expires.rb +11 -12
  52. data/spec/features/expires.rb +215 -210
  53. data/spec/features/store.rb +3 -3
  54. data/spec/helper.rb +33 -41
  55. data/spec/moneta/adapters/activerecord/adapter_activerecord_existing_connection_spec.rb +3 -1
  56. data/spec/moneta/adapters/activerecord/adapter_activerecord_spec.rb +15 -7
  57. data/spec/moneta/adapters/activerecord/standard_activerecord_spec.rb +6 -3
  58. data/spec/moneta/adapters/activerecord/standard_activerecord_with_expires_spec.rb +6 -3
  59. data/spec/moneta/adapters/activesupportcache/adapter_activesupportcache_spec.rb +3 -3
  60. data/spec/moneta/adapters/activesupportcache/adapter_activesupportcache_with_default_expires_spec.rb +2 -2
  61. data/spec/moneta/adapters/cassandra/standard_cassandra_spec.rb +1 -1
  62. data/spec/moneta/adapters/client/adapter_client_spec.rb +6 -6
  63. data/spec/moneta/adapters/client/client_helper.rb +24 -0
  64. data/spec/moneta/adapters/client/standard_client_tcp_spec.rb +8 -8
  65. data/spec/moneta/adapters/client/standard_client_unix_spec.rb +23 -7
  66. data/spec/moneta/adapters/couch/adapter_couch_spec.rb +1 -1
  67. data/spec/moneta/adapters/couch/standard_couch_spec.rb +2 -2
  68. data/spec/moneta/adapters/couch/standard_couch_with_expires_spec.rb +2 -2
  69. data/spec/moneta/adapters/datamapper/adapter_datamapper_spec.rb +25 -8
  70. data/spec/moneta/adapters/datamapper/standard_datamapper_spec.rb +2 -2
  71. data/spec/moneta/adapters/datamapper/standard_datamapper_with_expires_spec.rb +2 -2
  72. data/spec/moneta/adapters/datamapper/standard_datamapper_with_repository_spec.rb +2 -2
  73. data/spec/moneta/adapters/daybreak/standard_daybreak_spec.rb +1 -1
  74. data/spec/moneta/adapters/daybreak/standard_daybreak_with_expires_spec.rb +1 -1
  75. data/spec/moneta/adapters/dbm/standard_dbm_spec.rb +1 -1
  76. data/spec/moneta/adapters/dbm/standard_dbm_with_expires_spec.rb +1 -1
  77. data/spec/moneta/adapters/file/standard_file_spec.rb +2 -2
  78. data/spec/moneta/adapters/file/standard_file_with_expires_spec.rb +1 -1
  79. data/spec/moneta/adapters/gdbm/standard_gdbm_spec.rb +1 -1
  80. data/spec/moneta/adapters/gdbm/standard_gdbm_with_expires_spec.rb +1 -1
  81. data/spec/moneta/adapters/kyotocabinet/adapter_kyotocabinet_spec.rb +1 -1
  82. data/spec/moneta/adapters/kyotocabinet/standard_kyotocabinet_spec.rb +2 -2
  83. data/spec/moneta/adapters/kyotocabinet/standard_kyotocabinet_with_expires_spec.rb +2 -2
  84. data/spec/moneta/adapters/leveldb/standard_leveldb_spec.rb +1 -1
  85. data/spec/moneta/adapters/leveldb/standard_leveldb_with_expires_spec.rb +1 -1
  86. data/spec/moneta/adapters/lmdb/standard_lmdb_spec.rb +1 -1
  87. data/spec/moneta/adapters/lmdb/standard_lmdb_with_expires_spec.rb +1 -1
  88. data/spec/moneta/adapters/lruhash/standard_lruhash_spec.rb +1 -1
  89. data/spec/moneta/adapters/lruhash/standard_lruhash_with_expires_spec.rb +1 -1
  90. data/spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_spec.rb +13 -3
  91. data/spec/moneta/adapters/memcached/native/adapter_memcached_native_spec.rb +13 -3
  92. data/spec/moneta/adapters/memory/standard_memory_spec.rb +1 -1
  93. data/spec/moneta/adapters/memory/standard_memory_with_compress_spec.rb +1 -1
  94. data/spec/moneta/adapters/memory/standard_memory_with_expires_spec.rb +1 -1
  95. data/spec/moneta/adapters/memory/standard_memory_with_json_key_serializer_spec.rb +1 -1
  96. data/spec/moneta/adapters/memory/standard_memory_with_json_serializer_spec.rb +1 -1
  97. data/spec/moneta/adapters/memory/standard_memory_with_json_value_serializer_spec.rb +2 -2
  98. data/spec/moneta/adapters/memory/standard_memory_with_prefix_spec.rb +39 -2
  99. data/spec/moneta/adapters/memory/standard_memory_with_snappy_compress_spec.rb +2 -2
  100. data/spec/moneta/adapters/mongo/adapter_mongo_spec.rb +32 -2
  101. data/spec/moneta/adapters/mongo/adapter_mongo_with_default_expires_spec.rb +6 -4
  102. data/spec/moneta/adapters/mongo/standard_mongo_spec.rb +2 -2
  103. data/spec/moneta/adapters/pstore/standard_pstore_spec.rb +1 -1
  104. data/spec/moneta/adapters/pstore/standard_pstore_with_expires_spec.rb +1 -1
  105. data/spec/moneta/adapters/redis/adapter_redis_spec.rb +13 -3
  106. data/spec/moneta/adapters/redis/standard_redis_spec.rb +9 -2
  107. data/spec/moneta/adapters/sdbm/standard_sdbm_spec.rb +1 -1
  108. data/spec/moneta/adapters/sdbm/standard_sdbm_with_expires_spec.rb +1 -1
  109. data/spec/moneta/adapters/sequel/adapter_sequel_spec.rb +11 -38
  110. data/spec/moneta/adapters/sequel/helper.rb +42 -0
  111. data/spec/moneta/adapters/sequel/standard_sequel_spec.rb +6 -12
  112. data/spec/moneta/adapters/sequel/standard_sequel_with_expires_spec.rb +9 -10
  113. data/spec/moneta/adapters/sqlite/adapter_sqlite_spec.rb +1 -1
  114. data/spec/moneta/adapters/sqlite/standard_sqlite_spec.rb +2 -2
  115. data/spec/moneta/adapters/sqlite/standard_sqlite_with_expires_spec.rb +2 -2
  116. data/spec/moneta/adapters/tdb/standard_tdb_spec.rb +1 -1
  117. data/spec/moneta/adapters/tdb/standard_tdb_with_expires_spec.rb +1 -1
  118. data/spec/moneta/adapters/tokyocabinet/standard_tokyocabinet_spec.rb +1 -1
  119. data/spec/moneta/adapters/tokyocabinet/standard_tokyocabinet_with_expires_spec.rb +1 -1
  120. data/spec/moneta/adapters/yaml/standard_yaml_spec.rb +1 -1
  121. data/spec/moneta/adapters/yaml/standard_yaml_with_expires_spec.rb +1 -1
  122. data/spec/moneta/builder_spec.rb +22 -0
  123. data/spec/moneta/proxies/expires/expires_file_spec.rb +1 -1
  124. data/spec/moneta/proxies/pool/pool_spec.rb +31 -3
  125. data/spec/moneta/proxies/shared/shared_tcp_spec.rb +14 -4
  126. data/spec/moneta/proxies/shared/shared_unix_spec.rb +14 -4
  127. data/spec/moneta/proxies/transformer/transformer_bencode_spec.rb +1 -1
  128. data/spec/moneta/proxies/transformer/transformer_bert_spec.rb +3 -3
  129. data/spec/moneta/proxies/transformer/transformer_bson_spec.rb +2 -2
  130. data/spec/moneta/proxies/transformer/transformer_json_spec.rb +1 -1
  131. data/spec/moneta/proxies/transformer/transformer_key_marshal_spec.rb +1 -1
  132. data/spec/moneta/proxies/transformer/transformer_key_yaml_spec.rb +1 -1
  133. data/spec/moneta/proxies/transformer/transformer_marshal_base64_spec.rb +1 -1
  134. data/spec/moneta/proxies/transformer/transformer_marshal_escape_spec.rb +8 -4
  135. data/spec/moneta/proxies/transformer/transformer_marshal_hex_spec.rb +1 -1
  136. data/spec/moneta/proxies/transformer/transformer_marshal_hmac_spec.rb +1 -1
  137. data/spec/moneta/proxies/transformer/transformer_marshal_prefix_base64_spec.rb +33 -0
  138. data/spec/moneta/proxies/transformer/transformer_marshal_prefix_spec.rb +1 -1
  139. data/spec/moneta/proxies/transformer/transformer_marshal_qp_spec.rb +1 -1
  140. data/spec/moneta/proxies/transformer/transformer_marshal_spec.rb +1 -1
  141. data/spec/moneta/proxies/transformer/transformer_marshal_urlsafe_base64_spec.rb +1 -1
  142. data/spec/moneta/proxies/transformer/transformer_marshal_uuencode_spec.rb +1 -1
  143. data/spec/moneta/proxies/transformer/transformer_msgpack_spec.rb +1 -1
  144. data/spec/moneta/proxies/transformer/transformer_ox_spec.rb +1 -1
  145. data/spec/moneta/proxies/transformer/transformer_php_spec.rb +1 -1
  146. data/spec/moneta/proxies/transformer/transformer_tnet_spec.rb +1 -1
  147. data/spec/moneta/proxies/transformer/transformer_yaml_spec.rb +2 -2
  148. data/spec/moneta/proxies/weak_each_key/weak_each_key_spec.rb +0 -2
  149. data/spec/restserver.rb +15 -0
  150. metadata +47 -66
  151. data/.travis.yml +0 -140
  152. data/lib/moneta/adapters/mongo/base.rb +0 -103
  153. data/lib/moneta/adapters/mongo/moped.rb +0 -163
  154. data/lib/moneta/adapters/mongo/official.rb +0 -156
  155. data/script/reconfigure-couchdb +0 -13
  156. data/spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_with_default_expires_spec.rb +0 -15
  157. data/spec/moneta/adapters/memcached/native/adapter_memcached_native_with_default_expires_spec.rb +0 -15
  158. data/spec/moneta/adapters/mongo/adapter_mongo_moped_spec.rb +0 -25
  159. data/spec/moneta/adapters/mongo/adapter_mongo_moped_with_default_expires_spec.rb +0 -12
  160. data/spec/moneta/adapters/mongo/adapter_mongo_official_spec.rb +0 -25
  161. data/spec/moneta/adapters/mongo/adapter_mongo_official_with_default_expires_spec.rb +0 -12
  162. data/spec/moneta/adapters/mongo/standard_mongo_moped_spec.rb +0 -7
  163. data/spec/moneta/adapters/mongo/standard_mongo_official_spec.rb +0 -7
  164. data/spec/moneta/adapters/redis/adapter_redis_with_default_expires_spec.rb +0 -10
  165. data/spec/moneta/proxies/proxy/proxy_redis_spec.rb +0 -13
  166. data/spec/quality_spec.rb +0 -51
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4e697b98dafd89667bc720317d1e740691f4504cf6b7a33939d14251f2841fe3
4
- data.tar.gz: 13eede9fc91b2379921f28798b6bac79de69527682f208042345b5fe331bd32d
3
+ metadata.gz: a202106a03e55e35500188da66bf1509b5759c5d202ef0b6b84e731247d8fa62
4
+ data.tar.gz: 964762ceafae4fafa65f0a07e2ac6d90f8d1bc43b1d74d5428736eb9a23a86f0
5
5
  SHA512:
6
- metadata.gz: c1c9acbe14d38a5a300a8eb478225c8da317f2c6596b51e2421d5243aa6cd13020639e31594f03a1c43b6c537603402983cd5ca2a6deb900ac34cf5db3b99992
7
- data.tar.gz: 614bfcb466639b2d348e8f1bd29d732a1d57489e3a6e4d292ae2f4ab8e3f385c878b0c3f890ae1f2fb4f684e9c969e71ecd2a393d9e848345c63b7d9b0818f8b
6
+ metadata.gz: 18e5417ed780ae397000d539e8d7f1d5e51dfce856fb7913f11f2ff5f53a1c5f52a50ba3a2bccaca5572d894f8fd1adf77a73f1b446323e00b7c0cf0814c3710
7
+ data.tar.gz: c8f781706f5cd8022a9b728a2d9948d7a14e08c875ee6c1b75d4df7faefb94ebf54a0192733b5c0af05d1b879296dcf687aedaf40125daad234aaa44429cb540
@@ -0,0 +1,418 @@
1
+ name: Ruby CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ adapters:
11
+ runs-on: ubuntu-latest
12
+
13
+ strategy:
14
+ fail-fast: false
15
+
16
+ matrix:
17
+ ruby-version: [2.7, 2.6, 2.5, 2.4, 2.3, jruby]
18
+ adapter:
19
+ - Client
20
+ - Cookie
21
+ - Daybreak
22
+ #- dbm
23
+ - File
24
+ - Fog
25
+ - GDBM
26
+ - HashFile
27
+ #- HBase
28
+ - KyotoCabinet
29
+ - LevelDB
30
+ - LMDB
31
+ - LocalMemCache
32
+ - LRUHash
33
+ - Memory
34
+ - 'Null'
35
+ - PStore
36
+ - RestClient
37
+ #- riak
38
+ - SDBM
39
+ - TDB
40
+ - TokyoCabinet
41
+ - TokyoTyrant
42
+ - YAML
43
+
44
+ env:
45
+ BUNDLE_WITHOUT: activerecord riak couch cassandra postgresql mysql datamapper memcached_native
46
+
47
+ steps:
48
+ - uses: actions/checkout@v2
49
+
50
+ - name: Apt update
51
+ run: sudo apt-get update
52
+
53
+ - name: Apt install dependencies
54
+ run: sudo apt-get install -y libkyotocabinet-dev libleveldb-dev liblzo2-dev libtdb-dev libtokyocabinet-dev tokyotyrant libgdbm-dev
55
+
56
+ - name: Set up Ruby ${{ matrix.ruby-version }}
57
+ uses: ruby/setup-ruby@v1
58
+ with:
59
+ ruby-version: ${{ matrix.ruby-version }}
60
+ bundler: latest
61
+ bundler-cache: true
62
+
63
+ - name: Rspec
64
+ run: bundle exec rspec -t ~unstable -t adapter:${{ matrix.adapter }}
65
+
66
+ couch:
67
+ name: "Couch adapter"
68
+ runs-on: ubuntu-latest
69
+
70
+ services:
71
+ couch:
72
+ image: couchdb
73
+ env:
74
+ COUCHDB_USER: admin
75
+ COUCHDB_PASSWORD: password
76
+ options: >-
77
+ --health-cmd "curl -s http://127.0.0.1:5984/"
78
+ --health-interval 10s
79
+ --health-timeout 5s
80
+ --health-retries 5
81
+ ports:
82
+ - 5984:5984
83
+
84
+ strategy:
85
+ matrix:
86
+ ruby-version: [2.7, 2.3, jruby]
87
+
88
+ env:
89
+ BUNDLE_WITHOUT: activerecord riak cassandra postgresql mysql datamapper memcached_native leveldb lzo tdb
90
+
91
+ steps:
92
+ - uses: actions/checkout@v2
93
+
94
+ - name: Set up Ruby ${{ matrix.ruby-version }}
95
+ uses: ruby/setup-ruby@v1
96
+ with:
97
+ ruby-version: ${{ matrix.ruby-version }}
98
+ bundler: latest
99
+ bundler-cache: true
100
+
101
+ - name: Rspec
102
+ run: bundle exec rspec -t adapter:Couch
103
+
104
+ cassandra:
105
+ name: "Cassandra adapter"
106
+ runs-on: ubuntu-latest
107
+
108
+ services:
109
+ cassandra:
110
+ image: cassandra
111
+ options: >-
112
+ --health-cmd "cqlsh -e \"SELECT cql_version FROM system.local\""
113
+ --health-interval 10s
114
+ --health-timeout 5s
115
+ --health-retries 5
116
+ ports:
117
+ - 9042:9042
118
+
119
+ strategy:
120
+ matrix:
121
+ ruby-version: [2.7, 2.3, jruby]
122
+
123
+ env:
124
+ BUNDLE_WITHOUT: activerecord riak couch postgresql mysql datamapper memcached_native leveldb lzo tdb
125
+
126
+ steps:
127
+ - uses: actions/checkout@v2
128
+
129
+ - name: Set up Ruby ${{ matrix.ruby-version }}
130
+ uses: ruby/setup-ruby@v1
131
+ with:
132
+ ruby-version: ${{ matrix.ruby-version }}
133
+ bundler: latest
134
+ bundler-cache: true
135
+
136
+ - name: Rspec
137
+ run: bundle exec rspec -t adapter:Cassandra
138
+
139
+ mysql-adapters:
140
+ name: "MySQL adapters"
141
+ runs-on: ubuntu-latest
142
+
143
+ services:
144
+ mysql:
145
+ image: mysql
146
+ env:
147
+ MYSQL_ROOT_PASSWORD: moneta
148
+ options: >-
149
+ --health-cmd "mysqladmin ping -h 127.0.0.1 --silent"
150
+ --health-interval 10s
151
+ --health-timeout 5s
152
+ --health-retries 5
153
+ ports:
154
+ - 3306:3306
155
+
156
+ strategy:
157
+ matrix:
158
+ ruby-version: [2.7, 2.4, jruby]
159
+
160
+ env:
161
+ BUNDLE_WITHOUT: riak couch cassandra postgresql memcached_native leveldb
162
+ MYSQL_HOST: 127.0.0.1
163
+ MONETA_MYSQL_PASSWORD: moneta
164
+
165
+ steps:
166
+ - uses: actions/checkout@v2
167
+
168
+ - name: Apt update
169
+ run: sudo apt-get update
170
+
171
+ - name: Apt install mysql packages
172
+ run: sudo apt-get install -y libmysqlclient-dev
173
+
174
+ - name: Create Database moneta
175
+ run: mysqladmin -h 127.0.0.1 -u root create moneta
176
+ env:
177
+ MYSQL_PWD: moneta
178
+
179
+ - name: Create Database moneta2
180
+ run: mysqladmin -h 127.0.0.1 -u root create moneta2
181
+ env:
182
+ MYSQL_PWD: moneta
183
+
184
+ - name: Set up Ruby ${{ matrix.ruby-version }}
185
+ uses: ruby/setup-ruby@v1
186
+ with:
187
+ ruby-version: ${{ matrix.ruby-version }}
188
+ bundler: latest
189
+ bundler-cache: true
190
+
191
+ - name: Rspec
192
+ run: bundle exec rspec -t mysql
193
+
194
+ postgres-adapters:
195
+ name: "Postgres adapters"
196
+ runs-on: ubuntu-latest
197
+
198
+ services:
199
+ postgres:
200
+ image: postgres
201
+ env:
202
+ POSTGRES_PASSWORD: moneta
203
+ options: >-
204
+ --health-cmd pg_isready
205
+ --health-interval 10s
206
+ --health-timeout 5s
207
+ --health-retries 5
208
+ ports:
209
+ - 5432:5432
210
+
211
+ strategy:
212
+ matrix:
213
+ ruby-version: [2.7, 2.3, jruby]
214
+
215
+ env:
216
+ BUNDLE_WITHOUT: riak couch cassandra mysql memcached_native leveldb
217
+ PGHOST: localhost
218
+ PGUSER: postgres
219
+ PGPASSWORD: moneta
220
+
221
+ steps:
222
+ - uses: actions/checkout@v2
223
+
224
+ - name: Create Database moneta1
225
+ run: createdb moneta1
226
+
227
+ - name: Create Database moneta2
228
+ run: createdb moneta2
229
+
230
+ - name: Add hstore support to moneta1
231
+ run: psql -c 'create extension hstore;' moneta1
232
+
233
+ - name: Set up Ruby ${{ matrix.ruby-version }}
234
+ uses: ruby/setup-ruby@v1
235
+ with:
236
+ ruby-version: ${{ matrix.ruby-version }}
237
+ bundler: latest
238
+ bundler-cache: true
239
+
240
+ - name: Rspec
241
+ run: bundle exec rspec -t postgres
242
+
243
+ sqlite-adapters:
244
+ name: "SQLite adapters"
245
+ runs-on: ubuntu-latest
246
+
247
+ strategy:
248
+ matrix:
249
+ ruby-version: [2.7, 2.3, jruby]
250
+
251
+ env:
252
+ BUNDLE_WITHOUT: riak couch cassandra mysql postgres memcached_native leveldb
253
+
254
+ steps:
255
+ - uses: actions/checkout@v2
256
+
257
+ - name: Set up Ruby ${{ matrix.ruby-version }}
258
+ uses: ruby/setup-ruby@v1
259
+ with:
260
+ ruby-version: ${{ matrix.ruby-version }}
261
+ bundler: latest
262
+ bundler-cache: true
263
+
264
+ - name: Rspec
265
+ run: bundle exec rspec -t sqlite
266
+
267
+ redis:
268
+ name: "Redis adapters"
269
+ runs-on: ubuntu-latest
270
+
271
+ services:
272
+ redis:
273
+ image: redis
274
+ options: >-
275
+ --health-cmd "redis-cli ping"
276
+ --health-interval 10s
277
+ --health-timeout 5s
278
+ --health-retries 5
279
+ ports:
280
+ - 6379:6379
281
+
282
+ strategy:
283
+ matrix:
284
+ ruby-version: [2.7, 2.3, jruby]
285
+
286
+ env:
287
+ BUNDLE_WITHOUT: activerecord riak couch cassandra postgresql mysql datamapper memcached_native leveldb
288
+
289
+ steps:
290
+ - uses: actions/checkout@v2
291
+
292
+ - name: Set up Ruby ${{ matrix.ruby-version }}
293
+ uses: ruby/setup-ruby@v1
294
+ with:
295
+ ruby-version: ${{ matrix.ruby-version }}
296
+ bundler: latest
297
+ bundler-cache: true
298
+
299
+ - name: Rspec
300
+ run: bundle exec rspec -t adapter:Redis -t redis
301
+
302
+ memcached:
303
+ name: "Memcached adapters"
304
+ runs-on: ubuntu-latest
305
+
306
+ strategy:
307
+ matrix:
308
+ ruby-version: [2.7, 2.3, jruby]
309
+
310
+ env:
311
+ BUNDLE_WITHOUT: activerecord riak couch cassandra postgresql mysql datamapper leveldb lzo tdb
312
+
313
+ steps:
314
+ - uses: actions/checkout@v2
315
+
316
+ - name: Apt update
317
+ run: sudo apt-get update
318
+
319
+ - name: Apt install memcached
320
+ run: sudo apt-get install -y memcached libsasl2-dev
321
+
322
+ - name: Set up Ruby ${{ matrix.ruby-version }}
323
+ uses: ruby/setup-ruby@v1
324
+ with:
325
+ ruby-version: ${{ matrix.ruby-version }}
326
+ bundler: latest
327
+ bundler-cache: true
328
+
329
+ - name: Rspec
330
+ run: bundle exec rspec -t ~unstable -t adapter:Memcached -t memcached
331
+
332
+ mongo:
333
+ name: "Mongo adapter"
334
+ runs-on: ubuntu-latest
335
+
336
+ services:
337
+ mongo:
338
+ image: mongo
339
+ options: >-
340
+ --health-cmd "mongo --eval db"
341
+ --health-interval 10s
342
+ --health-timeout 5s
343
+ --health-retries 5
344
+ ports:
345
+ - 27017:27017
346
+
347
+ strategy:
348
+ matrix:
349
+ ruby-version: [2.7, 2.3] #, jruby] - FIXME reenable once https://github.com/mongodb/mongo-ruby-driver/pull/2143 is released
350
+
351
+ env:
352
+ BUNDLE_WITHOUT: activerecord riak couch cassandra postgresql mysql datamapper memcached_native leveldb
353
+
354
+ steps:
355
+ - uses: actions/checkout@v2
356
+
357
+ - name: Set up Ruby ${{ matrix.ruby-version }}
358
+ uses: ruby/setup-ruby@v1
359
+ with:
360
+ ruby-version: ${{ matrix.ruby-version }}
361
+ bundler: latest
362
+ bundler-cache: true
363
+
364
+ - name: Rspec
365
+ run: bundle exec rspec -t adapter:Mongo
366
+
367
+ residual-specs:
368
+ name: "Proxies and other specs"
369
+ runs-on: ubuntu-latest
370
+
371
+ strategy:
372
+ matrix:
373
+ ruby-version: [2.7, 2.3, jruby]
374
+
375
+ env:
376
+ BUNDLE_WITHOUT: activerecord riak couch cassandra postgresql mysql datamapper memcached_native redis leveldb
377
+
378
+ steps:
379
+ - uses: actions/checkout@v2
380
+
381
+ - name: Apt update
382
+ run: sudo apt-get update
383
+
384
+ - name: Apt install dependencies
385
+ run: sudo apt-get install -y libgdbm-dev
386
+
387
+ - name: Set up Ruby ${{ matrix.ruby-version }}
388
+ uses: ruby/setup-ruby@v1
389
+ with:
390
+ ruby-version: ${{ matrix.ruby-version }}
391
+ bundler: latest
392
+ bundler-cache: true
393
+
394
+ - name: Rspec
395
+ run: bundle exec rspec -t ~unstable --exclude-pattern "./spec/{moneta/adapters/**/*,active_support/**/*}"
396
+
397
+ - name: Minitest
398
+ run: bundle exec ruby test/action_dispatch/session_moneta_store_test.rb
399
+
400
+ rubocop:
401
+ name: "Rubocop"
402
+ runs-on: ubuntu-latest
403
+
404
+ env:
405
+ BUNDLE_WITHOUT: activerecord riak couch cassandra postgresql mysql datamapper memcached_native redis leveldb
406
+
407
+ steps:
408
+ - uses: actions/checkout@v2
409
+
410
+ - name: Set up Ruby
411
+ uses: ruby/setup-ruby@v1
412
+ with:
413
+ ruby-version: 2.7
414
+ bundler: latest
415
+ bundler-cache: true
416
+
417
+ - name: Rubocop
418
+ run: bundle exec rubocop lib
data/.gitignore CHANGED
@@ -11,3 +11,5 @@ Gemfile.lock
11
11
  logs
12
12
  secure
13
13
  .bundle
14
+ .ruby-version
15
+ .byebug_history
data/.rubocop.yml CHANGED
@@ -1,16 +1,12 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.2.2
2
+ TargetRubyVersion: 2.3.0
3
3
  UseCache: true
4
4
  Exclude:
5
5
  - hbase/**/*
6
6
  - script/**/*
7
7
  - vendor/**/*
8
8
 
9
- Layout/AlignArray:
10
- Exclude:
11
- - lib/moneta/transformer/config.rb
12
-
13
- Layout/AlignHash:
9
+ Layout/ArrayAlignment:
14
10
  Exclude:
15
11
  - lib/moneta/transformer/config.rb
16
12
 
@@ -25,6 +21,13 @@ Layout/ExtraSpacing:
25
21
  - lib/moneta.rb
26
22
  - lib/moneta/transformer/config.rb
27
23
 
24
+ Layout/HashAlignment:
25
+ Exclude:
26
+ - lib/moneta/transformer/config.rb
27
+
28
+ Layout/LineLength:
29
+ Max: 160
30
+
28
31
  Layout/MultilineMethodCallIndentation:
29
32
  EnforcedStyle: indented
30
33
 
@@ -38,12 +41,18 @@ Layout/SpaceInsideArrayLiteralBrackets:
38
41
  Lint/AssignmentInCondition:
39
42
  Enabled: false
40
43
 
44
+ Lint/RaiseException:
45
+ Enabled: true
46
+
41
47
  Lint/ShadowedException:
42
48
  Enabled: false
43
49
 
44
50
  Lint/ShadowingOuterLocalVariable:
45
51
  Enabled: false
46
52
 
53
+ Lint/StructNewOverride:
54
+ Enabled: true
55
+
47
56
  Lint/UnusedMethodArgument:
48
57
  Enabled: false
49
58
 
@@ -67,12 +76,12 @@ Metrics/BlockLength:
67
76
  Exclude:
68
77
  - spec/**/*
69
78
 
70
- Metrics/LineLength:
71
- Max: 160
72
-
73
79
  Metrics/MethodLength:
74
80
  Enabled: false
75
81
 
82
+ Metrics/ModuleLength:
83
+ Enabled: false
84
+
76
85
  Metrics/ParameterLists:
77
86
  Enabled: false
78
87
 
@@ -117,6 +126,15 @@ Style/FormatString:
117
126
  Style/GuardClause:
118
127
  Enabled: false
119
128
 
129
+ Style/HashEachMethods:
130
+ Enabled: true
131
+
132
+ Style/HashTransformKeys:
133
+ Enabled: true
134
+
135
+ Style/HashTransformValues:
136
+ Enabled: true
137
+
120
138
  Style/IfUnlessModifier:
121
139
  Enabled: false
122
140