Make the new method in CMOP::Method::Generated throw an error. This is an abstract...
[gitmo/Class-MOP.git] / lib / Class / MOP / Method / Generated.pm
index dcb2721..1e35f76 100644 (file)
@@ -6,38 +6,18 @@ use warnings;
 
 use Carp 'confess';
 
-our $VERSION   = '0.77';
+our $VERSION   = '0.78';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Class::MOP::Method';
 
-sub new {
-    my $class   = shift;
-    my %options = @_;  
-        
-    ($options{package_name} && $options{name})
-        || confess "You must supply the package_name and name parameters $Class::MOP::Method::UPGRADE_ERROR_TEXT";     
-        
-    my $self = $class->_new(\%options);
-    
-    $self->initialize_body;
-    
-    return $self;
-}
-
-sub _new {
-    my $class = shift;
-    my $options = @_ == 1 ? $_[0] : {@_};
-
-    $options->{is_inline} ||= 0;
-    $options->{body} ||= undef;
+## accessors
 
-    bless $options, $class;
+sub new {
+    confess __PACKAGE__ . " is an abstract base class, you must provide a constructor.";
 }
 
-## accessors
-
 sub is_inline { $_[0]{is_inline} }
 
 sub definition_context { $_[0]{definition_context} }
@@ -49,8 +29,6 @@ sub initialize_body {
 sub _eval_closure {
     # my ($self, $captures, $sub_body) = @_;
     my $__captures = $_[1];
-
-    local $@;
     eval join(
         "\n",
         (
@@ -67,7 +45,6 @@ sub _eval_closure {
         ),
         $_[2]
     );
-    die $@ if $@;
 }
 
 sub _add_line_directive {
@@ -152,7 +129,7 @@ Stevan Little E<lt>stevan@iinteractive.comE<gt>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2006-2008 by Infinity Interactive, Inc.
+Copyright 2006-2009 by Infinity Interactive, Inc.
 
 L<http://www.iinteractive.com>