moneta 1.1.1 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (207) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +194 -0
  4. data/.travis.yml +65 -25
  5. data/CHANGES +36 -0
  6. data/CONTRIBUTORS +4 -2
  7. data/Gemfile +94 -65
  8. data/README.md +50 -25
  9. data/feature_matrix.yaml +3 -11
  10. data/lib/action_dispatch/middleware/session/moneta_store.rb +1 -0
  11. data/lib/active_support/cache/moneta_store.rb +5 -5
  12. data/lib/moneta.rb +18 -10
  13. data/lib/moneta/adapters/activerecord.rb +35 -19
  14. data/lib/moneta/adapters/activesupportcache.rb +3 -7
  15. data/lib/moneta/adapters/cassandra.rb +24 -16
  16. data/lib/moneta/adapters/client.rb +62 -21
  17. data/lib/moneta/adapters/couch.rb +225 -80
  18. data/lib/moneta/adapters/datamapper.rb +1 -0
  19. data/lib/moneta/adapters/file.rb +9 -6
  20. data/lib/moneta/adapters/hbase.rb +1 -1
  21. data/lib/moneta/adapters/kyotocabinet.rb +8 -7
  22. data/lib/moneta/adapters/leveldb.rb +1 -1
  23. data/lib/moneta/adapters/lmdb.rb +3 -4
  24. data/lib/moneta/adapters/lruhash.rb +29 -62
  25. data/lib/moneta/adapters/memcached.rb +1 -0
  26. data/lib/moneta/adapters/memcached/dalli.rb +1 -1
  27. data/lib/moneta/adapters/memcached/native.rb +10 -8
  28. data/lib/moneta/adapters/mongo.rb +264 -6
  29. data/lib/moneta/adapters/null.rb +1 -2
  30. data/lib/moneta/adapters/pstore.rb +3 -2
  31. data/lib/moneta/adapters/redis.rb +8 -4
  32. data/lib/moneta/adapters/restclient.rb +12 -3
  33. data/lib/moneta/adapters/riak.rb +2 -2
  34. data/lib/moneta/adapters/sequel.rb +68 -494
  35. data/lib/moneta/adapters/sequel/mysql.rb +66 -0
  36. data/lib/moneta/adapters/sequel/postgres.rb +80 -0
  37. data/lib/moneta/adapters/sequel/postgres_hstore.rb +240 -0
  38. data/lib/moneta/adapters/sequel/sqlite.rb +57 -0
  39. data/lib/moneta/adapters/sqlite.rb +10 -10
  40. data/lib/moneta/adapters/tokyotyrant.rb +1 -1
  41. data/lib/moneta/builder.rb +2 -3
  42. data/lib/moneta/create_support.rb +21 -0
  43. data/lib/moneta/dbm_adapter.rb +31 -0
  44. data/lib/moneta/{mixins.rb → defaults.rb} +3 -302
  45. data/lib/moneta/each_key_support.rb +27 -0
  46. data/lib/moneta/enumerable.rb +38 -0
  47. data/lib/moneta/expires.rb +12 -12
  48. data/lib/moneta/expires_support.rb +60 -0
  49. data/lib/moneta/fallback.rb +84 -0
  50. data/lib/moneta/hash_adapter.rb +68 -0
  51. data/lib/moneta/increment_support.rb +16 -0
  52. data/lib/moneta/lock.rb +7 -2
  53. data/lib/moneta/logger.rb +2 -2
  54. data/lib/moneta/nil_values.rb +35 -0
  55. data/lib/moneta/option_support.rb +51 -0
  56. data/lib/moneta/optionmerger.rb +0 -1
  57. data/lib/moneta/pool.rb +312 -30
  58. data/lib/moneta/proxy.rb +3 -3
  59. data/lib/moneta/server.rb +216 -65
  60. data/lib/moneta/shared.rb +13 -7
  61. data/lib/moneta/stack.rb +6 -6
  62. data/lib/moneta/synchronize.rb +3 -3
  63. data/lib/moneta/transformer.rb +68 -24
  64. data/lib/moneta/transformer/config.rb +63 -43
  65. data/lib/moneta/transformer/helper.rb +3 -3
  66. data/lib/moneta/transformer/helper/bson.rb +7 -14
  67. data/lib/moneta/utils.rb +3 -9
  68. data/lib/moneta/version.rb +1 -1
  69. data/lib/moneta/weak_each_key.rb +2 -4
  70. data/lib/rack/cache/moneta.rb +13 -11
  71. data/lib/rack/moneta_rest.rb +2 -2
  72. data/lib/rack/session/moneta.rb +3 -4
  73. data/moneta.gemspec +18 -4
  74. data/script/benchmarks +61 -34
  75. data/script/contributors +11 -6
  76. data/script/start-couchdb +27 -0
  77. data/script/start-hbase +3 -2
  78. data/script/start-services +3 -11
  79. data/spec/active_support/cache_moneta_store_spec.rb +30 -30
  80. data/spec/features/concurrent_create.rb +31 -10
  81. data/spec/features/concurrent_increment.rb +26 -19
  82. data/spec/features/create_expires.rb +15 -15
  83. data/spec/features/default_expires.rb +11 -12
  84. data/spec/features/expires.rb +215 -210
  85. data/spec/features/increment.rb +41 -41
  86. data/spec/features/store.rb +3 -3
  87. data/spec/helper.rb +21 -82
  88. data/spec/moneta/adapters/activerecord/standard_activerecord_spec.rb +1 -1
  89. data/spec/moneta/adapters/activerecord/standard_activerecord_with_expires_spec.rb +1 -1
  90. data/spec/moneta/adapters/activesupportcache/adapter_activesupportcache_spec.rb +4 -1
  91. data/spec/moneta/adapters/activesupportcache/adapter_activesupportcache_with_default_expires_spec.rb +4 -1
  92. data/spec/moneta/adapters/activesupportcache/standard_activesupportcache_spec.rb +14 -0
  93. data/spec/moneta/adapters/cassandra/standard_cassandra_spec.rb +1 -1
  94. data/spec/moneta/adapters/client/adapter_client_spec.rb +6 -6
  95. data/spec/moneta/adapters/client/client_helper.rb +24 -0
  96. data/spec/moneta/adapters/client/standard_client_tcp_spec.rb +8 -8
  97. data/spec/moneta/adapters/client/standard_client_unix_spec.rb +23 -7
  98. data/spec/moneta/adapters/couch/adapter_couch_spec.rb +199 -2
  99. data/spec/moneta/adapters/couch/standard_couch_spec.rb +9 -3
  100. data/spec/moneta/adapters/couch/standard_couch_with_expires_spec.rb +8 -2
  101. data/spec/moneta/adapters/daybreak/standard_daybreak_spec.rb +1 -1
  102. data/spec/moneta/adapters/daybreak/standard_daybreak_with_expires_spec.rb +1 -1
  103. data/spec/moneta/adapters/dbm/standard_dbm_spec.rb +1 -1
  104. data/spec/moneta/adapters/dbm/standard_dbm_with_expires_spec.rb +1 -1
  105. data/spec/moneta/adapters/faraday_helper.rb +9 -0
  106. data/spec/moneta/adapters/file/standard_file_spec.rb +2 -2
  107. data/spec/moneta/adapters/file/standard_file_with_expires_spec.rb +1 -1
  108. data/spec/moneta/adapters/gdbm/standard_gdbm_spec.rb +1 -1
  109. data/spec/moneta/adapters/gdbm/standard_gdbm_with_expires_spec.rb +1 -1
  110. data/spec/moneta/adapters/kyotocabinet/adapter_kyotocabinet_spec.rb +1 -1
  111. data/spec/moneta/adapters/kyotocabinet/standard_kyotocabinet_spec.rb +2 -2
  112. data/spec/moneta/adapters/kyotocabinet/standard_kyotocabinet_with_expires_spec.rb +2 -2
  113. data/spec/moneta/adapters/leveldb/standard_leveldb_spec.rb +1 -1
  114. data/spec/moneta/adapters/leveldb/standard_leveldb_with_expires_spec.rb +1 -1
  115. data/spec/moneta/adapters/lmdb/standard_lmdb_spec.rb +1 -1
  116. data/spec/moneta/adapters/lmdb/standard_lmdb_with_expires_spec.rb +1 -1
  117. data/spec/moneta/adapters/lruhash/adapter_lruhash_spec.rb +2 -2
  118. data/spec/moneta/adapters/lruhash/standard_lruhash_spec.rb +1 -1
  119. data/spec/moneta/adapters/lruhash/standard_lruhash_with_expires_spec.rb +1 -1
  120. data/spec/moneta/adapters/memcached/adapter_memcached_spec.rb +1 -1
  121. data/spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_spec.rb +1 -1
  122. data/spec/moneta/adapters/memcached/dalli/adapter_memcached_dalli_with_default_expires_spec.rb +1 -1
  123. data/spec/moneta/adapters/memcached/dalli/standard_memcached_dalli_spec.rb +1 -1
  124. data/spec/moneta/adapters/memcached/native/adapter_memcached_native_spec.rb +1 -1
  125. data/spec/moneta/adapters/memcached/native/adapter_memcached_native_with_default_expires_spec.rb +1 -1
  126. data/spec/moneta/adapters/memcached/native/standard_memcached_native_spec.rb +1 -1
  127. data/spec/moneta/adapters/memcached/standard_memcached_spec.rb +1 -1
  128. data/spec/moneta/adapters/{memcached/helper.rb → memcached_helper.rb} +0 -0
  129. data/spec/moneta/adapters/memory/standard_memory_spec.rb +1 -1
  130. data/spec/moneta/adapters/memory/standard_memory_with_compress_spec.rb +1 -1
  131. data/spec/moneta/adapters/memory/standard_memory_with_expires_spec.rb +1 -1
  132. data/spec/moneta/adapters/memory/standard_memory_with_json_key_serializer_spec.rb +1 -1
  133. data/spec/moneta/adapters/memory/standard_memory_with_json_serializer_spec.rb +1 -1
  134. data/spec/moneta/adapters/memory/standard_memory_with_json_value_serializer_spec.rb +2 -2
  135. data/spec/moneta/adapters/memory/standard_memory_with_prefix_spec.rb +39 -2
  136. data/spec/moneta/adapters/memory/standard_memory_with_snappy_compress_spec.rb +2 -2
  137. data/spec/moneta/adapters/mongo/adapter_mongo_spec.rb +32 -2
  138. data/spec/moneta/adapters/mongo/adapter_mongo_with_default_expires_spec.rb +5 -3
  139. data/spec/moneta/adapters/mongo/standard_mongo_spec.rb +2 -2
  140. data/spec/moneta/adapters/null/null_adapter_spec.rb +1 -1
  141. data/spec/moneta/adapters/pstore/standard_pstore_spec.rb +1 -1
  142. data/spec/moneta/adapters/pstore/standard_pstore_with_expires_spec.rb +1 -1
  143. data/spec/moneta/adapters/redis/standard_redis_spec.rb +1 -1
  144. data/spec/moneta/adapters/restclient/adapter_restclient_spec.rb +7 -5
  145. data/spec/moneta/adapters/restclient/helper.rb +12 -0
  146. data/spec/moneta/adapters/restclient/standard_restclient_spec.rb +9 -6
  147. data/spec/moneta/adapters/riak/standard_riak_with_expires_spec.rb +4 -0
  148. data/spec/moneta/adapters/sdbm/standard_sdbm_spec.rb +1 -1
  149. data/spec/moneta/adapters/sdbm/standard_sdbm_with_expires_spec.rb +1 -1
  150. data/spec/moneta/adapters/sequel/adapter_sequel_spec.rb +7 -34
  151. data/spec/moneta/adapters/sequel/helper.rb +37 -0
  152. data/spec/moneta/adapters/sequel/standard_sequel_spec.rb +5 -11
  153. data/spec/moneta/adapters/sequel/standard_sequel_with_expires_spec.rb +8 -9
  154. data/spec/moneta/adapters/sqlite/standard_sqlite_spec.rb +1 -1
  155. data/spec/moneta/adapters/sqlite/standard_sqlite_with_expires_spec.rb +1 -1
  156. data/spec/moneta/adapters/tdb/standard_tdb_spec.rb +1 -1
  157. data/spec/moneta/adapters/tdb/standard_tdb_with_expires_spec.rb +1 -1
  158. data/spec/moneta/adapters/tokyocabinet/standard_tokyocabinet_spec.rb +1 -1
  159. data/spec/moneta/adapters/tokyocabinet/standard_tokyocabinet_with_expires_spec.rb +1 -1
  160. data/spec/moneta/adapters/tokyotyrant/adapter_tokyotyrant_spec.rb +6 -2
  161. data/spec/moneta/adapters/tokyotyrant/helper.rb +12 -0
  162. data/spec/moneta/adapters/tokyotyrant/standard_tokyotyrant_spec.rb +5 -2
  163. data/spec/moneta/adapters/tokyotyrant/standard_tokyotyrant_with_expires_spec.rb +5 -1
  164. data/spec/moneta/adapters/yaml/standard_yaml_spec.rb +1 -1
  165. data/spec/moneta/adapters/yaml/standard_yaml_with_expires_spec.rb +1 -1
  166. data/spec/moneta/builder_spec.rb +22 -0
  167. data/spec/moneta/proxies/enumerable/enumerable_spec.rb +26 -0
  168. data/spec/moneta/proxies/expires/expires_file_spec.rb +1 -1
  169. data/spec/moneta/proxies/fallback/fallback_spec.rb +42 -0
  170. data/spec/moneta/proxies/pool/pool_spec.rb +319 -6
  171. data/spec/moneta/proxies/shared/shared_tcp_spec.rb +14 -4
  172. data/spec/moneta/proxies/shared/shared_unix_spec.rb +14 -4
  173. data/spec/moneta/proxies/transformer/transformer_bencode_spec.rb +1 -1
  174. data/spec/moneta/proxies/transformer/transformer_bert_spec.rb +3 -3
  175. data/spec/moneta/proxies/transformer/transformer_bson_spec.rb +2 -2
  176. data/spec/moneta/proxies/transformer/transformer_json_spec.rb +1 -1
  177. data/spec/moneta/proxies/transformer/transformer_key_marshal_spec.rb +1 -1
  178. data/spec/moneta/proxies/transformer/transformer_key_yaml_spec.rb +1 -1
  179. data/spec/moneta/proxies/transformer/transformer_marshal_base64_spec.rb +1 -1
  180. data/spec/moneta/proxies/transformer/transformer_marshal_escape_spec.rb +8 -4
  181. data/spec/moneta/proxies/transformer/transformer_marshal_hex_spec.rb +1 -1
  182. data/spec/moneta/proxies/transformer/transformer_marshal_hmac_spec.rb +1 -1
  183. data/spec/moneta/proxies/transformer/transformer_marshal_prefix_base64_spec.rb +33 -0
  184. data/spec/moneta/proxies/transformer/transformer_marshal_prefix_spec.rb +1 -1
  185. data/spec/moneta/proxies/transformer/transformer_marshal_qp_spec.rb +1 -1
  186. data/spec/moneta/proxies/transformer/transformer_marshal_spec.rb +1 -1
  187. data/spec/moneta/proxies/transformer/transformer_marshal_urlsafe_base64_spec.rb +1 -1
  188. data/spec/moneta/proxies/transformer/transformer_marshal_uuencode_spec.rb +1 -1
  189. data/spec/moneta/proxies/transformer/transformer_msgpack_spec.rb +1 -1
  190. data/spec/moneta/proxies/transformer/transformer_ox_spec.rb +1 -1
  191. data/spec/moneta/proxies/transformer/transformer_php_spec.rb +1 -1
  192. data/spec/moneta/proxies/transformer/transformer_tnet_spec.rb +1 -1
  193. data/spec/moneta/proxies/transformer/transformer_yaml_spec.rb +2 -2
  194. data/spec/moneta/proxies/weak_each_key/weak_each_key_spec.rb +0 -2
  195. data/spec/restserver.rb +55 -0
  196. metadata +136 -32
  197. data/lib/moneta/adapters/mongo/base.rb +0 -103
  198. data/lib/moneta/adapters/mongo/moped.rb +0 -164
  199. data/lib/moneta/adapters/mongo/official.rb +0 -157
  200. data/script/install-kyotocabinet +0 -17
  201. data/spec/moneta/adapters/mongo/adapter_mongo_moped_spec.rb +0 -25
  202. data/spec/moneta/adapters/mongo/adapter_mongo_moped_with_default_expires_spec.rb +0 -12
  203. data/spec/moneta/adapters/mongo/adapter_mongo_official_spec.rb +0 -25
  204. data/spec/moneta/adapters/mongo/adapter_mongo_official_with_default_expires_spec.rb +0 -12
  205. data/spec/moneta/adapters/mongo/standard_mongo_moped_spec.rb +0 -7
  206. data/spec/moneta/adapters/mongo/standard_mongo_official_spec.rb +0 -7
  207. data/spec/quality_spec.rb +0 -51
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 867a31ea01c90748ed86ae701f221d4a628b7c4932c8e0aa6c8b0f13f02a516b
4
- data.tar.gz: e3f89ab42ca23c9db8ddbcede6c6c447a8829ab78e01e1eb67edd1a6f2ac402e
3
+ metadata.gz: f7e5d10abbde662c609b4dad3e16871e4cb3c8571777dae41e07c9a9501d3afe
4
+ data.tar.gz: 6752b78a6a0aa701695d896e207250783d88a7835c5293f3e1a50e059b45259e
5
5
  SHA512:
