Revision history for Perl extension Class::Meta. 0.42 2004-09-19T23:57:53 - Fixed test failures on Windows in "t/errors.t". - Added "abstract" attribute to class objects to identify abstract (a.k.a. "virtual") classes. Constructors generated by Class::Meta will throw an exception if they are used to try to construct an object in an abstract class. 0.41 2004-08-27T02:32:17 - Added "for_key()" class method to Class::Meta to return a Class::Meta::Class class for a class key. - Eliminated '"my" variable $objs masks earlier declaration in same scope' warning. 0.40 2004-08-27T01:51:12 - Remembered to actually apply the patch taht fixes the tests under Windows. Sheesh! - Subclasses of Class, Constructor, Attribute, and Method can now call "SUPER::new()" and "SUPER::build()" without getting errors. - Changed implementation of Class::Meta::Class so that its attributes are stored in the object hash itself. This brings it in line with the implementation of Constructor, Attribute, and Method, thus making subclassing consistent with those classes. However it also required that references to its contents be changed in all the other classes, as well. Hence the bump to 0.40. 0.36 2004-07-30T00:59:31 - Finally, truly got the tests fixed for Windows. Without question. The fix was even tested, first! Thanks to Robert Rothenberg for his persistence. - Minor doc fixes, repoted by Jesse Vincent. - Added simple example for a default value code reference. Suggested by Jesse Vincent. 0.35 2004-06-28T23:16:16 - Fixed the names of the included types classes in the documentation of Class::Meta::Type. Spotted by Dan Kubb. - Fixed a few documentation references to a "class()" method to reference the correctly named "my_class()" method. - Fixed failing tests on Win32. For real this time, I hope! Reported by Robert Rothenberg's CPAN testing. - Added build() method to Class::Meta::Method to parallel the same method in Class::Meta::Attribute and Class::Meta::Constructor. It's a no-op, but will be called when Class::Meta::build() is called, so it could be useful for subclasses. Inspired by a suggestion by Mark Jaroski. - Added POD coverage test. - Documented undocumented methods and functions. Most of these are actually protected methods, but they will be of interest to those creating their own subclasses or accessor generators Class::Meta. 0.34 2004-06-17T17:52:30 - Fixed failing tests on Win32. Reported by Robert Rothenberg's CPAN testing. 0.33 2004-06-17T00:05:47 - Added "override" parameter to "add_attribute()" so that subclasses can override attributes in their parent classes. 0.32 2004-05-25T17:09:39 - Fixed the MANIFEST so that the new semi-affordance accessor generation actually works. Reported by Mark Jaroski. 0.31 2004-04-20T18:25:25 - Moved extra code to prevent AccessorBuilder from pointing to Constructor in the default (croak) error handler from AccessorBuilder to the default error handler. Carp is a PITA. - Added "handle_error()" class method to Class::Meta. This method is used by Class::Meta classes when no Class::Meta::Class object is available 0.30 2004-04-19T23:44:26 - Added semi-affordance accessor generation. - Modified arguments passed to check code references. Now, in addition to the new value to be assiged to the attribute, the object being assigned to and the Class::Meta::Attribute object that describes the attribute are passed. If the attribute is a class attribute, then the second argument is a hash reference containing the existing value and the name of the package. - Thanks the the presence of the attribute object as an argument to check code references, the name of the attribute is now included in exceptions thrown for "once" and "required" attributes. - Added "class" accessors to Constructor, Attribute, and Method, to return the Class object for the class in which the constructor, attribute, or method was defined. - Added "error_handler" parameter to Class::Meta->new to be called for fatal errors. - Added default_error_handler() class method to Class::Meta to act as the default error handler when no "error_handler" parameter is passed to Class::Meta->new. 0.20 2004-01-28T22:03:09 - Added more documentation to the Class::Meta synopsis that highlights the generated constructor and attribute accessors, as well as the introspection API. - Fixed documentation to reflect that the introspection class method installed in a generated class is called my_class(), not class(). Thanks to Marcus Ramberg for the spot! - Documented the "required" attribute of Class::Meta::Attribute. - Added "once" attribute to Class::Meta::Attribute. This attribute indicates whether an attribute value can be set to a defined value only once. - Renamed the call_get() and call_set() methods of Class::Meta::Attribute to simply get() and set(). 0.14 2004-01-21T01:00:18 - Private and protected constructors generated by Class::Meta are now truly private and protected. - Class::Meta no longer generates constructors when they're added with create => 0. 0.13 2004-01-20T21:36:30 - For default accessors, object and class attribute accessors were reversed. - Private and protected attributes now are truly private and protected if they're constructed by the accessor builder packages that come with Class::Meta. - The call_get() and call_set() methods of Class::Meta::Attribute and the call() methods of Class::Meta::Constructor and Class::Meta::::Method now use goto to execute the true methods. This removes the call to call_get() or call_set() or call() from the call stack trace, and makes it possible for the private and protected checks to always work properly. 0.12 2004-01-17T20:25:58 - The class "name" attribute now defaults to be the same as the key if it is not explicitly set. - The constructor generated by Class::Meta no longer attempts to set class attributes. - A package name now must be passed to the Class::Meta::Constructor's call() method as the first argument. This is allow for proper support for inheritance. - Accessor generators now create accessors for class attributes as class attributes, instead of as object attributes. 0.11 2004-01-15T03:47:33 - Added link to rt.cpan.org for reporting bugs. - Added distribution information to all modules. - The package attribute now properly defaults to the package calling Class::Meta->new. - Class::Meta::Class->construtors now works. 0.10 2004-01-09T03:56:11 - Initial public release.