Revision history for Perl extension Class-MOP.
0.25 Thurs. April 20, 2006
* Class::MOP::Class
- added create_anon_class for creating anonymous classes
- added tests for this
- added get_all_metaclasses, get_all_metaclass_names
and get_all_metaclass_instances method to allow
access to all the cached metaclass objects.
- attribute slot initialization is now the responsibility
of the attribute itself, and construct_instance now
delegates appropriately
* Class::MOP::Attribute
- attribute slot initialization is now the responsibility
of the attribute itself, so we added a method for it
called initialize_instance_slot
* examples/
- adjusted all the examples to use the new attribute
initialize_instance_slot method
0.24 Tues. April 11, 2006
* Class::MOP::Class
- cleaned up how the before/after/around method
modifiers get named with Sub::Name
0.23 Thurs. March 30, 2006
* Class::MOP::Class
- fixed the way attribute defaults are handled
during instance construction (bug found by chansen)
* Class::MOP::Attribute
- read-only accessors ('reader') will now die if
passed more than one argument (attempting to write
to them basically)
- added tests for this
- adjusted all /example files to comply
0.22 Mon. March 20, 2006
* Class::MOP::Class
- localized $@ in the *_package_variable functions
because otherwise, it does ugly things in Moose.
- added test case for this
0.21 Wed. March 15, 2006
* Class::MOP::Class
- fixed issue where metaclasses are reaped from
our cache in global destruction, and so are not
available in DESTORY calls
0.20 Thurs. March 2, 2006
- removed the dependency for Clone since
we no longer to deep-cloning by default.
* Class::MOP::Method
- added &package_name, &name and
&fully_qualified_name methods, some of
which were formerly private subs in
Class::MOP::Class
* Class::MOP::Method::Wrapped
- allows for a method to be wrapped with
before, after and around modifiers
- added tests and docs for this feature
* Class::MOP::Class
- improved &get_package_variable
- &version and &superclasses now use it
- methods are now blessed into Class::MOP::Method
whenever possible
- added methods to install CLOS-style method modifiers
- &add_before_method_modifier
- &add_after_method_modifier
- &add_around_method_modifier
- added tests and docs for these
- added &find_next_method_by_name which finds the
equivalent of SUPER::method_name
0.12 Thurs. Feb 23, 2006
- reduced the dependency on B, no need to always
have the latest
* examples/
- added docs to the C3 method dispatch order test
- fixed missing Algorithm::C3 dependency by making
the test skip if it is not installed
0.11 Mon Feb. 20, 2006
* examples/
- added example of changing method dispatch order to C3
* Class::MOP::Class
- changed how clone_instance behaves, it now only does a
shallow clone (see docs for more details)
- added docs and tests
0.10 Tues Feb. 14, 2006
** This release was mostly about writing more tests and
cleaning out old and dusty code, the MOP should now
be considered "ready to use".
- adding more tests to get coverage up a little higher,
mostly testing errors and edge cases.
- test coverage is now at 99%
* Class::MOP
- no longer optionally exports to UNIVERSAL::meta or
creates a custom metaclass generator, use the
metaclass pragma instead.
* Class::MOP::Class
- fixed a number of minor issues which came up in the
error/edge-case tests
* Class::MOP::Attribute
- fixed a number of minor issues which came up in the
error/edge-case tests
* examples/
- fixing the AttributesWithHistory example, it was broken.
0.06 Thurs Feb. 9, 2006
* metaclass
- adding new metaclass pragma to make setting up the
metaclass a little more straightforward
* Class::MOP
- clean up bootstrapping to include more complete
attribute definitions for Class::MOP::Class and
Class::MOP::Attribute (accessors, readers, writers,
etc.) ... it is redundant, but is useful meta-info
to have around.
* Class::MOP::Class
- fixing minor meta-circularity issue with &meta, it
is now more useful for subclasses
- added &get_attribute_map as an accessor for the
hash of attribute meta objects
- &compute_all_applicable_attributes now just returns
the attribute meta-object, rather than the HASH ref
since all the same info can be gotten from the
attribute meta-object itself
- updated docs & tests to reflect
- added &clone_instance method which does a deep clone
of the instance structure created by &construct_instance
- added docs & tests for this
- added Clone as a dependency
- added &new_object and &clone_object convience methods to
return blessed new or cloned instances
- they handle Class::MOP::Class singletons correctly too
- added docs & tests for this
- cleaned up the &constuct_class_instance so that it behaves
more like &construct_instance (and managed the singletons too)
- added the &check_metaclass_compatibility method to make sure
that metaclasses are upward and downward compatible.
- added tests and docs for this
* examples/
- adjusting code to use the &Class::MOP::Class::meta
fix detailed above
- adjusting code to use the metaclass pragma
0.05 Sat Feb. 4, 2006
* Class::MOP::Class
- added the &attribute_metaclass and &method_metaclass
attributes which contain a metaclass name to use for
attributes/methods respectively
* Class::MOP
- bootstrap additional attributes for Class::MOP::Class
* examples/
- adjusted the example code and tests to use the new
&attribute_metaclass feature of Class::MOP::Class
- added new example:
- LazyClass
0.04 Fri Feb. 3, 2006
* Class::MOP::Class
- some documentation suggestions from #perl6
* Class::MOP::Attribute
- improved error messages
* examples/
- added new examples:
- AttributesWithHistory
- ClassEncapsultedAttributes
0.03 Fri Feb. 3, 2006
- converted to Module::Build instead of EU::MM
* Class::MOP::Attribute
- refactored method generation code
- attributes are now associated with class directly
* examples/
- refactored the InsideOut example to take advantage
of the Class::MOP::Attribute refactoring
- changed example files to .pod files and hide thier
package names from PAUSE (I don't want to own these
namespaces really, they are just examples)
0.02 Thurs Feb. 2, 2006
- moving examples from t/lib/* to examples/*
- adding POD documentation to the examples
0.01 Thurs Feb. 2, 2006
- Initial release