NAME
Ambrosia::core::ClassFactory - a factory of classes.
VERSION
version 0.010
SYNOPSIS
require Ambrosia::core::ClassFactory;
#In memory (on fly)
Ambrosia::core::ClassFactory::create('Employes::Person', {public => qw/FirstName LastName Age/});
my $p = new Employes::Person(FirstName => 'John', LastName => 'Smith', Age => 33);
#From module Employes/Person.pm (Employes::Person created by Ambrosia::Meta)
my $p = Ambrosia::core::ClassFactory::create_object('Employes::Person', (FirstName => 'John', LastName => 'Smith', Age => 33));
print $p->FirstName; #John
DESCRIPTION
Ambrosia::core::ClassFactory
is a factory of classes that allows to produce classes on the fly, to create objects of certain type and just to load packages.
SUBROUTINES
create ($package, $fields)
Produces class of represented type dynamically with represented fields.
create($package, $fields);
in params:
$package - name of class ('Foo::Bar::Baz')
$fields - hash. See L<Ambrosia::Meta>
create_object ($package, %params)
Loads the package and creates the appropriate object and initializes it by the specified parameters.
in params:
$package - name of class ('Foo::Bar::Baz')
%params - data hash.
load_class ($package)
Imports some semantics into the current package from the named module,
generally by aliasing certain subroutine or variable names into your package.
It is exactly equivalent to B<use> but without B<BEGIN>
in params:
$package - name of class ('Foo::Bar::Baz')
equivalent: require Foo::Bar::Baz; Foo::Bar::Baz->import;
DEPENDENCIES
Ambrosia::core::Exceptions Ambrosia::Meta
THREADS
Not tested.
BUGS
Please report bugs relevant to Ambrosia
to <knm[at]cpan.org>.
COPYRIGHT AND LICENSE
Copyright (C) 2010-2012 Nickolay Kuritsyn. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
Nikolay Kuritsyn (knm[at]cpan.org)