moneta 1.1.1 → 1.2.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 (103) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +176 -0
  3. data/.travis.yml +57 -23
  4. data/CHANGES +12 -0
  5. data/Gemfile +89 -64
  6. data/README.md +40 -14
  7. data/feature_matrix.yaml +1 -0
  8. data/lib/action_dispatch/middleware/session/moneta_store.rb +1 -0
  9. data/lib/active_support/cache/moneta_store.rb +5 -5
  10. data/lib/moneta.rb +9 -1
  11. data/lib/moneta/adapters/activerecord.rb +35 -19
  12. data/lib/moneta/adapters/activesupportcache.rb +3 -7
  13. data/lib/moneta/adapters/cassandra.rb +24 -16
  14. data/lib/moneta/adapters/client.rb +13 -9
  15. data/lib/moneta/adapters/couch.rb +220 -80
  16. data/lib/moneta/adapters/datamapper.rb +1 -0
  17. data/lib/moneta/adapters/file.rb +9 -6
  18. data/lib/moneta/adapters/hbase.rb +1 -1
  19. data/lib/moneta/adapters/kyotocabinet.rb +8 -7
  20. data/lib/moneta/adapters/leveldb.rb +1 -1
  21. data/lib/moneta/adapters/lmdb.rb +3 -4
  22. data/lib/moneta/adapters/lruhash.rb +29 -62
  23. data/lib/moneta/adapters/memcached.rb +1 -0
  24. data/lib/moneta/adapters/memcached/dalli.rb +1 -1
  25. data/lib/moneta/adapters/memcached/native.rb +10 -8
  26. data/lib/moneta/adapters/mongo.rb +1 -0
  27. data/lib/moneta/adapters/mongo/base.rb +3 -3
  28. data/lib/moneta/adapters/mongo/moped.rb +12 -13
  29. data/lib/moneta/adapters/mongo/official.rb +7 -8
  30. data/lib/moneta/adapters/null.rb +1 -2
  31. data/lib/moneta/adapters/pstore.rb +3 -2
  32. data/lib/moneta/adapters/redis.rb +3 -3
  33. data/lib/moneta/adapters/restclient.rb +12 -3
  34. data/lib/moneta/adapters/riak.rb +2 -2
  35. data/lib/moneta/adapters/sequel.rb +112 -119
  36. data/lib/moneta/adapters/sqlite.rb +3 -3
  37. data/lib/moneta/adapters/tokyotyrant.rb +1 -1
  38. data/lib/moneta/builder.rb +0 -1
  39. data/lib/moneta/enumerable.rb +38 -0
  40. data/lib/moneta/expires.rb +12 -12
  41. data/lib/moneta/fallback.rb +84 -0
  42. data/lib/moneta/lock.rb +1 -1
  43. data/lib/moneta/logger.rb +2 -2
  44. data/lib/moneta/mixins.rb +12 -10
  45. data/lib/moneta/optionmerger.rb +0 -1
  46. data/lib/moneta/pool.rb +301 -31
  47. data/lib/moneta/proxy.rb +2 -2
  48. data/lib/moneta/server.rb +9 -12
  49. data/lib/moneta/shared.rb +1 -1
  50. data/lib/moneta/stack.rb +6 -6
  51. data/lib/moneta/synchronize.rb +3 -3
  52. data/lib/moneta/transformer.rb +19 -17
  53. data/lib/moneta/transformer/config.rb +6 -5
  54. data/lib/moneta/transformer/helper.rb +3 -3
  55. data/lib/moneta/transformer/helper/bson.rb +18 -15
  56. data/lib/moneta/utils.rb +3 -9
  57. data/lib/moneta/version.rb +1 -1
  58. data/lib/moneta/weak_each_key.rb +2 -4
  59. data/lib/rack/cache/moneta.rb +16 -13
  60. data/lib/rack/moneta_rest.rb +2 -2
  61. data/lib/rack/session/moneta.rb +3 -4
  62. data/moneta.gemspec +8 -0
  63. data/script/benchmarks +55 -32
  64. data/script/reconfigure-couchdb +13 -0
  65. data/script/start-hbase +1 -0
  66. data/script/start-services +2 -10
  67. data/spec/active_support/cache_moneta_store_spec.rb +3 -1
  68. data/spec/features/concurrent_create.rb +31 -10
  69. data/spec/features/concurrent_increment.rb +27 -19
  70. data/spec/features/increment.rb +41 -41
  71. data/spec/helper.rb +2 -42
  72. data/spec/moneta/adapters/activesupportcache/adapter_activesupportcache_spec.rb +4 -1
  73. data/spec/moneta/adapters/activesupportcache/adapter_activesupportcache_with_default_expires_spec.rb +4 -1
  74. data/spec/moneta/adapters/activesupportcache/standard_activesupportcache_spec.rb +14 -0
  75. data/spec/moneta/adapters/couch/adapter_couch_spec.rb +199 -2
  76. data/spec/moneta/adapters/couch/standard_couch_spec.rb +8 -2
  77. data/spec/moneta/adapters/couch/standard_couch_with_expires_spec.rb +7 -1
  78. data/spec/moneta/adapters/faraday_helper.rb +9 -0
  79. data/spec/moneta/adapters/lruhash/adapter_lruhash_spec.rb +2 -2
  80. data/spec/moneta/adapters/memcached/adapter_memcached_spec.rb +1 -1
  81. data/spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_spec.rb +1 -1
  82. data/spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_with_default_expires_spec.rb +1 -1
  83. data/spec/moneta/adapters/memcached/dalli/standard_memcached_dalli_spec.rb +1 -1
  84. data/spec/moneta/adapters/memcached/native/adapter_memcached_native_spec.rb +1 -1
  85. data/spec/moneta/adapters/memcached/native/adapter_memcached_native_with_default_expires_spec.rb +1 -1
  86. data/spec/moneta/adapters/memcached/native/standard_memcached_native_spec.rb +1 -1
  87. data/spec/moneta/adapters/memcached/standard_memcached_spec.rb +1 -1
  88. data/spec/moneta/adapters/{memcached/helper.rb → memcached_helper.rb} +0 -0
  89. data/spec/moneta/adapters/null/null_adapter_spec.rb +1 -1
  90. data/spec/moneta/adapters/restclient/adapter_restclient_spec.rb +7 -5
  91. data/spec/moneta/adapters/restclient/helper.rb +12 -0
  92. data/spec/moneta/adapters/restclient/standard_restclient_spec.rb +9 -6
  93. data/spec/moneta/adapters/riak/standard_riak_with_expires_spec.rb +4 -0
  94. data/spec/moneta/adapters/tokyotyrant/adapter_tokyotyrant_spec.rb +6 -2
  95. data/spec/moneta/adapters/tokyotyrant/helper.rb +12 -0
  96. data/spec/moneta/adapters/tokyotyrant/standard_tokyotyrant_spec.rb +5 -2
  97. data/spec/moneta/adapters/tokyotyrant/standard_tokyotyrant_with_expires_spec.rb +5 -1
  98. data/spec/moneta/proxies/enumerable/enumerable_spec.rb +26 -0
  99. data/spec/moneta/proxies/fallback/fallback_spec.rb +42 -0
  100. data/spec/moneta/proxies/pool/pool_spec.rb +319 -6
  101. data/spec/restserver.rb +40 -0
  102. metadata +122 -7
  103. data/script/install-kyotocabinet +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 867a31ea01c90748ed86ae701f221d4a628b7c4932c8e0aa6c8b0f13f02a516b
