(unreleased) - Fetching a batch of objects is now done in batches of 1000 objects at a time. If you are iterating over large collections, this change should provide a significant performance boost both in used memory and total execution time. - MutableSet#<< is now an alias for #add. 1.3.1 - Improve memory consumption when indexing persisted attributes. No migration is needed and old indices will be cleaned up as you save instances. 1.3.0 - Add Model.attributes. 1.2.0 - Enumerable fix. - Merge Ohm::PipelinedFetch into Ohm::Collection. - Fix Set, MultiSet, and List enumerable behavior. - Change dependencies to use latest cutest. 1.1.0 - Compatible with redis-rb 3. 1.0.0 - Fetching a batch of objects is now done through one pipeline, effectively reducing the IO to just 2 operations (one for SMEMBERS / LRANGE, one for the actual HGET of all the individual HASHes.) - write_remote / read_remote have been replaced with set / get respectively. - Ohm::Model.unique has been added. - Ohm::Model::Set has been renamed to Ohm::Set - Ohm::Model::List has been renamed to Ohm::List - Ohm::Model::Collection is gone. - Ohm::Validations is gone. Ohm now uses Scrivener::Validations. - Ohm::Key is gone. Ohm now uses Nest directly. - No more concept of volatile keys. - Ohm::Model::Wrapper is gone. - Use Symbols for constants instead of relying on Ohm::Model.const_missing. - #sort / #sort_by now uses `limit` as it's used in redis-rb, e.g. you have to pass in an array like so: sort(limit: [0, 1]). - Set / List have been trimmed to contain only the minimum number of necessary methods. - You can no longer mutate a collection / set as before, e.g. doing User.find(...).add(User[1]) will throw an error. - The #union operation has been added. You can now chain it with your filters. - Temporary keys when doing finds are now automatically cleaned up. - Counters are now stored in their own key instead, i.e. in User::counters. - JSON support has to be explicitly required by doing `require "ohm/json"`. - All save / delete / update operations are now done using transactions (see http://redis.io/topics/transactions). - All indices are now stored without converting the values to base64.