X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FError%2FDefault.pm;h=c532915cee3eb4a1e4565a98724cde762c929eb3;hb=245478d5ee6b5343e4d591be811582963e177bef;hp=9092efcb17f3b0bca2cb63e9bd8a2195fa2a0627;hpb=113d3174264db82cb788bc846f617584072cba39;p=gitmo%2FMoose.git diff --git a/lib/Moose/Error/Default.pm b/lib/Moose/Error/Default.pm index 9092efc..c532915 100644 --- a/lib/Moose/Error/Default.pm +++ b/lib/Moose/Error/Default.pm @@ -3,16 +3,25 @@ package Moose::Error::Default; use strict; use warnings; -our $VERSION = '0.91'; +our $VERSION = '1.19'; $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 { @@ -55,19 +64,24 @@ Moose::Error::Default - L based error generation for Moose. 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.