return $instance;
}
+sub attribute_metaclass { 'ClassEncapsulatedAttributes::Attribute' }
+
package # hide the package from PAUSE
ClassEncapsulatedAttributes::Attribute;
sub meta { ClassEncapsulatedAttributes->initialize($_[0]) }
- Foo->meta->add_attribute(
- ClassEncapsulatedAttributes::Attribute->new('foo' => (
- accessor => 'Foo_foo',
- default => 'init in FOO'
- ))
- );
+ Foo->meta->add_attribute('foo' => (
+ accessor => 'Foo_foo',
+ default => 'init in FOO'
+ ));
sub new {
my $class = shift;
our @ISA = ('Foo');
# duplicate the attribute name here
- Bar->meta->add_attribute(
- ClassEncapsulatedAttributes::Attribute->new('foo' => (
- accessor => 'Bar_foo',
- default => 'init in BAR'
- ))
- );
+ Bar->meta->add_attribute('foo' => (
+ accessor => 'Bar_foo',
+ default => 'init in BAR'
+ ));
# ... later in other code ...