1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282
|
1.6.0
* Adapters - Support for Rails 6.1 and above (Adapters::ActiveRecord,
Adapters::ActiveSupportCache, ActiveSupportCache::MonetaStore)
* Adapters::YAML - add `theadsafe` option
* Adapters::Sequel - fix deadlock issue with #increment on MySQL in newer
Sequel versions (#244)
* Adapters::Sequel - fix issue with Postgres HStore on newer Postgres (#243)
* Adapters - fixed an issue many adapters had where #merge! errored if passed
an empty hash (#246)
* Support changes - Drop support for 2.3 and 2.4, add support for 3.x
1.5.2
* Proxy - handle returning config when the adapter does not use config
* Avoid calling `supports?(:expires)` when expiry isn't needed
* Adapters::Mongo - fix `merge!` behaviour when no values are inserted
1.5.1
* Adapters::File - fix an implicit hash issue in Ruby 3 (#222)
1.5.0
* Adapters - internally, most (all?) adapters now inherit from a base Adapter class
* Adapters - adapter configuration is now accessed via a `config` method on
each adapter - see the code for examples. This shouldn't affect
users unless they were directly modifying adapters' attributes.
* Redis - fix deprecation warnings for Redis 4.6+ multi/pipelined handling (#215)
* Mongo - slight improvement to error handling
1.4.2
* Pool - fix busy-loop issue (#197)
1.4.1
* Adapters::Mongo - deprecate :db option, document :database option (#194)
* Adapters::Mongo - add retries to increment operation
1.4.0
* Adapters::Mongo - drop support for moped gem (#182)
* Adapters::Redis - use #exists? where available (#189)
* Some reorganisation of code into more separate files (#177)
1.3.0
* Transformer - add :each_key support (#170)
* Server - add :each_key support, use non-blocking IO (#165)
* Builder - dup options before passing to adapter/proxy (#174)
* Adapter::Couch - add HTTP basic auth support
* Support MRI 2.7.0 (#172)
* Minimum required MRI version is now 2.3.0 (#172)
1.2.1
* Transformer - fix :escape transformer deserialize implementation (#168)
1.2.0
* Adapters::Sequel - fix for compatibility with new version of JDBC SQLite
* Adapters::Couch - refactor of error handling, #clear, #merge!, #slice, rev caching
* Fallback - add fallback proxy (#162)
* Pool - rewrite to enable limiting of size, gradual shrinking
* Enumerable - add proxy providing Enumerable API (using #each_key)
* Adapters::Couch, Adapters::RestClient - add Faraday :adapter option
* Adapters::Couch - add :full_commit and :batch options to some operations
* Adapters::LRUHash - rewrite to take advantage of ordered hashes
* Adapters::ActiveRecord - recover from deadlock during increment
1.1.1
* Adapters::Sequel - use prepared statements
* Adapters::Sqlite - use upsert for increment where supported
1.1.0
* Adapters::ActiveRecord - rewrite to use Arel directly; support for Rails 5
* Moneta::Server - close all connections when stopping
* Moneta::Shared - recover from socket errors
* Transformer - add :urlsafe_base64; use this by default for keys with Couch
adapter
* Adapters::MongoMoped - recover from failed increment
* Moneta::Pool - fix race condition in #pop (#144)
* Moneta::Client - raise EOFError if a read fails
* Moneta::Expires - use Rational objects to get much more accurate time
resolution
* Moneta::Lock/Moneta::Pool - allow wrapped methods to call other wrapped
methods
* Adapters::Sequel - add optimisations for MySQL, PostgreSQL and SQLite
* Adapters::Sequel - add Postgres+HStore backend
* Add Adapters::ActiveSupportCache
* Adapters::Sqlite - add :journal_mode option
* Add table creation options to Sequel and ActiveRecord adapters
* Adapters::ActiveRecord - support for forking (#159)
* Adapters::Cassandra - rewrite to use cassandra-driver gem (#81)
* Adapters::Couch - add a LRUHash to cache document revs
* Adapters::KyotoCabinet - implement atomic increment
* Add :each_key feature and implemented on many adapters; add
Moneta::WeakEachKey (#143; see feature matrix)
* Add bulk read/write methods to the spec; added default implementation to
Defaults and fast versions in many adapters (#116; see feature matrix)
* First class support for latest JRuby (#160)
* Minimum required MRI version is now 2.2.2 (#135)
1.0.0
* Adapters::Sequel - allow usage of Sequel extensions and connection validation
* ActiveSupport::Cache::MonetaStore - dup options before mutating them
* ActiveSupport::Cache::MonetaStore - allow writing raw values
0.8.1
* Adapters::TokyoTyrant - more consistent error handling
* Adapters::MongoMoped - support for moped gem v2.0
* Adapters::MongoOfficial - support for mongo gem versions 2-4
* Adapters::File - fix a bug in #load (#74)
* Adapters::LRUHash - allow to disable the limits by passing nil for max_size, max_count
* Transformer - don't use OpenSSL::Digest::Digest namespace
* Adapters::Sequel - fix issue with unknown "blob" type
* Rack::Cache - fix deprecated require paths
* Adapters::MemcachedNative - properly close connections
* Transformer - support bson gem versions 2-4
* Transformer - switch to rbzip2 gem for bzip2 support
* Adapters::MemcachedDalli - #create returns a boolean
0.8.0
* Rename Moneta::Adapters::Mongo to Moneta::Adapters::MongoOfficial
* Add Moneta::Adapters::MongoMoped
* Drop Ruby 1.8 support
0.7.20
* Adapters::LRUHash: add option :max_value
* Moneta.new(:Couch, :Riak, :RestClient): use urlencode instead of base64 for key encoding)
* Transformer: Add :hex encoder
* Transformer: Don't wrap object in array for JSON serialization
* Transformer: Add :php serializer
* Moneta.new(:Sequel) - Don't encode blob data using base64
* Moneta::Adapters::LMDB added (Symas Lightning Memory-Mapped Database)
* Moneta::Adapters::Sequel - Fix for https://github.com/jeremyevans/sequel/issues/715
0.7.19
* ActionDispatch::Session::MonetaStore fixed for Rails 4
* Moneta::Server: Tries now to remove stale unix socket
* Moneta::Server: More robust and better performance
0.7.18
* Adapters::File#increment and #create fixed on JRuby
* Adapters::Couch and Adapters::Mongo can store hashes directly as documents.
It is not necessary to serialize values as strings anymore.
* Adapters::Couch#create added
* Pool thread safety improved
* Transformer: Add CityHash
0.7.17
* Transformer: LZ4 compression added
0.7.16
* Better builder validation
* Adapters::Sequel: check for correct exceptions
0.7.15
* CONTRIBUTORS file added
* Adapters::File#increment fixed
0.7.14
* Adapters::ActiveRecord, Adapters::Sequel: store values as blobs
* Adapters::ActiveRecord fixed and improved
0.7.13
* Adapters::ActiveRecord: Use connection_pool
* Adapters::File: Race condition in #increment fixed
0.7.12
* Concurrency tests added
* Bugfixes for File, Sqlite, Sequel and Datamapper, ActiveRecord
0.7.11
* Logger: Add option :file
* Adapters::TokyoTyrant supports both native (ruby-tokyotyrant) and pure-ruby tokyotyrant gems
* Adapters::Couch use Faraday directly instead of buggy CouchRest
* Adapters::RestClient use Faraday
* Transformer: add quoted printable encoding (:qp)
0.7.10
* Adapters::TokyoTyrant added
* Add attr_reader :backend and option :backend to some adapters
* Cache rename #backend to #adapter
0.7.9
* Adapters::KyotoCabinet added
* Feature detection methods #features and #supports? added
* Validity checks added which check features
0.7.8
* Adapters::Memcached: switched to Dalli by default
* Adapters::Daybreak: add option :sync to load and store
* Adapters::LRUHash: add option :max_count
* Adapters::Mongo: add options :user and :password
* Adapters::Mongo: Correctly close connection
* Adapters::Redis: Correctly close connection
* Transformer: add inspect key transformer
* Added #create method to atomically create entries
* Added WeakCreate and WeakIncrement proxies
* Added Mutex and Semaphore synchronization primitives for
shared/distributed database locks
* Rename unix socket options from :file to :socket
0.7.6
* Adapters::Daybreak: api changed
* Adapters::File: flock fix for jruby
* Transformer: add to_s key transformer
0.7.5
* OptionsSupport#with: Add support to insert additional proxies
* Builder#adapter: Accepts Moneta store instance now
0.7.4
* Transformer: fix truncate
* Adapters::RestClient: raise error if store fails
* Adapters::TDB added
* Adapters::Daybreak added
* Adapters::Mongo - Expiration and increment support added
* Pool proxy added
* Mixin ExpiresSupport added
* Expiration value handling unified
* 0 and false are interpreted as persist value
* Adapters::RestClient uses net/http now
0.7.3
* Added Adapters::RestClient
* Added Rack::MonetaRest
* Added Rack::MonetaStore
0.7.2
* Renamed WithOptions to OptionSupport
* Refactored Base in Defaults mixin
* Removed Transformer option :quiet
* Transformer might raise an exception if an invalid value is transformed
* Expires middleware only wraps Arrays and nils in an Array if
no expiration time is given (backward compatible change)
* Moneta middlewares are not allowed to modify option hash given to functions
like #load and #store
0.7.1
* Memcached: Use binary protocol and no base64 encoding of the keys
* Transformer: Remove newlines from base64 encodes values
* Server: Add method #run which will block and #running? to allow forking
* SDBM: #store might raise errors (Don't use SDBM, it is unstable!)
* Add #decrement method
* Fix #fetch to handle false correctly
* Fix Expires middleware to handle boolean and nil values correctly
* Base64 encode Riak keys since Riak needs valid UTF-8 for the REST interface
0.7.0
* Major rewrite by Daniel Mendler
0.6.0
* First public release by Yehuda Katz
|