4
- data.tar.gz: e3f89ab42ca23c9db8ddbcede6c6c447a8829ab78e01e1eb67edd1a6f2ac402e
3
+ metadata.gz: 4e697b98dafd89667bc720317d1e740691f4504cf6b7a33939d14251f2841fe3
4
+ data.tar.gz: 13eede9fc91b2379921f28798b6bac79de69527682f208042345b5fe331bd32d
5
5
  SHA512:
6
- metadata.gz: 58e3592ad92768341454f0c7b637fc614f3cd3d820566840333b2c229601627ac10ae77509fec769acd9c71a08f602b2c7d059ee0e6c7e2042d814f91201acf2
7
- data.tar.gz: 8d9eeb664e800fd1ebff92dea3701fb01aa25a453647f2ba76d54b1a3602e6897899f8cedff823046096ee675f6089355912de240ae5c8e96ed606c41fa5573f
6
+ metadata.gz: c1c9acbe14d38a5a300a8eb478225c8da317f2c6596b51e2421d5243aa6cd13020639e31594f03a1c43b6c537603402983cd5ca2a6deb900ac34cf5db3b99992
7
+ data.tar.gz: 614bfcb466639b2d348e8f1bd29d732a1d57489e3a6e4d292ae2f4ab8e3f385c878b0c3f890ae1f2fb4f684e9c969e71ecd2a393d9e848345c63b7d9b0818f8b
@@ -0,0 +1,176 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.2.2
3
+ UseCache: true
4
+ Exclude:
5
+ - hbase/**/*
6
+ - script/**/*
7
+ - vendor/**/*
8
+
9
+ Layout/AlignArray:
10
+ Exclude:
11
+ - lib/moneta/transformer/config.rb
12
+
13
+ Layout/AlignHash:
14
+ Exclude:
15
+ - lib/moneta/transformer/config.rb
16
+
17
+ Layout/DotPosition:
18
+ EnforcedStyle: leading
19
+
20
+ Layout/EmptyLineAfterGuardClause:
21
+ Enabled: false
22
+
23
+ Layout/ExtraSpacing:
24
+ Exclude:
25
+ - lib/moneta.rb
26
+ - lib/moneta/transformer/config.rb
27
+
28
+ Layout/MultilineMethodCallIndentation:
29
+ EnforcedStyle: indented
30
+
31
+ Layout/MultilineOperationIndentation:
32
+ EnforcedStyle: indented
33
+
34
+ Layout/SpaceInsideArrayLiteralBrackets:
35
+ Exclude:
36
+ - lib/moneta/transformer/config.rb
37
+
38
+ Lint/AssignmentInCondition:
39
+ Enabled: false
40
+
41
+ Lint/ShadowedException:
42
+ Enabled: false
43
+
44
+ Lint/ShadowingOuterLocalVariable:
45
+ Enabled: false
46
+
47
+ Lint/UnusedMethodArgument:
48
+ Enabled: false
49
+
50
+ Lint/Void:
51
+ Exclude:
52
+ - spec/**/*
53
+
54
+ Metrics/AbcSize:
55
+ Enabled: false
56
+
57
+ Metrics/BlockNesting:
58
+ Enabled: false
59
+
60
+ Metrics/ClassLength:
61
+ Enabled: false
62
+
63
+ Metrics/CyclomaticComplexity:
64
+ Enabled: false
65
+
66
+ Metrics/BlockLength:
67
+ Exclude:
68
+ - spec/**/*
69
+
70
+ Metrics/LineLength:
71
+ Max: 160
72
+
73
+ Metrics/MethodLength:
74
+ Enabled: false
75
+
76
+ Metrics/ParameterLists:
77
+ Enabled: false
78
+
79
+ Metrics/PerceivedComplexity:
80
+ Enabled: false
81
+
82
+ Naming/ConstantName:
83
+ Exclude:
84
+ - lib/rack/cache/moneta.rb
85
+
86
+ Naming/RescuedExceptionsVariableName:
87
+ Enabled: false
88
+
89
+ Naming/MemoizedInstanceVariableName:
90
+ Enabled: false
91
+
92
+ Security/MarshalLoad:
93
+ Enabled: false
94
+
95
+ Style/AndOr:
96
+ Enabled: false
97
+
98
+ Style/CaseEquality:
99
+ Enabled: false
100
+
101
+ Style/CharacterLiteral:
102
+ Enabled: false
103
+
104
+ Style/DoubleNegation:
105
+ Enabled: false
106
+
107
+ Style/GlobalVars:
108
+ Exclude:
109
+ - spec/moneta/adapters/cassandra/helper.rb
110
+
111
+ Style/FrozenStringLiteralComment:
112
+ Enabled: false
113
+
114
+ Style/FormatString:
115
+ Enabled: false
116
+
117
+ Style/GuardClause:
118
+ Enabled: false
119
+
120
+ Style/IfUnlessModifier:
121
+ Enabled: false
122
+
123
+ Style/Lambda:
124
+ EnforcedStyle: lambda
125
+
126
+ Style/ModuleFunction:
127
+ Enabled: false
128
+
129
+ Style/MultilineIfModifier:
130
+ Enabled: false
131
+
132
+ Style/MutableConstant:
133
+ Exclude:
134
+ - lib/rack/cache/moneta.rb
135
+
136
+ Style/NilComparison:
137
+ EnforcedStyle: comparison
138
+
139
+ Style/NumericLiterals:
140
+ Enabled: false
141
+
142
+ Style/NumericPredicate:
143
+ EnforcedStyle: comparison
144
+
145
+ Style/NonNilCheck:
146
+ Enabled: false
147
+
148
+ Style/ParallelAssignment:
149
+ Enabled: false
150
+
151
+ Style/PercentLiteralDelimiters:
152
+ Enabled: false
153
+
154
+ Style/PreferredHashMethods:
155
+ Enabled: false
156
+
157
+ Style/RescueStandardError:
158
+ EnforcedStyle: implicit
159
+
160
+ Style/RescueModifier:
161
+ Enabled: false
162
+
163
+ Style/SafeNavigation:
164
+ Enabled: false
165
+
166
+ Style/StringLiterals:
167
+ Enabled: false
168
+
169
+ Style/SymbolArray:
170
+ Enabled: false
171
+
172
+ Style/SymbolProc:
173
+ Enabled: false
174
+
175
+ Style/YodaCondition:
176
+ Enabled: false
@@ -1,3 +1,4 @@
1
+ dist: xenial
1
2
  language: ruby
