moneta 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +415 -0
  3. data/CHANGES +18 -0
  4. data/CONTRIBUTORS +2 -0
  5. data/Gemfile +144 -56
  6. data/README.md +21 -17
  7. data/lib/moneta/adapter.rb +52 -0
  8. data/lib/moneta/adapters/activerecord.rb +77 -68
  9. data/lib/moneta/adapters/activesupportcache.rb +22 -31
  10. data/lib/moneta/adapters/cassandra.rb +114 -116
  11. data/lib/moneta/adapters/client.rb +17 -18
  12. data/lib/moneta/adapters/couch.rb +31 -26
  13. data/lib/moneta/adapters/datamapper.rb +9 -5
  14. data/lib/moneta/adapters/daybreak.rb +15 -21
  15. data/lib/moneta/adapters/dbm.rb +6 -12
  16. data/lib/moneta/adapters/file.rb +21 -13
  17. data/lib/moneta/adapters/fog.rb +5 -6
  18. data/lib/moneta/adapters/gdbm.rb +6 -12
  19. data/lib/moneta/adapters/hbase.rb +10 -12
  20. data/lib/moneta/adapters/kyotocabinet.rb +22 -27
  21. data/lib/moneta/adapters/leveldb.rb +14 -20
  22. data/lib/moneta/adapters/lmdb.rb +19 -22
  23. data/lib/moneta/adapters/localmemcache.rb +7 -13
  24. data/lib/moneta/adapters/lruhash.rb +20 -20
  25. data/lib/moneta/adapters/memcached/dalli.rb +25 -33
  26. data/lib/moneta/adapters/memcached/native.rb +14 -20
  27. data/lib/moneta/adapters/memory.rb +5 -7
  28. data/lib/moneta/adapters/mongo.rb +59 -50
  29. data/lib/moneta/adapters/pstore.rb +21 -27
  30. data/lib/moneta/adapters/redis.rb +42 -37
  31. data/lib/moneta/adapters/restclient.rb +17 -25
  32. data/lib/moneta/adapters/riak.rb +8 -9
  33. data/lib/moneta/adapters/sdbm.rb +6 -12
  34. data/lib/moneta/adapters/sequel/mysql.rb +8 -8
  35. data/lib/moneta/adapters/sequel/postgres.rb +17 -17
  36. data/lib/moneta/adapters/sequel/postgres_hstore.rb +47 -47
  37. data/lib/moneta/adapters/sequel/sqlite.rb +9 -9
  38. data/lib/moneta/adapters/sequel.rb +56 -65
  39. data/lib/moneta/adapters/sqlite.rb +37 -35
  40. data/lib/moneta/adapters/tdb.rb +8 -14
  41. data/lib/moneta/adapters/tokyocabinet.rb +19 -17
  42. data/lib/moneta/adapters/tokyotyrant.rb +29 -30
  43. data/lib/moneta/adapters/yaml.rb +1 -5
  44. data/lib/moneta/config.rb +101 -0
  45. data/lib/moneta/expires.rb +0 -1
  46. data/lib/moneta/expires_support.rb +3 -4
  47. data/lib/moneta/pool.rb +27 -7
  48. data/lib/moneta/proxy.rb +29 -0
  49. data/lib/moneta/server.rb +21 -14
  50. data/lib/moneta/version.rb +1 -1
  51. data/lib/moneta/wrapper.rb +5 -0
  52. data/lib/moneta.rb +2 -0
  53. data/moneta.gemspec +1 -0
  54. data/spec/active_support/cache_moneta_store_spec.rb +13 -13
  55. data/spec/helper.rb +14 -3
  56. data/spec/moneta/adapters/activerecord/adapter_activerecord_existing_connection_spec.rb +3 -1
  57. data/spec/moneta/adapters/activerecord/adapter_activerecord_spec.rb +15 -7
  58. data/spec/moneta/adapters/activerecord/standard_activerecord_spec.rb +5 -2
  59. data/spec/moneta/adapters/activerecord/standard_activerecord_with_expires_spec.rb +5 -2
  60. data/spec/moneta/adapters/activesupportcache/adapter_activesupportcache_spec.rb +3 -3
  61. data/spec/moneta/adapters/activesupportcache/adapter_activesupportcache_with_default_expires_spec.rb +2 -2
  62. data/spec/moneta/adapters/client/client_helper.rb +4 -3
  63. data/spec/moneta/adapters/datamapper/adapter_datamapper_spec.rb +25 -8
  64. data/spec/moneta/adapters/datamapper/standard_datamapper_spec.rb +2 -2
  65. data/spec/moneta/adapters/datamapper/standard_datamapper_with_expires_spec.rb +2 -2
  66. data/spec/moneta/adapters/datamapper/standard_datamapper_with_repository_spec.rb +2 -2
  67. data/spec/moneta/adapters/faraday_helper.rb +3 -2
  68. data/spec/moneta/adapters/lruhash/adapter_lruhash_spec.rb +10 -6
  69. data/spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_spec.rb +13 -3
  70. data/spec/moneta/adapters/memcached/native/adapter_memcached_native_spec.rb +13 -3
  71. data/spec/moneta/adapters/mongo/adapter_mongo_spec.rb +17 -3
  72. data/spec/moneta/adapters/mongo/adapter_mongo_with_default_expires_spec.rb +4 -4
  73. data/spec/moneta/adapters/mongo/standard_mongo_spec.rb +1 -1
  74. data/spec/moneta/adapters/redis/adapter_redis_spec.rb +13 -3
  75. data/spec/moneta/adapters/redis/standard_redis_spec.rb +8 -1
  76. data/spec/moneta/adapters/sequel/adapter_sequel_spec.rb +4 -4
  77. data/spec/moneta/adapters/sequel/helper.rb +10 -5
  78. data/spec/moneta/adapters/sequel/standard_sequel_spec.rb +1 -1
  79. data/spec/moneta/adapters/sequel/standard_sequel_with_expires_spec.rb +1 -1
  80. data/spec/moneta/adapters/sqlite/adapter_sqlite_spec.rb +1 -1
  81. data/spec/moneta/adapters/sqlite/standard_sqlite_spec.rb +1 -1
  82. data/spec/moneta/adapters/sqlite/standard_sqlite_with_expires_spec.rb +1 -1
  83. data/spec/moneta/config_spec.rb +219 -0
  84. data/spec/moneta/proxies/pool/pool_spec.rb +31 -3
  85. data/spec/moneta/proxies/transformer/transformer_bson_spec.rb +3 -1
  86. data/spec/moneta/proxies/transformer/transformer_marshal_escape_spec.rb +2 -0
  87. data/spec/rack/session_moneta_spec.rb +44 -25
  88. data/spec/restserver.rb +3 -14
  89. metadata +25 -17
  90. data/.travis.yml +0 -146
  91. data/spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_with_default_expires_spec.rb +0 -15
  92. data/spec/moneta/adapters/memcached/native/adapter_memcached_native_with_default_expires_spec.rb +0 -15
  93. data/spec/moneta/adapters/redis/adapter_redis_with_default_expires_spec.rb +0 -10
  94. data/spec/moneta/proxies/proxy/proxy_redis_spec.rb +0 -13
  95. data/spec/support/mongo_helper.rb +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 667e187cf3e0d0ce7e721e07036f70e0b65f1b52818fc09eb87311872896ce95