6
- metadata.gz: 58e3592ad92768341454f0c7b637fc614f3cd3d820566840333b2c229601627ac10ae77509fec769acd9c71a08f602b2c7d059ee0e6c7e2042d814f91201acf2
7
- data.tar.gz: 8d9eeb664e800fd1ebff92dea3701fb01aa25a453647f2ba76d54b1a3602e6897899f8cedff823046096ee675f6089355912de240ae5c8e96ed606c41fa5573f
6
+ metadata.gz: 63e33a297973f0b5ee15b62d4322534d871e55ae97249865d7cce7103fee1e9cce398190ee102b72ce1179b6ac044587c544ba3c6d07a6ce0906012c717fe6fc
7
+ data.tar.gz: dd53487e54f56c8faccef18d122e1f28300fd89d5e436c338c5c6688454bf79a0025b1b05d3e3621260e0fbc134e65564239afcdc22ce487a88de61a732cedf0
data/.gitignore CHANGED
@@ -11,3 +11,5 @@ Gemfile.lock
11
11
  logs
12
12
  secure
13
13
  .bundle
14
+ .ruby-version
15
+ .byebug_history
@@ -0,0 +1,194 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.3.0
3
+ UseCache: true
4
+ Exclude:
5
+ - hbase/**/*
6
+ - script/**/*
7
+ - vendor/**/*
8
+
9
+ Layout/ArrayAlignment:
10
+ Exclude:
11
+ - lib/moneta/transformer/config.rb
12
+
13
+ Layout/DotPosition:
14
+ EnforcedStyle: leading
15
+
16
+ Layout/EmptyLineAfterGuardClause:
17
+ Enabled: false
18
+
19
+ Layout/ExtraSpacing:
20
+ Exclude:
21
+ - lib/moneta.rb
22
+ - lib/moneta/transformer/config.rb
23
+
24
+ Layout/HashAlignment:
25
+ Exclude:
26
+ - lib/moneta/transformer/config.rb
27
+
28
+ Layout/LineLength:
29
+ Max: 160
30
+
31
+ Layout/MultilineMethodCallIndentation:
32
+ EnforcedStyle: indented
33
+
34
+ Layout/MultilineOperationIndentation:
35
+ EnforcedStyle: indented
36
+
37
+ Layout/SpaceInsideArrayLiteralBrackets:
38
+ Exclude:
39
+ - lib/moneta/transformer/config.rb
40
+
41
+ Lint/AssignmentInCondition:
42
+ Enabled: false
43
+
44
+ Lint/RaiseException:
45
+ Enabled: true
46
+
47
+ Lint/ShadowedException:
48
+ Enabled: false
49
+
50
+ Lint/ShadowingOuterLocalVariable:
51
+ Enabled: false
52
+
53
+ Lint/StructNewOverride:
54
+ Enabled: true
55
+
56
+ Lint/UnusedMethodArgument:
57
+ Enabled: false
58
+
59
+ Lint/Void:
60
+ Exclude:
61
+ - spec/**/*
62
+
63
+ Metrics/AbcSize:
64
+ Enabled: false
65
+
66
+ Metrics/BlockNesting:
67
+ Enabled: false
68
+
69
+ Metrics/ClassLength:
70
+ Enabled: false
71
+
72
+ Metrics/CyclomaticComplexity:
73
+ Enabled: false
74
+
75
+ Metrics/BlockLength:
76
+ Exclude:
77
+ - spec/**/*
78
+
79
+ Metrics/MethodLength:
80
+ Enabled: false
81
+
82
+ Metrics/ModuleLength:
83
+ Enabled: false
84
+
85
+ Metrics/ParameterLists:
86
+ Enabled: false
87
+
88
+ Metrics/PerceivedComplexity:
89
+ Enabled: false
90
+
91
+ Naming/ConstantName:
92
+ Exclude:
93
+ - lib/rack/cache/moneta.rb
94
+
95
+ Naming/RescuedExceptionsVariableName:
96
+ Enabled: false
97
+
98
+ Naming/MemoizedInstanceVariableName:
99
+ Enabled: false
100
+
101
+ Security/MarshalLoad:
102
+ Enabled: false
103
+
104
+ Style/AndOr:
105
+ Enabled: false
106
+
107
+ Style/CaseEquality:
108
+ Enabled: false
109
+
110
+ Style/CharacterLiteral:
111
+ Enabled: false
112
+
113
+ Style/DoubleNegation:
114
+ Enabled: false
115
+
116
+ Style/GlobalVars:
117
+ Exclude:
118
+ - spec/moneta/adapters/cassandra/helper.rb
119
+
120
+ Style/FrozenStringLiteralComment:
121
+ Enabled: false
122
+
123
+ Style/FormatString:
124
+ Enabled: false
125
+
126
+ Style/GuardClause:
127
+ Enabled: false
128
+
129
+ Style/HashEachMethods:
130
+ Enabled: true
131
+
132
+ Style/HashTransformKeys:
133
+ Enabled: true
134
+
135
+ Style/HashTransformValues:
136
+ Enabled: true
137
+
138
+ Style/IfUnlessModifier:
139
+ Enabled: false
140
+
141
+ Style/Lambda:
142
+ EnforcedStyle: lambda
143
+
144
+ Style/ModuleFunction:
145
+ Enabled: false
146
+
147
+ Style/MultilineIfModifier:
148
+ Enabled: false
149
+
150
+ Style/MutableConstant:
151
+ Exclude:
152
+ - lib/rack/cache/moneta.rb
153
+
154
+ Style/NilComparison:
155
+ EnforcedStyle: comparison
156
+
157
+ Style/NumericLiterals:
158
+ Enabled: false
159
+
160
+ Style/NumericPredicate:
161
+ EnforcedStyle: comparison
162
+
163
+ Style/NonNilCheck:
164
+ Enabled: false
165
+
166
+ Style/ParallelAssignment:
167
+ Enabled: false
168
+
169
+ Style/PercentLiteralDelimiters:
170
+ Enabled: false
171
+
172
+ Style/PreferredHashMethods:
173
+ Enabled: false
174
+
175
+ Style/RescueStandardError:
176
+ EnforcedStyle: implicit
177
+
178
+ Style/RescueModifier:
179
+ Enabled: false
180
+
181
+ Style/SafeNavigation:
182
+ Enabled: false
183
+
184
+ Style/StringLiterals:
185
+ Enabled: false
186
+
187
+ Style/SymbolArray:
188
+ Enabled: false
189
+
190
+ Style/SymbolProc:
191
+ Enabled: false
192
+
193
+ Style/YodaCondition:
194
+ Enabled: false
@@ -1,24 +1,41 @@
1
+ dist: xenial
1
2
  language: ruby