2
3
  rvm:
3
4
  - 2.6
@@ -8,17 +9,33 @@ rvm:
8
9
  - jruby-9.2
9
10
  - rbx-3
10
11
  services:
12
+ - mysql
11
13
  - riak
12
- - couchdb
13
14
  - redis
14
15
  - cassandra
15
16
  - memcached
16
17
  - mongodb
17
18
  - postgresql
18
19
  addons:
20
+ apt:
21
+ sources:
22
+ - cassandra
23
+ - sourceline: "deb https://apache.bintray.com/couchdb-deb xenial main"
24
+ key_url: https://couchdb.apache.org/repo/bintray-pubkey.asc
25
+ - sourceline: "deb https://packagecloud.io/basho/riak/ubuntu/ xenial main"
26
+ key_url: https://packagecloud.io/basho/riak/gpgkey
27
+ packages:
28
+ - cassandra
29
+ - couchdb
30
+ - libkyotocabinet-dev
31
+ - libleveldb-dev
32
+ - liblzo2-dev
33
+ - libtdb-dev
34
+ - libtokyocabinet-dev
35
+ - tokyotyrant
36
+ - riak
19
37
  postgresql: '9.6'
20
38
  before_install:
21
- - sudo apt-get install -qq libtokyocabinet9 libtokyocabinet-dev libkyotocabinet16 libkyotocabinet-dev liblzo2-dev libtdb-dev libleveldb-dev tokyotyrant
22
39
  - script/start-services
