better
[gitmo/Class-MOP.git] / Changes
CommitLineData
7c90a1a8 1Revision history for Perl extension Class-MOP.
2
587aca23 30.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.
bd4e03f9 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
fed4cee7 18
19 * examples/
20 - adjusted all the examples to use the new attribute
21 initialize_instance_slot method
587aca23 22
1daaa2b2 230.24 Tues. April 11, 2006
8c936afc 24 * Class::MOP::Class
25 - cleaned up how the before/after/around method
26 modifiers get named with Sub::Name
27
b9dfbf78 280.23 Thurs. March 30, 2006
a977cf65 29 * Class::MOP::Class
30 - fixed the way attribute defaults are handled
31 during instance construction (bug found by chansen)
b9dfbf78 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
a977cf65 39
f9eba090 400.22 Mon. March 20, 2006
0eff2c16 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
1988e85e 460.21 Wed. March 15, 2006
2f6d5412 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
96ceced8 520.20 Thurs. March 2, 2006
d3cb0d4a 53 - removed the dependency for Clone since
54 we no longer to deep-cloning by default.
a4258ffd 55
56 * Class::MOP::Method
96ceced8 57 - added &package_name, &name and
58 &fully_qualified_name methods, some of
a4258ffd 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
d3cb0d4a 66
67 * Class::MOP::Class
68 - improved &get_package_variable
96ceced8 69 - &version and &superclasses now use it
a4258ffd 70 - methods are now blessed into Class::MOP::Method
71 whenever possible
a4258ffd 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
96ceced8 77 - added &find_next_method_by_name which finds the
78 equivalent of SUPER::method_name
d3cb0d4a 79
1c020571 800.12 Thurs. Feb 23, 2006
d89c0fad 81 - reduced the dependency on B, no need to always
82 have the latest
83
1c020571 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
0dea7280 890.11 Mon Feb. 20, 2006
f3f5bd34 90 * examples/
91 - added example of changing method dispatch order to C3
a27ae83f 92
93 * Class::MOP::Class
19d4b5b8 94 - changed how clone_instance behaves, it now only does a
95 shallow clone (see docs for more details)
a27ae83f 96 - added docs and tests
f3f5bd34 97
3bf7644b 980.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
22286063 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%
aa448b16 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.
22286063 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
0b8eb325 120 * examples/
ea263060 121 - fixing the AttributesWithHistory example, it was broken.
663f8198 122
550d56db 1230.06 Thurs Feb. 9, 2006
677eb158 124 * metaclass
550d56db 125 - adding new metaclass pragma to make setting up the
677eb158 126 metaclass a little more straightforward
7b31baf4 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.
677eb158 134
99e5b7e8 135 * Class::MOP::Class
136 - fixing minor meta-circularity issue with &meta, it
137 is now more useful for subclasses
7b31baf4 138 - added &get_attribute_map as an accessor for the
139 hash of attribute meta objects
c9e77dbb 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
5f3c057a 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
550d56db 148 - added Clone as a dependency
5f3c057a 149 - added &new_object and &clone_object convience methods to
150 return blessed new or cloned instances
2a7575a6 151 - they handle Class::MOP::Class singletons correctly too
5f3c057a 152 - added docs & tests for this
2a7575a6 153 - cleaned up the &constuct_class_instance so that it behaves
154 more like &construct_instance (and managed the singletons too)
550d56db 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
5f3c057a 158
99e5b7e8 159 * examples/
160 - adjusting code to use the &Class::MOP::Class::meta
161 fix detailed above
677eb158 162 - adjusting code to use the metaclass pragma
99e5b7e8 163
aa9c883e 1640.05 Sat Feb. 4, 2006
2e41896e 165 * Class::MOP::Class
166 - added the &attribute_metaclass and &method_metaclass
351bd7d4 167 attributes which contain a metaclass name to use for
2e41896e 168 attributes/methods respectively
351bd7d4 169
170 * Class::MOP
171 - bootstrap additional attributes for Class::MOP::Class
2e41896e 172
173 * examples/
174 - adjusted the example code and tests to use the new
175 &attribute_metaclass feature of Class::MOP::Class
aa9c883e 176 - added new example:
177 - LazyClass
2e41896e 178
d7c2cbe3 1790.04 Fri Feb. 3, 2006
d6fbcd05 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
d7c2cbe3 189 - ClassEncapsultedAttributes
343203ee 190
9ec169fe 1910.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
f71f4295 198 * examples/
9ec169fe 199 - refactored the InsideOut example to take advantage
200 of the Class::MOP::Attribute refactoring
f71f4295 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)
9ec169fe 204
a57c7fa2 2050.02 Thurs Feb. 2, 2006
206 - moving examples from t/lib/* to examples/*
207 - adding POD documentation to the examples
208
a2e85e6c 2090.01 Thurs Feb. 2, 2006
7c90a1a8 210 - Initial release