Revision history for Class-Dot
2.0_01 Sun Oct 28 17:16:32 CEST 2007 [asksh@cpan.org]
- Code cleanup.
- Class::Dot now installs new methods to the object it creates:
- __setattr__($self, $attribute_name, $value):
Set a object attribute. This is great for those times when you want to
do this:
my %some_default_values = (
'foo' => 'bar',
'bar' => 'baz',
'xuzzy' => 'fuzzy',
);
while (my ($attr_name, $attr_value) = each %some_default_values) {
my $set_attribute = 'set_' . $attr_name;
if ($object->can($set_attribute)) {
$object->$set_attribute( $attr_value );
}
}
This isn't very pretty, so that's why you now can do this:
while (my ($attr_name, $attr_value) = each %some_default_values) {
$object->__setattr__($attr_name, $attr_value);
}
- $val = __getattr__($self, $attribute_name)
Get an attributes value.
- $bool = __hasattr__($self, $attribute_name)
Returns true if $self has the attribute $attribute_name.
- Now you can't do this anymore;
$object->{attribute} = $value;
because now the attributes are better hidden in the object's hash.
You can probably find out how they are saved by doing keys %{ $object },
but we _recommend against accessing that hash directly_!.
- Now you can override properties simply by writing;
property name => isa_String('foo');
sub name {
my ($self) = @_;
warn 'Accessing name property';
return $self->__getattr__('name');
}
sub set_name {
my ($self, $new_name) = @_;
warn $self->__getattr__('name') . " is changing name to $new_name";
$self->__setattr__('name', $new_name);
return;
}
instead of using after_property_get() and after_property_set().
(Note: Just be sure not to use property() in a BEGIN block, you have to use
after_property_* to do that!)
1.0.5 Mon Oct 01 17:13:03 CEST 2007 [asksh@cpan.org]
- isa_File added (a Filehandle).
- isa_Code added (a code reference).
- Added import option: -rebuild.
If you return something blessed from your BUILD method and -rebuild
option is set, it will set $self to that.
1.0.4 Thu Sep 20 16:30:11 CEST 2007 [asksh@cpan.org]
- The created constructor (when using -new import tag option) didn't
search ISA properly while setting properties using options to new().
- isa_Data now sets default value properly.
1.0.3 Thu Sep 12 16:55:48 2007 [asksh@cpan.org]
- isa_Int and isa_String set the initial value to 0 and q{} when no
default value was defined, this resulted in `defined $property` to
return true.
1.0.2 Tue Sep 12 10:13:04 2007 [asksh@cpan.org]
- Subversion now hosted at googlecode.
http://class-dot.googlecode.comsearch
1.0.1 Tue Sep 11 24:36:32 2007 [asksh@cpan.org]
- isa_Object no longer automaticly makes new objects if the property is
not set. If you want that, use: isa_Object('My::Class', auto => 1);
- Fixed problems with isa_Object where it would try to make
a new instance even though no default class was defined.
0.0.1 Sun Sep 9 02:22:58 2007 [asksh@cpan.org]
Initial release.