23
40
  cache:
24
41
  bundler: true
@@ -31,10 +48,8 @@ before_script:
31
48
  - psql -c 'create extension hstore;' -U postgres moneta1
32
49
  - psql -c 'create database moneta2;' -U postgres
33
50
  env:
34
- global:
35
- - secure: "dtM4n7FP8P0UI9Iq+nsvQ7/yfDqsxhfCO9i8zMxm/f9Kxj5Z/4C7jsXsLA+e\n/7FZ9+ld2QjPSPU0LUiDpj/z81bxyZHwqocQ7Nb0DVvO3JRHpr4/iBQQQHd3\n0jvou3mRbu5mBlUjf1/ALaZA+b+vcnsF9fd86UnkY+ChriylGnM="
36
51
  matrix:
37
- - SCRIPT='parallel-tests ~unstable --
52
+ - SCRIPT='script/parallel-tests ~unstable --
38
53
  test/action_dispatch/session_moneta_store_test.rb
39
54
  spec/moneta/adapters/activerecord
40
55
  spec/moneta/adapters/localmemcache
@@ -57,7 +72,7 @@ env:
57
72
  spec/moneta/adapters/lmdb
58
73
  spec/moneta/adapters/yaml
59
74
  '
60
- - SCRIPT='parallel-tests ~unstable --
75
+ - SCRIPT='script/parallel-tests ~unstable --
61
76
  spec/moneta/adapters/client