2
3
  rvm:
4
+ - 2.7
3
5
  - 2.6
4
6
  - 2.5
5
7
  - 2.4
6
8
  - 2.3
7
- - 2.2
8
- - jruby-9.2
9
+ - jruby-9.2.9.0
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
+ - libkyotocabinet-dev
30
+ - libleveldb-dev
31
+ - liblzo2-dev
32
+ - libtdb-dev
33
+ - libtokyocabinet-dev
34
+ - tokyotyrant
35
+ - riak
19
36
  postgresql: '9.6'
20
37
  before_install:
21
- - sudo apt-get install -qq libtokyocabinet9 libtokyocabinet-dev libkyotocabinet16 libkyotocabinet-dev liblzo2-dev libtdb-dev libleveldb-dev tokyotyrant
38
+ - gem install bundler
22
39
  - script/start-services
23
40
  cache:
24
41
  bundler: true
@@ -30,11 +47,13 @@ before_script:
30
47
  - psql -c 'create database moneta1;' -U postgres
31
48
  - psql -c 'create extension hstore;' -U postgres moneta1
32
49
  - psql -c 'create database moneta2;' -U postgres
50
+ # FIXME: remove this once moneta no longer generates hundreds of warnings
51
+ # in Ruby 2.7
52
+ - if echo $RUBY_VERSION | grep -q 'ruby-2.7'; then export RUBYOPT='-W0'; fi
53
+ - export
33
54
  env:
