-
package Mouse;
use strict;
use warnings;
use 5.006;
use base 'Exporter';
-our $VERSION;
-our $PurePerl;
+our $VERSION = '0.13';
+use 5.006;
BEGIN {
- $VERSION = '0.12';
-
if ($ENV{MOUSE_DEBUG}) {
*DEBUG = sub (){ 1 };
} 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;
involves checking for the existence of C<$VERSION>, C<@ISA>, and any
locally-defined method.
-=head1 AUTHOR
+=head1 AUTHORS
Shawn M Moore, C<< <sartak at gmail.com> >>
Yuval Kogman, C<< <nothingmuch at woobling.org> >>
+tokuhirom
+
+Yappo
+
with plenty of code borrowed from L<Class::MOP> and L<Moose>
=head1 BUGS