0_25
[gitmo/Class-MOP.git] / Changes
1 Revision history for Perl extension Class-MOP.
2
3 0.25 Thurs. April 20, 2006
4     * Class::MOP::Class
5       - added create_anon_class for creating anonymous classes
6         - added tests for this
7       - added get_all_metaclasses, get_all_metaclass_names
8         and get_all_metaclass_instances method to allow
9         access to all the cached metaclass objects.
10       - attribute slot initialization is now the responsibility
11         of the attribute itself, and construct_instance now 
12         delegates appropriately
13         
14     * Class::MOP::Attribute
15       - attribute slot initialization is now the responsibility
16         of the attribute itself, so we added a method for it
17         called initialize_instance_slot
18     
19     * examples/
20       - adjusted all the examples to use the new attribute 
21         initialize_instance_slot method 
22
23 0.24 Tues. April 11, 2006
24     * Class::MOP::Class
25       - cleaned up how the before/after/around method 
26         modifiers get named with Sub::Name
27
28 0.23 Thurs. March 30, 2006
29         * Class::MOP::Class
30           - fixed the way attribute defaults are handled 
31             during instance construction (bug found by chansen)
32             
33         * Class::MOP::Attribute
34           - read-only accessors ('reader') will now die if 
35             passed more than one argument (attempting to write
36             to them basically)
37               - added tests for this
38               - adjusted all /example files to comply 
39
40 0.22 Mon. March 20, 2006
41     * Class::MOP::Class
42       - localized $@ in the *_package_variable functions
43         because otherwise, it does ugly things in Moose.
44           - added test case for this
45
46 0.21 Wed. March 15, 2006
47     * Class::MOP::Class
48       - fixed issue where metaclasses are reaped from 
49         our cache in global destruction, and so are not
50         available in DESTORY calls
51
52 0.20 Thurs. March 2, 2006
53     - removed the dependency for Clone since 
54       we no longer to deep-cloning by default.
55     
56     * Class::MOP::Method
57       - added &package_name, &name and 
58         &fully_qualified_name methods, some of 
59         which were formerly private subs in 
60         Class::MOP::Class
61       
62     * Class::MOP::Method::Wrapped
63       - allows for a method to be wrapped with 
64         before, after and around modifiers 
65           - added tests and docs for this feature
66
67     * Class::MOP::Class
68       - improved &get_package_variable
69           - &version and &superclasses now use it
70       - methods are now blessed into Class::MOP::Method
71         whenever possible
72       - added methods to install CLOS-style method modifiers 
73          - &add_before_method_modifier
74          - &add_after_method_modifier         
75          - &add_around_method_modifier
76              - added tests and docs for these
77       - added &find_next_method_by_name which finds the 
78         equivalent of SUPER::method_name
79
80 0.12 Thurs. Feb 23, 2006
81     - reduced the dependency on B, no need to always 
82       have the latest
83
84     * examples/
85       - added docs to the C3 method dispatch order test
86       - fixed missing Algorithm::C3 dependency by making 
87         the test skip if it is not installed
88
89 0.11 Mon Feb. 20, 2006
90     * examples/
91       - added example of changing method dispatch order to C3
92       
93     * Class::MOP::Class
94       - changed how clone_instance behaves, it now only does a
95         shallow clone (see docs for more details)
96         - added docs and tests
97
98 0.10 Tues Feb. 14, 2006
99     ** This release was mostly about writing more tests and 
100        cleaning out old and dusty code, the MOP should now 
101        be considered "ready to use".
102
103     - adding more tests to get coverage up a little higher,
104       mostly testing errors and edge cases.
105       - test coverage is now at 99%
106       
107     * Class::MOP
108       - no longer optionally exports to UNIVERSAL::meta or
109         creates a custom metaclass generator, use the 
110         metaclass pragma instead.
111
112     * Class::MOP::Class  
113       - fixed a number of minor issues which came up in the 
114         error/edge-case tests
115         
116     * Class::MOP::Attribute 
117       - fixed a number of minor issues which came up in the 
118         error/edge-case tests        
119      
120     * examples/
121       - fixing the AttributesWithHistory example, it was broken.
122
123 0.06 Thurs Feb. 9, 2006
124     * metaclass
125       - adding new metaclass pragma to make setting up the 
126         metaclass a little more straightforward
127         
128     * Class::MOP
129       - clean up bootstrapping to include more complete 
130         attribute definitions for Class::MOP::Class and 
131         Class::MOP::Attribute (accessors, readers, writers, 
132         etc.) ... it is redundant, but is useful meta-info
133         to have around.
134
135     * Class::MOP::Class
136       - fixing minor meta-circularity issue with &meta, it 
137         is now more useful for subclasses
138       - added &get_attribute_map as an accessor for the 
139         hash of attribute meta objects
140       - &compute_all_applicable_attributes now just returns
141         the attribute meta-object, rather than the HASH ref
142         since all the same info can be gotten from the 
143         attribute meta-object itself
144           - updated docs & tests to reflect
145       - added &clone_instance method which does a deep clone
146         of the instance structure created by &construct_instance
147           - added docs & tests for this
148           - added Clone as a dependency
149       - added &new_object and &clone_object convience methods to
150         return blessed new or cloned instances
151           - they handle Class::MOP::Class singletons correctly too
152           - added docs & tests for this
153       - cleaned up the &constuct_class_instance so that it behaves
154         more like &construct_instance (and managed the singletons too)
155       - added the &check_metaclass_compatibility method to make sure
156         that metaclasses are upward and downward compatible.
157           - added tests and docs for this
158           
159     * examples/
160       - adjusting code to use the &Class::MOP::Class::meta
161         fix detailed above
162       - adjusting code to use the metaclass pragma
163       
164 0.05 Sat Feb. 4, 2006
165     * Class::MOP::Class
166       - added the &attribute_metaclass and &method_metaclass
167         attributes which contain a metaclass name to use for 
168         attributes/methods respectively
169     
170     * Class::MOP
171       - bootstrap additional attributes for Class::MOP::Class 
172         
173     * examples/
174       - adjusted the example code and tests to use the new
175         &attribute_metaclass feature of Class::MOP::Class
176       - added new example:
177         - LazyClass
178
179 0.04 Fri Feb. 3, 2006
180     * Class::MOP::Class
181       - some documentation suggestions from #perl6
182     
183     * Class::MOP::Attribute
184       - improved error messages    
185     
186     * examples/
187       - added new examples:
188         - AttributesWithHistory
189         - ClassEncapsultedAttributes
190
191 0.03 Fri Feb. 3, 2006
192     - converted to Module::Build instead of EU::MM
193     
194     * Class::MOP::Attribute
195       - refactored method generation code
196       - attributes are now associated with class directly
197     
198     * examples/
199       - refactored the InsideOut example to take advantage 
200         of the Class::MOP::Attribute refactoring
201       - changed example files to .pod files and hide thier
202         package names from PAUSE (I don't want to own these
203         namespaces really, they are just examples)
204
205 0.02 Thurs Feb. 2, 2006
206     - moving examples from t/lib/* to examples/*
207         - adding POD documentation to the examples
208
209 0.01 Thurs Feb. 2, 2006
210     - Initial release