From: Stevan Little Date: Tue, 11 Mar 2008 17:31:14 +0000 (+0000) Subject: sigh X-Git-Tag: 0_55~286 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=1321f0872f5100c672b0ca7f2175a8756306a224;p=gitmo%2FMoose.git sigh --- diff --git a/Changes b/Changes index ff7482c..e9c8ed9 100644 --- a/Changes +++ b/Changes @@ -8,7 +8,11 @@ Revision history for Perl extension Moose officially support it. - fixing the 'extends' keyword so that it will not trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763) - + + * oose + - added the perl -Moose=+Class::Name feature to allow + monkeypatching of classes in one liners + * Moose::Util - fixing the 'apply_all_roles' keyword so that it will not trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763) diff --git a/lib/oose.pm b/lib/oose.pm index be54c5f..b54e591 100644 --- a/lib/oose.pm +++ b/lib/oose.pm @@ -2,12 +2,20 @@ package oose; use strict; use warnings; -our $VERSION = '0.02'; +use Class::MOP; + +our $VERSION = '0.03'; our $AUTHORITY = 'cpan:STEVAN'; BEGIN { my $package; - sub import { $package = $_[1] || 'Class' } + sub import { + $package = $_[1] || 'Class'; + if ($package =~ /^\+/) { + $package =~ s/^\+//; + Class::MOP::load_class($package); + } + } use Filter::Simple sub { s/^/package $package;\nuse Moose;\n/; } } @@ -23,7 +31,13 @@ oose - syntactic sugar to make Moose one-liners easier =head1 SYNOPSIS - perl -Moose=Foo -e 'has bar => ( is=>q[ro], default => q[baz] ); print Foo->new->bar' # prints baz + # create a Moose class on the fly ... + perl -Moose=Foo -e 'has bar => ( is=>q[ro], default => q[baz] ); print Foo->new->bar' # prints baz + + # loads an existing class (Moose or non-Moose) + # and re-"opens" the package definition to make + # debugging/introspection easier + perl -Moose=+My::Class -e 'print join ", " => __PACKAGE__->meta->get_method_list' =head1 DESCRIPTION