Changes for version 0.5.14
- Class::Maker::Exception added. See pod.
Changes for version 0.05_12
- Added explicitly
- use attributes;
- to Maker.pm because under perl5.8.0 it seems to be needed.
Changes for version 0.05_10
- Class::Maker::Basic::Constructor new() supports cloning (use args for clone modification).
- $new_obj = Pkg::Name->new( name => 'name', email => 'email@server.org' );
- $clone_obj = $new_obj->new( name => 'othername' );
Changes for version 0.05_09
- attribute handlers (accessors) are now in "Class::Maker::Basic::Handler::Attributes". Therefore if new accessors types are into that package (see _make_method in Maker.pm).
- 'attribute' field is now obsolete ! Now only private/public/protected are allowed.
Changes for version 0.05_06
- class field 'default' is working now
- #!perl
- Class::Maker::class { isa => [qw( Something )],
- public => { string => [qw( name desc )], },
- default => { name => 'Role Name',
- desc => 'Role Descrition',
- xxx => 'DEFAULTS TO XXX',
- },
- };
- my $role = Human::Role->new( );
- __END__
- Even we called an empty 'new' we got
- $role->name eq 'Role Name'
- $role->desc eq 'Role Description'
- and
- Something->xxx( 'DEFAULTS TO XXX' ) is called
- which may be an accessor or a function/method that does anything.
- Class::Maker::Reflection::reflect() now returns all reflections of the @ISA classes as a href. This will be a ie. "Class::Maker::Reflex" object in future. Also it better sync's the ->{isa} class fields with the real @ISA. Additionally non Class::Maker classes can be introspected, so they will have at least information in the 'isa' and 'methods' fields.
- { package Human::Role::Simple;
- @ISA = qw(Human::Role);
- sub new : method { my $this = shift;
- return $this->SUPER::new( name => $_[0] );
- }
- }
- $reflex = ( 'Human::Role::Simple' => { 'isa' => [ 'Human::Role' ],
- 'methods' => [ 'new' ].
- }
- )
Changes for version 0.05_05
- =head1 find
- added 'find' function to Class::Maker::Reflection
- find (Returns a snapshot-aref to all instances (objects) of a class in a given package)
Changes for version 0.05_04
- swapped the examples into a seperate dist, because of main- tanance problems (Should be available at CPAN under Class::Maker:::Examples).
Changes for version 0.05_03
- updated dependencies (Data::Verify)
Changes for version 0.05_02
- compilation failed on Class::Maker::Example::* classes fixed.
Changes for version 0.05_01
- changed the usage of Class::Maker::Fields::_make_method()
- now supporting '<attr>' syntax in the attribute section for making these attribute fields private (Inspired by Terrence Brannon). Example:
- attributes => { scalar => [qw(name address <internal> age)],
- array => [qw(friends <pattri> visits)],
- }
- Result: 'internal' and 'pattri' are privat (as if the were written into an private => { } attribute section. Also the reflection is modified after this.
- TODO: the brackets should include multiple attribute values, like qw(one <two three four> five) , should make two, three, four private. This bracket-private feature should work only in public and attributes fields.
Modules
classes, reflection, schema, serialization, attribute- and multiple inheritance
exceptions tuned for Class::Maker
"reflex to schema" mapper base class
Provides
in Maker/Basic/Constructor.pm
in Maker/Basic/Fields.pm
in Maker/Basic/Handler/Attributes.pm
in Maker/Basic/Types.pm
in Maker/Basic/Types.pm
in Maker/Basic/Types.pm
in Maker.pm
in Maker.pm
in Maker/Basic/Types.pm