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