4
- data.tar.gz: 7e9063dfa4ea6f1bfbe4bee54821c75e9a82d0f54f3f820c6e396fafeeba006a
3
+ metadata.gz: 67e7a85926fad89dd255f180a3455b67c923d0194d447a8fe82cca0dbb546bbe
4
+ data.tar.gz: 51e15e0e3e1bafd312ee62d807afb72836e4f5c3cc036dc8c1ee0dcb8d51f80a
5
5
  SHA512:
6
- metadata.gz: 5e2d3880c0d3fed1ee66cb57f5ebba13a83dd7e4447ec1e99e601a85ff9bc454cf7bf4e9d62c8672324faddf9f396e4488c08400a08e1c1dd0181056655142b5
7
- data.tar.gz: 4be30ddd9249b7222c2354984815efde88ca3c8cfe65db26c13df1585bd80425cc8f55f68b869d07016183be29b4ae8495a3408fe3b67e0f27d21ef2f6de6a83
6
+ metadata.gz: cc4340a0c94ce262108361a3ed49116980cc0ee94838810babe5015bb43d3084875fa3e76f232b182470dda6a5ab9ac7e09fe9917a97082047ec9d0b7112a02a
7
+ data.tar.gz: a0f1c197e3222848e246bf0535805b4dd47bf8dbf9b3a383c619e187cb9b6d64ac6de4f711190630b4befac1e820061fd66a04d83a529a01bee519fbcde4af23
@@ -0,0 +1,415 @@
1
+ name: Ruby CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
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, 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_WITH: ${{ matrix.adapter }} snappy
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 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 }} -- spec/moneta
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.4, jruby]
87
+
88
+ env:
89
+ BUNDLE_WITH: RestClient
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 -- spec/moneta
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 10s
115
+ --health-retries 10
116
+ ports:
117
+ - 9042:9042
118
+
119
+ strategy:
120
+ matrix:
121
+ ruby-version: [2.7, 2.4, jruby]
122
+
123
+ env:
124
+ BUNDLE_WITH: Cassandra
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 -- spec/moneta
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_WITH: ActiveRecord Sequel DataMapper mysql
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 -- spec/moneta
193
+
194
+ postgres-adapters:
195
+ name: "Postgres adapters"
196
+ runs-on: ubuntu-latest
197
+
198
+ services:
199
+ postgres:
200
+ image: postgres:13.6
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.4, jruby]
214
+
215
+ env:
216
+ BUNDLE_WITH: ActiveRecord Sequel DataMapper postgresql
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 -- spec/moneta
242
+
243
+ sqlite-adapters:
244
+ name: "SQLite adapters"
245
+ runs-on: ubuntu-latest
246
+
247
+ strategy:
248
+ matrix:
249
+ ruby-version: [2.7, 2.4, jruby]
250
+
251
+ env:
252
+ BUNDLE_WITH: ActiveRecord Sequel DataMapper sqlite
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 -- spec/moneta
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.4, jruby]
285
+
286
+ env:
287
+ BUNDLE_WITH: Redis
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 -- spec/moneta
301
+
302
+ memcached:
303
+ name: "Memcached adapters"
304
+ runs-on: ubuntu-latest
305
+
306
+ strategy:
307
+ matrix:
308
+ ruby-version: [2.7, 2.4, jruby]
309
+
310
+ env:
311
+ BUNDLE_WITH: Memcached
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 -- spec/moneta
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.4] #, jruby] - FIXME reenable once https://github.com/mongodb/mongo-ruby-driver/pull/2143 is released
350
+
351
+ env:
352
+ BUNDLE_WITH: Mongo
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 -- spec/moneta
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.4, jruby]
374
+
375
+ env:
376
+ BUNDLE_WITH: transformers GDBM Fog
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 liblzo2-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
+ steps:
405
+ - uses: actions/checkout@v2
406
+
407
+ - name: Set up Ruby
408
+ uses: ruby/setup-ruby@v1
409
+ with:
410
+ ruby-version: 2.7
411
+ bundler: latest
412
+ bundler-cache: true
413
+
414
+ - name: Rubocop
415
+ run: bundle exec rubocop lib
data/CHANGES CHANGED
@@ -1,3 +1,21 @@
1
+ 1.5.0
2
+
3
+ * Adapters - internally, most (all?) adapters now inherit from a base Adapter class
4
+ * Adapters - adapter configuration is now accessed via a `config` method on
5
+ each adapter - see the code for examples. This shouldn't affect
6
+ users unless they were directly modifying adapters' attributes.
7
+ * Redis - fix deprecation warnings for Redis 4.6+ multi/pipelined handling (#215)
8
+ * Mongo - slight improvement to error handling
9
+
10
+ 1.4.2
11
+
12
+ * Pool - fix busy-loop issue (#197)
13
+
14
+ 1.4.1
15
+
16
+ * Adapters::Mongo - deprecate :db option, document :database option (#194)
17
+ * Adapters::Mongo - add retries to increment operation
18
+
1
19
  1.4.0
2
20
 
3
21
  * Adapters::Mongo - drop support for moped gem (#182)
data/CONTRIBUTORS CHANGED
@@ -3,6 +3,7 @@ Alastair Pharo <me@asph.dev>
3
3
  Alejandro Crosa <acrosa@sharing.local>
4
4
  Alessio Signorini <alessio@signorini.us>
5
5
  Anthony Eden <anthonyeden@gmail.com>
6
+ Antonio Terceiro <terceiro@debian.org>
6
7
  Atoxhybrid <atoxhybrid@gmail.com>
7
8
  AtoxIO <atoxhybrid@gmail.com>
8
9
  Ben Schwarz <ben.schwarz@gmail.com>
@@ -32,6 +33,7 @@ Potapov Sergey <blake131313@gmail.com>
32
33
  Quin Hoxie <quin@aboutus.org>
33
34
  Ryan T. Hosford <tad.hosford@gmail.com>
34
35
  Scott Wadden <scott.wadden@gmail.com>
36
+ Sven Riedel <sr@gimp.org>
35
37
  Timo Goebel <timo.goebel@dm.de>
36
38
  Tom Meier <ozmeier@yahoo.co.uk>
37
39
  Tony Han <h.bing612@gmail.com>
data/Gemfile CHANGED
@@ -1,86 +1,174 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
- # Used by multiple backends / transformers
5
- gem 'multi_json', groups: %i{json couch cassandra}
6
- gem 'faraday', groups: %i{couch restclient}
7
- gem 'manticore', groups: %i{couch restclient}, platforms: :jruby
4
+ group :transformers, optional: true do
5
+ group :tnet, optional: true do
6
+ gem 'tnetstring'
7
+ end
8
+
9
+ group :bencode, optional: true do
10
+ gem 'bencode'
11
+ end
12
+
13
+ group :ox, optional: true do
14
+ gem 'ox', platforms: :ruby
15
+ end
16
+
17
+ group :bert, optional: true do
18
+ gem 'bert', platforms: :ruby
19
+ end
20
+
21
+ group :php, optional: true do
22
+ gem 'php-serialize'
23
+ end
24
+
25
+ group :bson, optional: true do
26
+ gem 'bson', '>= 4.0.0'
27
+ end
28
+
29
+ group :msgpack, optional: true do
30
+ gem 'msgpack', platforms: :ruby
31
+ gem 'msgpack-jruby', platforms: :jruby
32
+ end
33
+
34
+ # Compressors used by Transformer
35
+ group :bzip2, optional: true do
36
+ gem 'rbzip2', '>= 0.3.0'
37
+ end
38
+
39
+ group :lz4, optional: true do
40
+ gem 'lz4-ruby', platforms: :ruby
41
+ end
42
+
43
+ group :lzma, optional: true do
44
+ gem 'ruby-lzma', platforms: :ruby
45
+ end
46
+
47
+ group :lzo, optional: true do
48
+ gem 'lzoruby', platforms: :ruby
49
+ end
50
+
51
+ group :snappy, optional: true do
52
+ gem 'snappy', platforms: :ruby
53
+ end
54
+
55
+ group :quicklz, optional: true do
56
+ gem 'qlzruby', platforms: :ruby
57
+ end
58
+
59
+ # Hash transformer library
60
+ group :city, optional: true do
61
+ gem 'cityhash', platforms: :ruby
62
+ end
63
+ end
8
64
 
9
- # Serializers used by Transformer
10
- gem 'tnetstring', group: :tnet
11
- gem 'bencode', group: :bencode
12
- gem 'ox', platforms: :ruby, group: :ox
13
- gem 'bert', platforms: :ruby, group: :bert
14
- gem 'php-serialize', group: :php
65
+ # Backends
66
+ group :Daybreak, optional: true do
67
+ gem 'daybreak'
68
+ end
15
69
 
16
- group :bson do
17
- gem 'bson', '>= 4.0.0'
70
+ group :ActiveRecord, optional: true do
71
+ gem 'activerecord', '~> 5.2'
18
72
  end
19
73
 
20
- group :msgpack do
21
- gem 'msgpack', platforms: :ruby
22
- gem 'msgpack-jruby', platforms: :jruby
74
+ group :Redis, optional: true do
75
+ gem 'redis', '~> 4.2'
23
76
  end
24
77
 
25
- # Compressors used by Transformer
26
- gem 'rbzip2', '>= 0.3.0', group: :bzip2
27
- gem 'lz4-ruby', platforms: :ruby, group: :lz4
28
- gem 'ruby-lzma', platforms: :ruby, group: :lzma
29
- gem 'lzoruby', platforms: :ruby, group: :lzo
30
- gem 'snappy', platforms: :ruby, group: :snappy
31
- gem 'qlzruby', platforms: :ruby, group: :quicklz
78
+ group :Mongo, optional: true do
79
+ gem 'mongo', '>= 2'
80
+ end
32
81
 
33
- # Hash transformer library
34
- gem 'cityhash', platforms: :ruby, group: :city
82
+ group :Sequel, optional: true do
83
+ gem 'sequel', '5.52.0'
84
+ end
35
85
 
36
- # Backends
37
- gem 'daybreak', group: :daybreak
38
- gem 'activerecord', '~> 5.2', group: :activerecord
39
- gem 'redis', '~> 4.0.0', group: :redis
40
- gem 'mongo', '>= 2', group: :mongo_official
41
- gem 'sequel', group: :sequel
42
- gem 'dalli', group: :memcached_dalli
43
- gem 'riak-client', group: :riak
44
- gem 'cassandra-driver', group: :cassandra
45
- gem 'tokyotyrant', group: :tokyotyrant
46
- gem 'hbaserb', group: :hbase
47
- gem 'localmemcache', platforms: :ruby, group: :localmemcache
48
- gem 'tdb', platforms: :ruby, group: :tdb
49
- gem 'leveldb-ruby', platforms: :ruby, group: :leveldb
50
- gem 'lmdb', platforms: :mri, group: :lmdb
51
- gem 'tokyocabinet', platforms: :ruby, group: :tokyocabinet
52
- gem 'kyotocabinet-ruby-reanimated', platforms: [:ruby_23, :ruby_24, :ruby_25, :ruby_26], group: :kyotocabinet
53
- gem 'memcached', platforms: :ruby, group: :memcached_native
54
- gem 'jruby-memcached', platforms: :jruby, group: :memcached_native
55
- gem 'activerecord-jdbch2-adapter', platforms: :jruby, group: :h2, github: 'jruby/activerecord-jdbc-adapter', glob: 'activerecord-jdbch2-adapter/*.gemspec', branch: '52-stable'
56
- gem 'ffi-gdbm', platforms: :jruby, group: :gdbm
57
- group :restclient do
58
- gem 'fishwife', platforms: :jruby
59
- gem 'rjack-logback', platforms: :jruby
60
- end
61
-
62
- group :datamapper do
86
+ group :Memcached, optional: true do
87
+ group :MemcachedDalli, optional: true do
88
+ gem 'dalli', '~> 2.7.11'
89
+ end
90
+
91
+ group :MemcachedNative, optional: true do
92
+ gem 'memcached', platforms: :ruby
93
+ gem 'jruby-memcached', platforms: :jruby
94
+ end
95
+ end
96
+
97
+ group :Riak, optional: true do
98
+ gem 'riak-client'
99
+ end
100
+
101
+ group :Cassandra, optional: true do
102
+ gem 'cassandra-driver'
103
+ end
104
+
105
+ group :TokyoTyrant, optional: true do
106
+ gem 'tokyotyrant'
107
+ end
108
+
109
+ group :HBase, optional: true do
110
+ gem 'hbaserb'
111
+ end
112
+
113
+ group :LocalMemCache, optional: true do
114
+ gem 'localmemcache', platforms: :ruby
115
+ end
116
+
117
+ group :TDB, optional: true do
118
+ gem 'tdb', platforms: :ruby
119
+ end
120
+
121
+ group :LevelDB, optional: true do
122
+ gem 'leveldb-ruby', platforms: :ruby
123
+ end
124
+
125
+ group :LMDB, optional: true do
126
+ gem 'lmdb', platforms: :mri
127
+ end
128
+
129
+ group :TokyoCabinet, optional: true do
130
+ gem 'tokyocabinet', platforms: :ruby
131
+ end
132
+
133
+ group :KyotoCabinet, optional: true do
134
+ gem 'kyotocabinet-ruby-reanimated', platforms: [:ruby_23, :ruby_24, :ruby_25, :ruby_26]
135
+ end
136
+
137
+ group :H2, optional: true do
138
+ gem 'activerecord-jdbch2-adapter', platforms: :jruby, github: 'jruby/activerecord-jdbc-adapter', glob: 'activerecord-jdbch2-adapter/*.gemspec', branch: '52-stable'
139
+ end
140
+
141
+ group :GDBM, optional: true do
142
+ gem 'ffi-gdbm', platforms: :jruby
143
+ end
144
+
145
+ group :RestClient do
146
+ gem 'faraday'
147
+ gem 'webrick'
148
+ end
149
+
150
+ group :DataMapper, optional: true do
63
151
  gem 'dm-core'
64
152
  gem 'dm-migrations'
65
153
  gem 'dm-mysql-adapter'
66
154
  end
67
155
 
68
- group :fog do
156
+ group :Fog, optional: true do
69
157
  gem 'fog-aws', '>= 1.11.1'
70
158
  gem 'mime-types'
71
159
  end
72
160
 
73
- group :mysql do
161
+ group :mysql, optional: true do
74
162
  gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
75
163
  gem 'mysql2', platforms: :ruby
76
164
  end
77
165
 
78
- group :sqlite do
166
+ group :sqlite, optional: true do
79
167
  gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
80
168
  gem 'sqlite3', '~> 1.3.6', platforms: :ruby
81
169
  end
82
170
 
83
- group :postgresql do
171
+ group :postgresql, optional: true do
84
172
  gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
85
173
  gem 'pg', platforms: :ruby
86
174
  end
@@ -99,7 +187,7 @@ end
99
187
 
100
188
  # Used for generating the feature matrix
101
189
  group :doc, optional: true do
102
- gem 'kramdown', '~> 1.17.0'
190
+ gem 'kramdown', '~> 2.3.0'
103
191
  gem 'yard', '~> 0.9.20'
104
192
  end
105
193