34
- global:
35
- - secure: "dtM4n7FP8P0UI9Iq+nsvQ7/yfDqsxhfCO9i8zMxm/f9Kxj5Z/4C7jsXsLA+e\n/7FZ9+ld2QjPSPU0LUiDpj/z81bxyZHwqocQ7Nb0DVvO3JRHpr4/iBQQQHd3\n0jvou3mRbu5mBlUjf1/ALaZA+b+vcnsF9fd86UnkY+ChriylGnM="
36
55
  matrix:
37
- - SCRIPT='parallel-tests ~unstable --
56
+ - SCRIPT='script/parallel-tests ~unstable --
38
57
  test/action_dispatch/session_moneta_store_test.rb
39
58
  spec/moneta/adapters/activerecord
40
59
  spec/moneta/adapters/localmemcache
@@ -57,7 +76,7 @@ env:
57
76
  spec/moneta/adapters/lmdb
58
77
  spec/moneta/adapters/yaml
59
78
  '
60
- - SCRIPT='parallel-tests ~unstable --
79
+ - SCRIPT='script/parallel-tests ~unstable --
61
80
  spec/moneta/adapters/client
62
81
  spec/moneta/adapters/memory
63
82
  spec/moneta/adapters/cookie
@@ -65,41 +84,62 @@ env:
65
84
  spec/moneta/adapters/tdb
