moneta 1.2.0 → 1.4.2

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 (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