62
77
  spec/moneta/adapters/memory
63
78
  spec/moneta/adapters/cookie
@@ -65,41 +80,60 @@ env:
65
80
  spec/moneta/adapters/tdb
66
81
  spec/moneta/adapters/kyotocabinet
67
82
  '
68
- - SCRIPT='parallel-tests ~unstable --
69
- spec/moneta/adapters/couch
83
+ - SCRIPT='script/parallel-tests ~unstable --
84
+ spec/moneta/adapters/couch/standard_couch_spec.rb
70
85
  '
71
- - SCRIPT='parallel-tests ~unstable --
86
+ - SCRIPT='script/parallel-tests ~unstable --
87
+ spec/moneta/adapters/couch/standard_couch_with_expires_spec.rb
88
+ '
89
+ - SCRIPT='script/parallel-tests ~unstable --
72
90
  spec/moneta/adapters/memcached/dalli
73
91
  '
74
- - SCRIPT='parallel-tests ~unstable --
92
+ - SCRIPT='script/parallel-tests ~unstable --
75
93
  spec/moneta/adapters/memcached/native
94
+ spec/moneta/adapters/couch/adapter_couch_spec.rb
76
95
  '
77
- - SCRIPT='parallel-tests ~unstable --
96
+ - SCRIPT='script/parallel-tests ~unstable --
78
97
  spec/moneta/adapters/cassandra/adapter_cassandra_spec.rb
79
98
  spec/moneta/adapters/cassandra/standard_cassandra_spec.rb
80
99
  '
81
- - SCRIPT='parallel-tests ~unstable --
100
+ - SCRIPT='script/parallel-tests ~unstable --
82
101
  spec/moneta/adapters/cassandra/adapter_cassandra_with_default_expires_spec.rb
83
102
  spec/moneta/adapters/hashfile
84
103
  spec/moneta/adapters/sqlite
85
104
  spec/moneta/adapters/sequel
86
105
  '
87
- - SCRIPT='parallel-tests ~unstable --
106
+ - SCRIPT='script/parallel-tests ~unstable --
88
107
  spec/moneta/proxies
89
108
  '
90
- - SCRIPT='parallel-tests ~unstable --remainder'
91
- - SCRIPT='parallel-tests unstable'
92
- - SCRIPT='benchmarks uniform_small'
93
- - SCRIPT='benchmarks uniform_medium'
94
- - SCRIPT='benchmarks uniform_large'
95
- - SCRIPT='benchmarks normal_small'
96
- - SCRIPT='benchmarks normal_medium'
97
- - SCRIPT='benchmarks normal_large'
109
+ - SCRIPT='script/parallel-tests ~unstable --remainder'
110
+ - SCRIPT='script/parallel-tests unstable'
111
+ - SCRIPT='script/benchmarks uniform_small'
112
+ - SCRIPT='script/benchmarks uniform_medium'
113
+ - SCRIPT='script/benchmarks uniform_large'
114
+ - SCRIPT='script/benchmarks normal_small'
115
+ - SCRIPT='script/benchmarks normal_medium'
116
+ - SCRIPT='script/benchmarks normal_large'
117
+ - SCRIPT='rubocop lib'
98
118
  matrix:
99
119
  allow_failures:
100
120
  - rvm: rbx-3
