moneta 1.1.0 → 1.4.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 (208) 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 +20 -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 +256 -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 +137 -328
  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 +25 -11
  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 +145 -46
  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 +23 -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 +18 -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 +31 -79
  151. data/spec/moneta/adapters/sequel/helper.rb +75 -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. data/spec/support/mongo_helper.rb +12 -0
  197. metadata +140 -32
  198. data/lib/moneta/adapters/mongo/base.rb +0 -103
  199. data/lib/moneta/adapters/mongo/moped.rb +0 -164
  200. data/lib/moneta/adapters/mongo/official.rb +0 -157
  201. data/script/install-kyotocabinet +0 -17
  202. data/spec/moneta/adapters/mongo/adapter_mongo_moped_spec.rb +0 -25
  203. data/spec/moneta/adapters/mongo/adapter_mongo_moped_with_default_expires_spec.rb +0 -12
  204. data/spec/moneta/adapters/mongo/adapter_mongo_official_spec.rb +0 -25
  205. data/spec/moneta/adapters/mongo/adapter_mongo_official_with_default_expires_spec.rb +0 -12
  206. data/spec/moneta/adapters/mongo/standard_mongo_moped_spec.rb +0 -7
  207. data/spec/moneta/adapters/mongo/standard_mongo_official_spec.rb +0 -7
  208. data/spec/quality_spec.rb +0 -51
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 238904687ead475c2961fdd367d90c57fd54598e9a802d81df557058fe71019a
4
- data.tar.gz: 422fc9af8f65e1fe01cf9cde5fa69d5e4c57a9e3121b92b8796fd81f5f8290b7
3
+ metadata.gz: 667e187cf3e0d0ce7e721e07036f70e0b65f1b52818fc09eb87311872896ce95
4
+ data.tar.gz: 7e9063dfa4ea6f1bfbe4bee54821c75e9a82d0f54f3f820c6e396fafeeba006a
5
5
  SHA512:
6
- metadata.gz: fc36f41ff84caa03b78c7ecd6c2dd69db87f27c96204c8a25429314b860838d79c4aa3087ce71b6074777448a26c9d21ba3bdfa8d747e9a9d841228ecd3231ed
7
- data.tar.gz: b1adfbeb3abcfe01867356752a968ded5e188652d55c6bbdc7ef5dca53eb906ff2ff0b82fc32b80a66a8caec75ab38c7dd4968639e600666f4194e239ce547f3
6
+ metadata.gz: 5e2d3880c0d3fed1ee66cb57f5ebba13a83dd7e4447ec1e99e601a85ff9bc454cf7bf4e9d62c8672324faddf9f396e4488c08400a08e1c1dd0181056655142b5
7
+ data.tar.gz: 4be30ddd9249b7222c2354984815efde88ca3c8cfe65db26c13df1585bd80425cc8f55f68b869d07016183be29b4ae8495a3408fe3b67e0f27d21ef2f6de6a83
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.0
2
+
3
+ * Adapters::Mongo - drop support for moped gem (#182)
4
+ * Adapters::Redis - use #exists? where available (#189)
5
+ * Some reorganisation of code into more separate files (#177)
6
+
7
+ 1.3.0
8
+
9
+ * Transformer - add :each_key support (#170)
10
+ * Server - add :each_key support, use non-blocking IO (#165)
11
+ * Builder - dup options before passing to adapter/proxy (#174)
12
+ * Adapter::Couch - add HTTP basic auth support
13
+ * Support MRI 2.7.0 (#172)
14
+ * Minimum required MRI version is now 2.3.0 (#172)
15
+
16
+ 1.2.1
17
+
18
+ * Transformer - fix :escape transformer deserialize implementation (#168)
19
+
20
+ 1.2.0
21
+
22
+ * Adapters::Sequel - fix for compatibility with new version of JDBC SQLite
23
+ * Adapters::Couch - refactor of error handling, #clear, #merge!, #slice, rev caching
24
+ * Fallback - add fallback proxy (#162)
25
+ * Pool - rewrite to enable limiting of size, gradual shrinking
26
+ * Enumerable - add proxy providing Enumerable API (using #each_key)
27
+ * Adapters::Couch, Adapters::RestClient - add Faraday :adapter option
28
+ * Adapters::Couch - add :full_commit and :batch options to some operations
29
+ * Adapters::LRUHash - rewrite to take advantage of ordered hashes
30
+ * Adapters::ActiveRecord - recover from deadlock during increment
31
+
32
+ 1.1.1
33
+
34
+ * Adapters::Sequel - use prepared statements
35
+ * Adapters::Sqlite - use upsert for increment where supported
36
+
1
37
  1.1.0
2
38
 
3
39
  * Adapters::ActiveRecord - rewrite to use Arel directly; support for Rails 5
@@ -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', '~> 1.17.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