66
85
  spec/moneta/adapters/kyotocabinet
67
86
  '
68
- - SCRIPT='parallel-tests ~unstable --
69
- spec/moneta/adapters/couch
87
+ - SCRIPT='script/parallel-tests ~unstable --
88
+ spec/moneta/adapters/couch/standard_couch_spec.rb
70
89
  '
71
- - SCRIPT='parallel-tests ~unstable --
90
+ - SCRIPT='script/parallel-tests ~unstable --
91
+ spec/moneta/adapters/couch/standard_couch_with_expires_spec.rb
92
+ '
93
+ - SCRIPT='script/parallel-tests ~unstable --
72
94
  spec/moneta/adapters/memcached/dalli
73
95
  '
74
- - SCRIPT='parallel-tests ~unstable --
96
+ - SCRIPT='script/parallel-tests ~unstable --
75
97
  spec/moneta/adapters/memcached/native
98
+ spec/moneta/adapters/couch/adapter_couch_spec.rb
76
99
  '
77
- - SCRIPT='parallel-tests ~unstable --
100
+ - SCRIPT='script/parallel-tests ~unstable --
78
101
  spec/moneta/adapters/cassandra/adapter_cassandra_spec.rb
79
102
  spec/moneta/adapters/cassandra/standard_cassandra_spec.rb
