X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FError%2FDefault.pm;h=47c0024387aad908a9574c5b673f57190ba75cd5;hb=9c1bf11e2960c376afb5edfb2615d6de21dc379b;hp=03e56f8582f8549127da9928007d4b9c302ba791;hpb=3eb89f709f04907580b508f821d6be2316fcb65f;p=gitmo%2FMoose.git diff --git a/lib/Moose/Error/Default.pm b/lib/Moose/Error/Default.pm index 03e56f8..47c0024 100644 --- a/lib/Moose/Error/Default.pm +++ b/lib/Moose/Error/Default.pm @@ -3,16 +3,21 @@ package Moose::Error::Default; use strict; use warnings; -our $VERSION = '1.01'; -$VERSION = eval $VERSION; -our $AUTHORITY = 'cpan:STEVAN'; - use Carp::Heavy; +use Class::MOP::MiniTrait; + +use base 'Class::MOP::Object'; +Class::MOP::MiniTrait::apply(__PACKAGE__, 'Moose::Meta::Object::Trait'); sub new { my ( $self, @args ) = @_; - $self->create_error_confess( @args ); + if (defined $ENV{MOOSE_ERROR_STYLE} && $ENV{MOOSE_ERROR_STYLE} eq 'croak') { + $self->create_error_croak( @args ); + } + else { + $self->create_error_confess( @args ); + } } sub create_error_croak { @@ -41,33 +46,36 @@ sub _create_error_carpmess { } } -__PACKAGE__ +1; + +# ABSTRACT: L based error generation for Moose. __END__ =pod -=head1 NAME - -Moose::Error::Default - L based error generation for Moose. - =head1 DESCRIPTION This class implements L based error generation. -The default behavior is like L. +The default behavior is like L. To override this to +default to L's behaviour on a system wide basis, set the +MOOSE_ERROR_STYLE environment variable to C. The use of this +environment variable is considered experimental, and may change in a future +release. =head1 METHODS =over 4 -=item new @args +=item B<< Moose::Error::Default->new(@args) >> -Create a new error. Delegates to C. +Create a new error. Delegates to C or +C. -=item create_error_confess @args +=item B<< $error->create_error_confess(@args) >> -=item create_error_croak @args +=item B<< $error->create_error_croak(@args) >> Creates a new errors string of the specified style.