All Versions
26
Latest Version
Avg Release Cycle
62 days
Latest Release
3393 days ago
Changelog History
Page 2
Changelog History
Page 2
-
v0.7.0 Changes
June 21, 2013- โ Add
Perpetuity::RailsModel
, an ActiveModel-compliant mixin - ๐ Check Rails app directory for mappers dynamically if the mapper registry is missing a particular model class
- โ Add
-
v0.6.2 Changes
- ๐ Make sure
Retrieval#first
limits the query to a single item - โ Add
Mapper#sample
/Retrieval#sample
- โ Add
Retrieval#drop
to allow skipping a specific number of objects
- ๐ Make sure
-
v0.6.1 Changes
- ๐ Fix reference equality bug
-
v0.6.0 Changes
- ๐ Stop extending persisted/retrieved objects with
Perpetuity::PersistedObject
. Extending these objects invalidates method caches inside the VM, which degrades performance. - 0๏ธโฃ Cache all objects returned from
Mapper#find(id)
by default into the mapper object. This can be bypassed withMapper#find(id, false)
- Do not store uninitialized attributes with the MongoDB serializer. This shrinks the size of documents when possible.
- ๐ Stop extending persisted/retrieved objects with
-
v0.5.0 Changes
- ๐ Allow querying based on referenced class/id or embedded-object data
- โ Remove duplicate references when loading associations on referenced objects
- โก๏ธ Optimize loading associations with zero/one/many objects. It is similar to
Array#detect
vsArray#select
.detect
is faster if you only need one. - ๐ Fixed a bug in defining methods on generated mapper classes which would mistakenly define them on the class instead of the mapper objects
- โ Add
none?
/one?
/all?
/any?
methods to mappers. - โ Add block functionality to
Mapper#count
, similar toEnumerable#count
- Alias
Mapper#find_all
toMapper#select
- Alias
Mapper#detect
toMapper#find
- โ Add
Mapper#reject
method to negate queries - ๐ Allow
Mapper#find
to take a block likeMapper#select
- โ Add atomic incrementation
-
v0.4.8 Changes
- ๐ง Provide configuration one-liner ability for simple configs
- ๐ Memoize results for Retrieval objects
Retrieval#count
sends a count query rather than retrieving the result set and returning the count of the array- ๐ Allow updating of objects that contain
Perpetuity::Reference
s to other persisted objects without first loading the association - ๐ Fix bug preventing objects with an array of referenced objects from being updated
- ๐ Move serialization into the MongoDB adapter, allowing future adapters to implement their own serializations
-
v0.4.7 Changes
- Use instance variables rather than attr_readers in IdentityMap (avoids calling methods during
load_association!
). - ๐ Fixed a bug with MongoDB authentication.
- ๐ Use attribute names rather than a stringified attribute for MongoDB indexes.
- ๐ Fixed a bug with deserializing attributes of namespaced classes. โ Jaap Groeneveld
- ๐ Fixed serialization of
Perpetuity::Reference
attributes caused by resaving an object that did not have all of its referenced associations loaded.
- Use instance variables rather than attr_readers in IdentityMap (avoids calling methods during
-
v0.4.6 Changes
- ๐ Fix an inconsistency between
mongo
andmoped
gems. Previously, the MongoDB adapter relied on the fail-fast behavior of themongo
gem so we had no need to check for errors. Moped does not do that by default, which resulted in incorrect behavior of the gem when an object was not persisted. - ๐ The
Mapper#select
DSL now allows the use of!=
as criteria. Not all supported Ruby implementations allowed that operator to be overridden when the DSL was created, but they do now.
- ๐ Fix an inconsistency between
-
v0.4.5 Changes
- ๐ Move from the
mongo
gem from 10gen to themoped
gem for talking to MongoDB. This resulted in performance gains of 30-80%, depending on query size. - ๐ Make persisted objects marshalable.
- Previously, the
id
method was defined on individual objects that were either persisted to or retrieved from the DB. This made them unable to be marshaled withMarshal.dump
. - Now we extend the objects with
Perpetuity::PersistedObject
to keep them marshalable while still providingid
. This keeps them marshalable (unmarshalled objects will still be extended withPerpetuity::PersistedObject
).
- Previously, the
- ๐ Provided a partial fix for a bug that kept us from being able to persist hash attributes properly. See the first comments in the linked GitHub issue for an explanation of why it is only a partial fix.
- โ Stopped testing on MRI 1.9.2 with Travis CI. Moped requires 1.9.3 or higher.
- ๐ Move from the
-
v0.4.4 Changes
- Automatically persist all referenced objects if they are not already persisted. Previously, referenced objects were required to be persisted before persisting the referencing object.