1
Revision history for Perl extension Class::Meta.
3
0.52 2005-12-30T00:08:36
4
- The constructor method created by Class::Meta::Constructor no longer
5
assigns the default value to an attribute if that attribute has
6
already been set by another attribute accessor. This is useful, for
7
example, when the setting of one attribute triggers the setting of
8
another attribute, as when a public attribute implicitly sets a
11
0.51 2005-12-17T03:40:26
12
- Added "code" parameter to add_method(), so that a new method can be
13
defined right in the call to add_method(), and Class::Meta::Method
14
will install it. Inspired by Ovid's Class::Meta::Declare.
16
0.50 2005-12-14T04:33:46
17
- Constructors created by Class::Meta now iterate over the attributes
18
when assigning arguments or defaults in the order in which the
19
were defined, rather than randomly.
20
- The "attributes()", "constructors()", and "methods()" methods of
21
Class::Meta::Class now return *all* objects, including private and
22
trusted objects, when called from the class that defined those
24
- Minor optimizations to the constructor created by Class::Meta.
26
0.49 2005-11-02T03:27:10
27
- Added "keys" method to allow all Class Object keys to be fetched.
28
- Added "args" and "returns" parameters to "add_method()" to allow
29
methods to be better described.
30
- Added "clear" method to delete Class Object keys.
32
0.48 2005-04-13T21:32:39
33
- Fixed accessor generation for "once" attributes with a default so that
34
a value can be passed to a constructor and properly assigned to the
35
"once" attribute instead of its default, rather than throwing a
37
- Added "default_builder()" class method to Class::Meta::Type. This
38
allows a default builder other than "default" to be specified when
39
none is explicitly passed to Class::Meta::Type->add(), such as when
40
data types are implicitly created for attributes that reference
41
objects of Class::Meta classes.
43
0.47 2005-04-05T16:25:28
44
- Changed the "constructors()", "attributes()", and "methods()" methods
45
in Class::Meta::Class so that any classes thta inherit from
46
Class::Meta::Class are never considered to be the caller.
47
- Added the "trusted" parameter to "new()" to identify trusted packages.
48
Added a new constant, TRUSTED, for the "view" parameter to identfy
49
constructors, attributes, and methods that can be used by trusted
52
0.46 2005-03-09T18:24:59
53
- Fixed documentation to reflect that the "class()" method in the
54
Constructor class requires the package name as its first argument.
55
- Modified "add_method()" so that methods can optionally be
56
automatically created by "build()". Patch from Tim Canfield.
57
- A call to "build()" now deletes unneeded references to objects,
58
freeing up a bit of memory.
59
- Changed minimum required Perl version to 5.6.1. Certain tests are
60
disabled in this version, since the version of Carp included in
61
Perl 5.6 lacks the @CARP_NOT feature. Everything should work fine,
62
however. Suggested by Tim Canfield.
64
0.45 2005-01-07T19:41:41
65
- Added "parents()" method to Class::Meta::Class to return the class
66
objects for any classes that the class inherits from.
67
- Attributes that use an alias to set their types will now have the
68
alias converted to the canonical type key.
69
- Fixed typo in Class::Meta that named the generated method "class()"
70
instead of "my_class()". Reported by Curtis Poe.
71
- Documented "bool" synonym for the "boolean" data type in the
72
Class::Meta library documentation (it was already documented in
73
Class::Meta::Types::Boolean, of course).
74
- Fixed broken links to Class::Meta::Types classes in Class::Meta
75
library documentation. Reported by Curtis Poe.
77
0.44 2004-10-28T01:25:12
78
- Classes created by Class::Meta will now be used as data types. This
79
saves the developer having to generate classes *and* add the new
80
classes as data types when objects of a class will be attributes of
82
- Added "class_validation_generator()" class method to Class::Meta::Type
83
so that a custom object validation generator can be specified instead
84
of the default. This simplifies specifying objects as data types
85
without custom creating validation checks for every one, and is
86
especially useful with the new implicit Class::Meta class data types,
87
as it will be used to generate the validation checks.
89
0.43 2004-09-20T06:19:27
90
- Accessor builder classes that don't properly load will now correctly
91
cause Class::Meta to die.
92
- Class::Meta::Class->handle_error() now joins multiple arguments it
93
receives into a single string to be passed to the error handler
95
- Class::Meta::Attribute now correctly finds attribute accessors that
96
were not created by Class::Meta (that is, when the "create" parameter
97
is set to NONE), provided that the build_attr_set() and
98
build_attr_get() functions of the accessor builder package can
99
find them (as the accessor builders include with Class::Meta can).
101
0.42 2004-09-19T23:57:53
102
- Fixed test failures on Windows in "t/errors.t".
103
- Added "abstract" attribute to class objects to identify abstract
104
(a.k.a. "virtual") classes. Constructors generated by Class::Meta
105
will throw an exception if they are used to try to construct an
106
object in an abstract class.
108
0.41 2004-08-27T02:32:17
109
- Added "for_key()" class method to Class::Meta to return a
110
Class::Meta::Class class for a class key.
111
- Eliminated '"my" variable $objs masks earlier declaration in same
114
0.40 2004-08-27T01:51:12
115
- Remembered to actually apply the patch taht fixes the tests under
117
- Subclasses of Class, Constructor, Attribute, and Method can now call
118
"SUPER::new()" and "SUPER::build()" without getting errors.
119
- Changed implementation of Class::Meta::Class so that its attributes
120
are stored in the object hash itself. This brings it in line with
121
the implementation of Constructor, Attribute, and Method, thus
122
making subclassing consistent with those classes. However it also
123
required that references to its contents be changed in all the other
124
classes, as well. Hence the bump to 0.40.
126
0.36 2004-07-30T00:59:31
127
- Finally, truly got the tests fixed for Windows. Without question.
128
The fix was even tested, first! Thanks to Robert Rothenberg for
130
- Minor doc fixes, repoted by Jesse Vincent.
131
- Added simple example for a default value code reference. Suggested
134
0.35 2004-06-28T23:16:16
135
- Fixed the names of the included types classes in the documentation
136
of Class::Meta::Type. Spotted by Dan Kubb.
137
- Fixed a few documentation references to a "class()" method to
138
reference the correctly named "my_class()" method.
139
- Fixed failing tests on Win32. For real this time, I hope! Reported
140
by Robert Rothenberg's CPAN testing.
141
- Added build() method to Class::Meta::Method to parallel the same
142
method in Class::Meta::Attribute and Class::Meta::Constructor.
143
It's a no-op, but will be called when Class::Meta::build() is
144
called, so it could be useful for subclasses. Inspired by a
145
suggestion by Mark Jaroski.
146
- Added POD coverage test.
147
- Documented undocumented methods and functions. Most of these are
148
actually protected methods, but they will be of interest to those
149
creating their own subclasses or accessor generators Class::Meta.
151
0.34 2004-06-17T17:52:30
152
- Fixed failing tests on Win32. Reported by Robert Rothenberg's CPAN
155
0.33 2004-06-17T00:05:47
156
- Added "override" parameter to "add_attribute()" so that subclasses
157
can override attributes in their parent classes.
159
0.32 2004-05-25T17:09:39
160
- Fixed the MANIFEST so that the new semi-affordance accessor generation
161
actually works. Reported by Mark Jaroski.
163
0.31 2004-04-20T18:25:25
164
- Moved extra code to prevent AccessorBuilder from pointing to
165
Constructor in the default (croak) error handler from AccessorBuilder
166
to the default error handler. Carp is a PITA.
167
- Added "handle_error()" class method to Class::Meta. This method is
168
used by Class::Meta classes when no Class::Meta::Class object is
171
0.30 2004-04-19T23:44:26
172
- Added semi-affordance accessor generation.
173
- Modified arguments passed to check code references. Now, in addition
174
to the new value to be assiged to the attribute, the object being
175
assigned to and the Class::Meta::Attribute object that describes the
176
attribute are passed. If the attribute is a class attribute, then the
177
second argument is a hash reference containing the existing value and
178
the name of the package.
179
- Thanks the the presence of the attribute object as an argument to
180
check code references, the name of the attribute is now included in
181
exceptions thrown for "once" and "required" attributes.
182
- Added "class" accessors to Constructor, Attribute, and Method, to
183
return the Class object for the class in which the constructor,
184
attribute, or method was defined.
185
- Added "error_handler" parameter to Class::Meta->new to be called for
187
- Added default_error_handler() class method to Class::Meta to act
188
as the default error handler when no "error_handler" parameter is
189
passed to Class::Meta->new.
191
0.20 2004-01-28T22:03:09
192
- Added more documentation to the Class::Meta synopsis that highlights
193
the generated constructor and attribute accessors, as well as the
195
- Fixed documentation to reflect that the introspection class method
196
installed in a generated class is called my_class(), not class().
197
Thanks to Marcus Ramberg for the spot!
198
- Documented the "required" attribute of Class::Meta::Attribute.
199
- Added "once" attribute to Class::Meta::Attribute. This attribute
200
indicates whether an attribute value can be set to a defined value
202
- Renamed the call_get() and call_set() methods of
203
Class::Meta::Attribute to simply get() and set().
205
0.14 2004-01-21T01:00:18
206
- Private and protected constructors generated by Class::Meta are now
207
truly private and protected.
208
- Class::Meta no longer generates constructors when they're added with
211
0.13 2004-01-20T21:36:30
212
- For default accessors, object and class attribute accessors were
214
- Private and protected attributes now are truly private and protected
215
if they're constructed by the accessor builder packages that come with
217
- The call_get() and call_set() methods of Class::Meta::Attribute and
218
the call() methods of Class::Meta::Constructor and
219
Class::Meta::::Method now use goto to execute the true methods. This
220
removes the call to call_get() or call_set() or call() from the call
221
stack trace, and makes it possible for the private and protected
222
checks to always work properly.
224
0.12 2004-01-17T20:25:58
225
- The class "name" attribute now defaults to be the same as the key
226
if it is not explicitly set.
227
- The constructor generated by Class::Meta no longer attempts to set
229
- A package name now must be passed to the Class::Meta::Constructor's
230
call() method as the first argument. This is allow for proper support
232
- Accessor generators now create accessors for class attributes as
233
class attributes, instead of as object attributes.
235
0.11 2004-01-15T03:47:33
236
- Added link to rt.cpan.org for reporting bugs.
237
- Added distribution information to all modules.
238
- The package attribute now properly defaults to the package
239
calling Class::Meta->new.
240
- Class::Meta::Class->construtors now works.
242
0.10 2004-01-09T03:56:11
243
- Initial public release.