101
- - env: SCRIPT='parallel-tests unstable'
102
- script: "bundle exec script/$SCRIPT"
121
+ - env: SCRIPT='script/parallel-tests unstable'
122
+ exclude:
123
+ - rvm: 2.5
124
+ env: SCRIPT='rubocop lib'
125
+ - rvm: 2.4
126
+ env: SCRIPT='rubocop lib'
127
+ - rvm: 2.3
128
+ env: SCRIPT='rubocop lib'
129
+ - rvm: 2.2
130
+ env: SCRIPT='rubocop lib'
131
+ - rvm: jruby-9.2
132
+ env: SCRIPT='rubocop lib'
133
+ - rvm: rbx-3
134
+ env: SCRIPT='rubocop lib'
135
+
136
+ script: "bundle exec $SCRIPT"
103
137
  branches:
104
138
  only:
105
139
  - master
data/CHANGES CHANGED
@@ -1,3 +1,15 @@
1
+ 1.2.0
2
+
3
+ * Adapters::Sequel - fix for compatibility with new version of JDBC SQLite
4
+ * Adapters::Couch - refactor of error handling, #clear, #merge!, #slice, rev caching
5
+ * Fallback - add fallback proxy (#162)
6
+ * Pool - rewrite to enable limiting of size, gradual shrinking
7
+ * Enumerable - add proxy providing Enumerable API (using #each_key)
8
+ * Adapters::Couch, Adapters::RestClient - add Faraday :adapter option
9
+ * Adapters::Couch - add :full_commit and :batch options to some operations
10
+ * Adapters::LRUHash - rewrite to take advantage of ordered hashes
11
+ * Adapters::ActiveRecord - recover from deadlock during increment
12
+
1
13
  1.1.1
2
14
 
3
15
  * Adapters::Sequel - use prepared statements
data/Gemfile CHANGED
@@ -1,80 +1,105 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
- # Testing
5
- gem 'rspec', '~> 3.0'
6
- gem 'rspec-retry'
7
- gem 'rantly', '~> 1.2.0'
8
- gem 'parallel_tests'
9
- gem 'timecop'
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
10
8
 
11
- # Serializer used by Transformer
12
- gem 'tnetstring'
13
- gem 'bencode'
14
- gem 'multi_json'
15
- gem 'bson_ext', platforms: :ruby
16
- gem 'bson', '>= 2.0.0'
17
- gem 'ox', platforms: :ruby
18
- gem 'msgpack', platforms: :ruby
19
- gem 'msgpack-jruby', platforms: :jruby
20
- gem 'bert', platforms: :ruby
21
- gem 'php-serialize'
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
15
+
16
+ group :bson do
17
+ gem 'bson', '>= 2.0.0'
18
+ end
19
+
20
+ group :msgpack do
21
+ gem 'msgpack', platforms: :ruby
22
+ gem 'msgpack-jruby', platforms: :jruby
23
+ end
22
24
 
23
25
  # Compressors used by Transformer
24
- gem 'rbzip2', '~> 0.3.0'
25
- gem 'lz4-ruby', platforms: :ruby
26
- gem 'ruby-lzma', platforms: :ruby
27
- gem 'lzoruby', platforms: :ruby
28
- gem 'snappy', platforms: :ruby
29
- gem 'qlzruby', platforms: :ruby
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
30
32
 
31
33
  # Hash transformer library
32
- gem 'cityhash', platforms: :ruby
34
+ gem 'cityhash', platforms: :ruby, group: :city
33
35
 
34
36
  # Backends
35
- gem 'faraday'
36
- gem 'daybreak'
37
- gem 'dm-core'
38
- gem 'dm-migrations'
39
- gem 'dm-mysql-adapter'
40
- gem 'fog-aws', '>= 1.11.1'
41
- gem 'mime-types'
42
- gem 'activerecord', '~> 5.2'
43
- gem 'redis', '~> 4.0.0'
44
- gem 'mongo', '~> 2.1.0'
45
- gem 'moped', '>= 2.0.0'
46
- gem 'sequel'
47
- gem 'dalli'
48
- gem 'riak-client'
49
- gem 'cassandra-driver'
50
- gem 'tokyotyrant'
51
- #gem 'ruby-tokyotyrant', platforms: :ruby
52
- gem 'hbaserb'
53
- gem 'localmemcache', platforms: :ruby
54
- gem 'tdb', platforms: :ruby
55
- gem 'leveldb-ruby', platforms: :ruby
56
- gem 'lmdb', platforms: :mri
57
- gem 'tokyocabinet', platforms: :ruby
58
- gem 'kyotocabinet-ruby-reanimated', platforms: :ruby
59
- gem 'memcached', platforms: :ruby
60
- gem 'jruby-memcached', platforms: :jruby
61
- gem 'sqlite3', '~> 1.3.6', platforms: :ruby
62
- gem 'activerecord-jdbc-adapter', platforms: :jruby
63
- gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
64
- gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
65
- gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
66
- gem 'activerecord-jdbch2-adapter', platforms: :jruby
67
- gem 'mysql2', platforms: :ruby
68
- gem 'ffi-gdbm', platforms: :jruby
69
- gem 'pg', platforms: :ruby
37
+ gem 'daybreak', group: :daybreak
38
+ gem 'activerecord', '~> 5.2', group: :activerecord
39
+ gem 'redis', '~> 4.0.0', group: :redis
40
+ gem 'mongo', '~> 2.1.0', group: :mongo_official
41
+ gem 'moped', '>= 2.0.0', group: :mongo_moped
42
+ gem 'sequel', group: :sequel
43
+ gem 'dalli', group: :memcached_dalli
44
+ gem 'riak-client', group: :riak
45
+ gem 'cassandra-driver', group: :cassandra
46
+ gem 'tokyotyrant', group: :tokyotyrant
47
+ gem 'hbaserb', group: :hbase
48
+ gem 'localmemcache', platforms: :ruby, group: :localmemcache
49
+ gem 'tdb', platforms: :ruby, group: :tdb
50
+ gem 'leveldb-ruby', platforms: :ruby, group: :leveldb
51
+ gem 'lmdb', platforms: :mri, group: :lmdb
52
+ gem 'tokyocabinet', platforms: :ruby, group: :tokyocabinet
53
+ gem 'kyotocabinet-ruby-reanimated', platforms: :ruby, group: :kyotocabinet
54
+ gem 'memcached', platforms: :ruby, group: :memcached_native
55
+ gem 'jruby-memcached', platforms: :jruby, group: :memcached_native
56
+ gem 'activerecord-jdbch2-adapter', platforms: :jruby, group: :h2, github: 'jruby/activerecord-jdbc-adapter', glob: 'activerecord-jdbch2-adapter/*.gemspec', branch: '52-stable'
57
+ gem 'ffi-gdbm', platforms: :jruby, group: :gdbm
58
+ group :restclient do
59
+ gem 'fishwife', platforms: :jruby
60
+ gem 'rjack-logback', platforms: :jruby
61
+ end
62
+
63
+ group :datamapper do
64
+ gem 'dm-core'
65
+ gem 'dm-migrations'
66
+ gem 'dm-mysql-adapter'
67
+ end
68
+
69
+ group :fog do
70
+ gem 'fog-aws', '>= 1.11.1'
71
+ gem 'mime-types'
72
+ end
73
+
74
+ group :mysql do
75
+ gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
76
+ gem 'mysql2', platforms: :ruby
77
+ end
78
+
79
+ group :sqlite do
80
+ gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
81
+ gem 'sqlite3', '~> 1.3.6', platforms: :ruby
82
+ end
83
+
84
+ group :postgresql do
85
+ gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
86
+ gem 'pg', platforms: :ruby
87
+ end
70
88
 
71
89
  # Rack integration testing
72
- gem 'rack'
73
- gem 'rack-cache'
90
+ group :rack do
91
+ gem 'rack'
92
+ gem 'rack-cache'
93
+ end
74
94
 
75
95
  # Rails integration testing
76
- gem 'actionpack', '~> 5.0'
77
- gem 'minitest', '~> 5.0'
96
+ group :rails do
97
+ gem 'actionpack', '~> 5.0'
98
+ gem 'minitest', '~> 5.0'
99
+ end
78
100
 
79
101
  # Used for generating the feature matrix
80
- gem 'kramdown', '~> 1.17.0', group: :doc
102
+ group :doc, optional: true do
103
+ gem 'kramdown', '~> 1.17.0'
104
+ gem 'yard', '~> 0.9.20'
105
+ end