moneta 1.4.0 → 1.5.0

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