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