80
103
  '
81
- - SCRIPT='parallel-tests ~unstable --
104
+ - SCRIPT='script/parallel-tests ~unstable --
82
105
  spec/moneta/adapters/cassandra/adapter_cassandra_with_default_expires_spec.rb
83
106
  spec/moneta/adapters/hashfile
84
107
  spec/moneta/adapters/sqlite
85
108
  spec/moneta/adapters/sequel
86
109
  '
87
- - SCRIPT='parallel-tests ~unstable --
110
+ - SCRIPT='script/parallel-tests ~unstable --
88
111
  spec/moneta/proxies
89
112
  '
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'
113
+ - SCRIPT='script/parallel-tests ~unstable --remainder'
114
+ - SCRIPT='script/parallel-tests unstable'
115
+ - SCRIPT='script/benchmarks uniform_small'
116
+ - SCRIPT='script/benchmarks uniform_medium'
117
+ - SCRIPT='script/benchmarks uniform_large'
118
+ - SCRIPT='script/benchmarks normal_small'
119
+ - SCRIPT='script/benchmarks normal_medium'
120
+ - SCRIPT='script/benchmarks normal_large'
121
+ - SCRIPT='rubocop lib'
98
122
  matrix:
99
123
  allow_failures:
100
124
  - rvm: rbx-3
