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/Basic/Types.pm