use base 'Exporter';
our $VERSION;
-our $PurePerl;
BEGIN {
$VERSION = '0.12';
} else {
*DEBUG = sub (){ 0 };
}
-
- if (! defined $PurePerl && $ENV{MOUSE_PUREPERL} && $ENV{MOUSE_PUREPERL} =~ /^(.+)$/) {
- $PurePerl = $1;
- }
-
- if (! $PurePerl) {
- local $@;
- local $^W = 0;
- require XSLoader;
- $PurePerl = ! eval{ XSLoader::load(__PACKAGE__, $VERSION); 1 };
- warn "Failed to load XS mode: $@" if $@; # && Mouse::DEBUG();
- }
}
use Carp 'confess';
-use Mouse::Util 'blessed';
+use Scalar::Util 'blessed';
+use Mouse::Util;
use Mouse::Meta::Attribute;
use Mouse::Meta::Class;
}
sub with {
- my $meta = Mouse::Meta::Class->initialize(caller);
-
- my $role = shift;
- my $args = shift || {};
-
- confess "Mouse::Role only supports 'with' on individual roles at a time" if @_ || !ref $args;
-
- Mouse::load_class($role);
- $role->meta->apply($meta, %$args);
+ Mouse::Util::apply_all_roles((caller)[0], @_);
}
sub import {
confess "Invalid class name ($display)";
}
+ return 1 if $class eq 'Mouse::Object';
return 1 if is_class_loaded($class);
(my $file = "$class.pm") =~ s{::}{/}g;