use 5.008;
-our $VERSION = '0.67';
+our $VERSION = '0.71_01';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
use Scalar::Util 'blessed';
-use Carp 'confess', 'croak', 'cluck';
+use Carp 'confess';
use Moose::Exporter;
-use Class::MOP 0.76;
+use Class::MOP 0.77_01;
use Moose::Meta::Class;
use Moose::Meta::TypeConstraint;
sub extends {
my $class = shift;
- croak "Must derive at least one class" unless @_;
+ Moose->throw_error("Must derive at least one class") unless @_;
my @supers = @_;
foreach my $super (@supers) {
Class::MOP::load_class($super);
- croak "You cannot inherit from a Moose Role ($super)"
+ Moose->throw_error("You cannot inherit from a Moose Role ($super)")
if $super->can('meta') &&
blessed $super->meta &&
$super->meta->isa('Moose::Meta::Role')
sub has {
my $class = shift;
my $name = shift;
- croak 'Usage: has \'name\' => ( key => value, ... )' if @_ == 1;
+
+ Moose->throw_error('Usage: has \'name\' => ( key => value, ... )')
+ if @_ == 1;
+
my %options = ( definition_context => _caller_info(), @_ );
my $attrs = ( ref($name) eq 'ARRAY' ) ? $name : [ ($name) ];
Class::MOP::Class->initialize($class)->add_attribute( $_, %options ) for @$attrs;
=item I<trigger =E<gt> $code>
-The I<trigger> option is a CODE reference which will be called after the value of
-the attribute is set. The CODE ref will be passed the instance itself, the
-updated value and the attribute meta-object (this is for more advanced fiddling
-and can typically be ignored). You B<cannot> have a trigger on a read-only
-attribute.
+The I<trigger> option is a CODE reference which will be called after
+the value of the attribute is set. The CODE ref will be passed the
+instance itself and the updated value. You B<cannot> have a trigger on
+a read-only attribute.
B<NOTE:> Triggers will only fire when you B<assign> to the attribute,
either in the constructor, or using the writer. Default and built values will
into the class so you can get at this object. It also sets the class's
superclass to C<base_class>, with L<Moose::Object> as the default.
-You can specify an alternate metaclass with the C<metaclass> parameter.
+You can specify an alternate metaclass with the C<metaclass> option.
For more detail on this topic, see L<Moose::Cookbook::Extending::Recipe2>.