my (%options) = @args;
my $package_name = $options{package};
- (defined $package_name && $package_name)
- || confess "You must pass a package name";
-
(ref $options{superclasses} eq 'ARRAY')
|| confess "You must pass an ARRAY ref of superclasses"
if exists $options{superclasses};
|| confess "You must pass an HASH ref of methods"
if exists $options{methods};
- my $code = "package $package_name;";
- $code .= "\$$package_name\:\:VERSION = '" . $options{version} . "';"
- if exists $options{version};
- $code .= "\$$package_name\:\:AUTHORITY = '" . $options{authority} . "';"
- if exists $options{authority};
-
- eval $code;
- confess "creation of $package_name failed : $@" if $@;
+ $class->SUPER::create(%options);
my (%initialize_options) = @args;
delete @initialize_options{qw(
use strict;
use warnings;
+use Carp 'confess';
use Scalar::Util 'blessed';
our $VERSION = '0.70_01';
);
}
+sub create {
+ my ( $class, %options ) = @_;
+
+ my $package_name = $options{package};
+
+ (defined $package_name && $package_name)
+ || confess "You must pass a package name";
+
+ my $code = "package $package_name;";
+ $code .= "\$$package_name\:\:VERSION = '" . $options{version} . "';"
+ if exists $options{version};
+ $code .= "\$$package_name\:\:AUTHORITY = '" . $options{authority} . "';"
+ if exists $options{authority};
+
+ eval $code;
+ confess "creation of $package_name failed : $@" if $@;
+
+ return; # XXX: should this return some kind of meta object? ~sartak
+}
+
1;
__END__
This constructs a string of the name, version and authority.
+=item B<create>
+
+This creates the module; it does not return a useful result.
+
=back
=head1 AUTHORS
use strict;
use warnings;
-use Test::More tests => 232;
+use Test::More tests => 234;
use Test::Exception;
use Class::MOP;
my @class_mop_module_methods = qw(
_new
- version authority identifier
+ version authority identifier create
);
my @class_mop_class_methods = qw(