moneta 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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