[Changes for 0.22 - 2007-02-09]
* Allow declarations in copula callbacks as return value:
copula => foo => sub { bar is 1, baz is 2 }
* No longer raise bogus "overload method not found" errors
when paritally-formed declarations objects is e.g. printed
out for debugging purposes.
[Changes for 0.21 - 2007-01-26]
* Helper functions for mapping keys are no longer present within
dynamic scope of mapping construction callbacks; this allows you
to have call a method that has the same name as a mapping key
during ->new() and other callbacks.
* Support for fully qualified fields: "Very::Happy is 42" and
"is Very::Happy" are valid even when Very::Happy is not yet loaded.
* Support for associating coderefs with copula for even more
flexible rewriting of arguments:
copula => { # list of words, or a map
is => '', # from copula to label prefixes,
are => '', # or to callback that e.g. turns
has => sub { has => @_ }, # "has X" to "has is X" and
# "X has 1" to "has is [X => 1]"
},
[Changes for 0.20 - 2007-01-16]
* Sub::Override is no longer a dependency for this module.
* Values in declarations can now contain nested sub-objects by
calling the declarators again:
column foo => field is column( field is 'foo' );
Contributed by: Jason Adams
[Changes for 0.13 - 2006-07-21]
* Introduce the "synonyms" interface, a mapping for alternate
spelling for field names.
[Changes for 0.12 - 2006-07-20]
* The "isn't" keyword in 0.11 broke Test::More, and I can't find a
way to reconcile them, so it's now sadly retracted.
[Changes for 0.11 - 2006-07-20]
* Support the prefix ! operator on declarations, so negated ones
such as "!is global" or "!global is $x" now work.
Requested by: Jesse Vincent
* Also introduce the "isn't" negated copula.
Requested by: Jesse Vincent
[Changes for 0.10 - 2006-07-20]
* The "copula" interface now accepts an arbitrary prefix for each
copula (defaults to ''), which can be used to distinguish labels
built by different copular words.
[Changes for 0.09 - 2006-07-18]
* The "mapping" interface now accepts arbitrary code reference as the
builder function, in addition to class names to call ->new to.
[Changes for 0.08 - 2006-07-18]
* Added lots of documentation and comments.
* Now works correctly even if at runtime the symbol table entries
created at compile-time get deleted.
[Changes for 0.07 - 2006-07-18]
* Chained "is foo, is bar, is baz" now works; previously only
the first one is recognized.
Reported by: Steven Little
[Changes for 0.06 - 2006-07-17]
* Documentation cleanup; no functional changes.
[Changes for 0.05 - 2006-07-17]
* Support for ordered declarations, via list-context return of
"declare". In scalar context, it still returns a hash reference.
[Changes for 0.04 - 2006-07-17]
* Support for plural values via "are":
column x =>
field1 is 'xxx',
field2 are 'XXX', 'XXX', # <-- Plural value
is field3;
[Changes for 0.03 - 2006-07-17]
* The declarator can now be exported to another package;
this works because internally, each declarator remembers
the class mappings and copula it was associated with.
[Changes for 0.02 - 2006-07-17]
* Documentation cleanup; no functional changes.
[Changes for 0.01 - 2006-07-17]
* Initial CPAN release.