sub Ref { ref($_[0]) }
sub ScalarRef {
my($value) = @_;
- return ref($value) eq 'SCALAR'
+ return ref($value) eq 'SCALAR' || ref($value) eq 'REF';
}
sub ArrayRef { ref($_[0]) eq 'ARRAY' }
sub HashRef { ref($_[0]) eq 'HASH' }
sub roles { $_[0]->{roles} }
-sub linearized_isa { @{ get_linear_isa($_[0]->{package}) } }
+sub linearized_isa { @{ Mouse::Util::get_linear_isa($_[0]->{package}) } }
sub get_all_attributes {
my($self) = @_;
sub is_immutable { $_[0]->{is_immutable} }
-Mouse::Util::install_subroutines(__PACKAGE__,
- strict_constructor => $generate_class_accessor->('strict_constructor'),
-);
+sub strict_constructor;
+*strict_constructor = $generate_class_accessor->('strict_constructor');
sub _report_unknown_args {
my($metaclass, $attrs, $args) = @_;
sub new {
my $class = shift;
-
- $class->meta->throw_error('Cannot call new() on an instance') if ref $class;
-
- my $args = $class->BUILDARGS(@_);
-
- my $meta = Mouse::Meta::Class->initialize($class);
- return $meta->new_object($args);
+ my $args = $class->BUILDARGS(@_);
+ return $class->meta->new_object($args);
}
sub DESTROY {
=head1 VERSION
-This document describes Mouse version 0.70
+This document describes Mouse version 0.71
=head1 SEE ALSO