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