X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FPurePerl.pm;h=fb1909fc0a897458be8d0f1babf4b7b5db5edd1b;hb=c83feefa58c2e80f31e5c3b08e16cabe04cfdb0c;hp=73374b4cd1dea0dd4e31bc598c15875df0e22f74;hpb=b4dc931582100f9ec9ec48e0ac1be81cc8e66c84;p=gitmo%2FMouse.git diff --git a/lib/Mouse/PurePerl.pm b/lib/Mouse/PurePerl.pm index 73374b4..fb1909f 100644 --- a/lib/Mouse/PurePerl.pm +++ b/lib/Mouse/PurePerl.pm @@ -156,7 +156,7 @@ sub Str { 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' } @@ -280,7 +280,7 @@ sub is_anon_class{ 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) = @_; @@ -384,9 +384,8 @@ sub _initialize_object{ 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) = @_; @@ -730,13 +729,8 @@ sub BUILDARGS { 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 { @@ -797,7 +791,7 @@ Mouse::PurePerl - A Mouse guts in pure Perl =head1 VERSION -This document describes Mouse version 0.70 +This document describes Mouse version 0.71 =head1 SEE ALSO