0.25 2009-06-21
- Changes to work with the latest Moose (0.82).
0.24 2009-04-20
- Shut up a warning from the latest Moose that it will not inline a
constructor for Fey::Object::Table.
0.23 2009-04-07
- Changes to work with the latest Moose (0.73_01+).
0.22 2009-03-23
- If a table consisted of _just_ its key, then trying to call new()
for the associated class blew up, but they could be created via an
iterator. Test case provided by Andrew Baumhauer.
0.21 2009-02-25
* This release contains several backwards incompatible changes.
* Fey::Object::Iterator has been renamed to
Fey::Object::Iterator::FromSelect. Fey::Object::Iterator::Caching is
now has Fey::Object::Iterator::FromSelect::Caching. This was done to
allow for a new class, Fey::Object::Iterator::FromArray. There is
now a Fey::ORM::Role::Iterator role which all of these classes
do. Based on a patch from Bryan Deeney and Will Weaver.
* The iterator methods all and all_as_hashes now really return _all_
of the data, which means they will reset the iterator if needed.
- Added remaining and remaining_as_hashes methods to iterators. These
do what all and all_as_hashes did previously. Thanks
- The transform feature now supports passing delegation for the
inflated object. See Fey::ORM::Table for details.
0.20 2009-02-06
- Use MooseX::Params::Validate instead of the no-longer-in-Fey
Fey::Validate.
0.19 2009-01-18
- Added attribute metaclasses for attributes created based on columns
(Fey::Meta::Attribute::FromColumn), and attributes based on an
inflated column value (Fey::Meta::Attribute::FromInflator).
- When a column attribute with an inflator was written, the inflated
value would stay the same, rather than reflecting the new raw value.
- Added Fey::ORM::Policy, which lets you set policies for column
transforms and foreign key method naming.
0.18 2008-12-24
- The handling of caching iterators in 0.17 was still broken. It
attempted to share the cached results between multiple objects as an
optimization, but that ended up causing some very weird bugs. For
now, we have a less efficient but correct version.
0.17 2008-12-24
- In previous release, a has_many method returned the same iterator
each time it was called, which could cause confusing bugs. Now each
call returns a new iterator. However, if the has_many relationship
is cached, the new iterator will share a cache with any previously
made iterator, preventing unnecessary trips to the DBMS.
0.16 2008-12-23
- A caching object iterator could cause an exception if you tried to
call ->next() or ->all() on it after exhausting the underlying
statement handle. This only happens with some drivers (DBD::Pg is
one, DBD::SQLite is not). Reported by Edward Long.
0.15 2008-12-22
- There was a serious bug in 0.14 where all objects of a class shared
the same iterator object for a given has_many relationship. Reported
by Edward Long.
0.14 2008-12-15
- The Fey::Meta::Attribute::FromSelect class now stores the select and
bind_params parameters it receives, for more introspectability.
- There are new metaclasses for introspection of has-one and has-many
relationships. See Fey::Meta::HasOne and Fey::Meta::HasMany for
details, as well as Fey::Meta::Class::Table.
0.13 2008-12-08
- Updated to work with Moose 0.63.
0.12 2008-11-07
* WARNING: This release contains a few backwards
incompatibilities. See below for details.
* Removed Fey::Object::Table->_pk_vals().
- Added Fey::Object::Table->pk_values_hash() and ->pk_values_list().
* The parameters for constructing a Fey::Object::Iterator object have
been changed quite a bit. This fixes a problem where an iterator
could be iterating over a set of results that contained a column
which matched an attribute in two different classes, but was only
valid for one classes.
For example, if you had a Contact.note and ContactHistory.note
columns and your iterator was returning objects for both tables,
then _one_ of the note columns would get passed to the constructor
for _both_ tables.
With the changes, Fey::Object::Iterator figures out which item in
the returned row belongs to which class positionally, so if two
columns have the same name, they are passed to the correct classes.
You can also provide explicit mappings from an item in the result
rows to a class's attribute, which is handy if you want to map the
results of an arbitrary query to a set of classes. See the
Fey::Object::Iterator docs for more details.
- Fey::Object::Table->insert_many() Would modify the hash references
it received when a table had auto-incremented columns.
0.11 2008-09-20
- Fixes to work with Moose 0.58.
0.10 2008-09-07
- Moose 0.57 broke Fey::ORM somehow. Fixed for Moose 0.57.
0.09 2008-09-01
- Changes to work with the latest Moose and Fey.
0.08 2008-06-27
- Changes to the immutable bits to work with the latest Moose (0.51).
0.07 2008-06-22
- Cached has_one and has_many attributes now have a private clearer.
- Various internals changes so that the meta classes now have more
attributes, rather than creating lots of class attributes in the
classes which use Fey::ORM::{Table,Schema}.
- Added Fey::Meta::Attribute::FromSelect. This allows you to easily
define an attribute's default based on a SELECT query.
0.06 2008-05-25
- Factored part of Fey::ORM::Table->_get_column_values into a separate
method, _set_column_values_from_hashref, since this piece is
something that subclasses may want to reuse.
- Added a horrible hack to make Postgres BYTEA columns work. Needs
some serious refactoring. This may well disappear in a future
version.
- Fixed to work with the most recent versions of Moose, which are now
prereqs.
0.05 2008-04-18
- Fey::Object::Table called a method on Fey::Meta::Class::Table
without loading it, which could cause problems in some cases.
- Moved exceptions to Fey::ORM::Exceptions so you can use them in your
classes, notably the NoSuchRow exception.
- Made Fey::Object::Table and Fey::Object::Schema extend
MooseX::Object::StrictConstructor rather than Moose::Object.
0.04 2008-03-06
- Add a private writers for accessors created via has_one() and
has_many() - this still needs docs.
- Make sure that the schema class's RunInTransaction() method returns
values of the sub it runs, respecting the caller's context.
- has_one() can now accept a "handles" parameter which work just as
it does for any Moose attribute.
- has_one() also accepts a new "undef" parameter to allow you to
explicitly say that the attribute can have an undef as its value.
0.03 2008-02-24
- Fix tests so that they skip without blowing up when DBD::SQLite is
not installed.
- Fey::Object::Table would always issue a SELECT immediately after an
INSERT. Now this will be delayed until it is needed. In some cases
it will never be needed.
0.02 2008-02-21
- Renamed Fey::Object to Fey::Object::Table and added Fey::Object::Schema.
- Also created a Fey::Object::Schema->RunInTransaction()
- Fey::Object::Schema lets you control caching for all table classes
in a schema at once.
- Added support for arbitrary select statements being used with
has_one() and has_many(). See Fey::ORM::Manual::Intro for some
examples.
- Fixed various bits of code to work properly when multiple schema
classes exist.
0.01 2008-02-09
- First version, released on an unsuspecting world.