101
- - env: SCRIPT='parallel-tests unstable'
102
- script: "bundle exec script/$SCRIPT"
125
+ - env: SCRIPT='script/parallel-tests unstable'
126
+ exclude:
127
+ - rvm: 2.6
128
+ env: SCRIPT='rubocop lib'
129
+ - rvm: 2.5
130
+ env: SCRIPT='rubocop lib'
131
+ - rvm: 2.4
132
+ env: SCRIPT='rubocop lib'
133
+ - rvm: 2.3
134
+ env: SCRIPT='rubocop lib'
135
+ - rvm: 2.2
136
+ env: SCRIPT='rubocop lib'
137
+ - rvm: jruby-9.2.9.0
138
+ env: SCRIPT='rubocop lib'
139
+ - rvm: rbx-3
140
+ env: SCRIPT='rubocop lib'
141
+
142
+ script: "bundle exec $SCRIPT"
103
143
  branches:
104
144
  only:
105
145
  - master
data/CHANGES CHANGED
@@ -1,3 +1,39 @@
1
+ 1.4.1
2
+
3
+ * Adapters::Mongo - deprecate :db option, document :database option (#194)
4
+ * Adapters::Mongo - add retries to increment operation
5
+
6
+ 1.4.0
7
+
8
+ * Adapters::Mongo - drop support for moped gem (#182)
9
+ * Adapters::Redis - use #exists? where available (#189)
10
+ * Some reorganisation of code into more separate files (#177)
11
+
12
+ 1.3.0
13
+
14
+ * Transformer - add :each_key support (#170)
15
+ * Server - add :each_key support, use non-blocking IO (#165)
16
+ * Builder - dup options before passing to adapter/proxy (#174)
17
+ * Adapter::Couch - add HTTP basic auth support
18
+ * Support MRI 2.7.0 (#172)
19
+ * Minimum required MRI version is now 2.3.0 (#172)
20
+
21
+ 1.2.1
22
+
23
+ * Transformer - fix :escape transformer deserialize implementation (#168)
24
+
25
+ 1.2.0
26
+
27
+ * Adapters::Sequel - fix for compatibility with new version of JDBC SQLite
28
+ * Adapters::Couch - refactor of error handling, #clear, #merge!, #slice, rev caching
29
+ * Fallback - add fallback proxy (#162)
30
+ * Pool - rewrite to enable limiting of size, gradual shrinking
31
+ * Enumerable - add proxy providing Enumerable API (using #each_key)
32
+ * Adapters::Couch, Adapters::RestClient - add Faraday :adapter option
33
+ * Adapters::Couch - add :full_commit and :batch options to some operations
34
+ * Adapters::LRUHash - rewrite to take advantage of ordered hashes
35
+ * Adapters::ActiveRecord - recover from deadlock during increment
36
+
1
37
  1.1.1
2
38
 
3
39
  * Adapters::Sequel - use prepared statements
@@ -1,12 +1,12 @@
1
1
  Adrian Madrid <aemadrid@gmail.com>
2
- Alastair Pharo <asppsa@gmail.com>
2
+ 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
6
  Atoxhybrid <atoxhybrid@gmail.com>
7
7
  AtoxIO <atoxhybrid@gmail.com>
8
- Benjamin Yu <benjaminlyu@gmail.com>
9
8
  Ben Schwarz <ben.schwarz@gmail.com>
9
+ Benjamin Yu <benjaminlyu@gmail.com>
10
10
  Daniel Mendler <mail@daniel-mendler.de>
11
11
  Denis Defreyne <denis.defreyne@stoneship.org>
12
12
  Derek Kastner <dkastner@gmail.com>
@@ -18,12 +18,14 @@ Jari Bakken <jari.bakken@gmail.com>
18
18
  Jay Mitchell <jaybmitchell@gmail.com>
19
19
  Jeremy Voorhis <jvoorhis@gmail.com>
20
20
  Jon Crosby <jon@joncrosby.me>
21
+ Jonathan Gnagy <jonathan.l.gnagy@sherwin.com>
21
22
  lakshan <lakshan@web2media.net>
22
23
  Mal McKay <mal.mckay@gmail.com>
23
24
  Marek Skrobacki <skrobul@skrobul.com>
24
25
  Mauro Asprea <mauroasprea@gmail.com>
25
26
  Nathaniel Bibler <git@nathanielbibler.com>
26
27
  Olle Jonsson <olle.jonsson@gmail.com>
28
+ Orien Madgwick <_@orien.io>
27
29
  Patrik Rak <patrik@raxoft.cz>
28
30
  Piotr Murach <pmurach@gmail.com>
29
31
  Potapov Sergey <blake131313@gmail.com>
data/Gemfile CHANGED
@@ -1,80 +1,109 @@
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'
10
-
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'
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
8
+
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', '>= 4.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', 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
63
+ gem 'dm-core'
64
+ gem 'dm-migrations'
65
+ gem 'dm-mysql-adapter'
66
+ end
67
+
68
+ group :fog do
69
+ gem 'fog-aws', '>= 1.11.1'
70
+ gem 'mime-types'
71
+ end
72
+
73
+ group :mysql do
74
+ gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
75
+ gem 'mysql2', platforms: :ruby
76
+ end
77
+
78
+ group :sqlite do
79
+ gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
80
+ gem 'sqlite3', '~> 1.3.6', platforms: :ruby
81
+ end
82
+
83
+ group :postgresql do
84
+ gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
85
+ gem 'pg', platforms: :ruby
86
+ end
70
87
 
71
88
  # Rack integration testing
72
- gem 'rack'
73
- gem 'rack-cache'
89
+ group :rack do
90
+ gem 'rack'
91
+ gem 'rack-cache'
92
+ end
74
93
 
75
94
  # Rails integration testing
76
- gem 'actionpack', '~> 5.0'
77
- gem 'minitest', '~> 5.0'
95
+ group :rails do
96
+ gem 'actionpack', '~> 5.2.0'
97
+ gem 'minitest', '~> 5.0'
98
+ end
78
99
 
79
100
  # Used for generating the feature matrix
80
- gem 'kramdown', '~> 1.17.0', group: :doc
101
+ group :doc, optional: true do
102
+ gem 'kramdown', '~> 2.3.0'
103
+ gem 'yard', '~> 0.9.20'
104
+ end
105
+
106
+ # Used for running a dev console
107
+ group :console, optional: true do
108
+ gem 'irb'
109
+ end