X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Foose.pm;h=2773e0de2068a47b49acca7f8e9c253cde8cd246;hb=d03bd989b97597428b460d7f9a021e2931893fa0;hp=be54c5fc3606540f94d4925ea507db6be0a2bd3f;hpb=ea6f14dbd053b3f8c031a4e046ca183c9a858f14;p=gitmo%2FMoose.git diff --git a/lib/oose.pm b/lib/oose.pm index be54c5f..2773e0d 100644 --- a/lib/oose.pm +++ b/lib/oose.pm @@ -1,13 +1,23 @@ package oose; + use strict; use warnings; -our $VERSION = '0.02'; +use Class::MOP; + +our $VERSION = '0.75_01'; +$VERSION = eval $VERSION; 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,17 +33,23 @@ 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 -oose.pm is a simple source filter that adds C -to the beginning of your script and was entirely created because typing -perl -e'package Foo; use Moose; ...' was annoying me. +oose.pm is a simple source filter that adds C +to the beginning of your script and was entirely created because typing +C was annoying me. -=head1 INTERFACE +=head1 INTERFACE -oose provides exactly one method and it's automically called by perl: +oose provides exactly one method and it's automatically called by perl: =over 4 @@ -63,7 +79,7 @@ Chris Prather C<< >> =head1 COPYRIGHT AND LICENSE -Copyright 2007-2008 by Infinity Interactive, Inc. +Copyright 2007-2009 by Infinity Interactive, Inc. L