X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Foose.pm;h=cd87abccfa9b9ad8b27fc65706e17aef96d1e2b3;hb=48ac876af2c1991bd6cdba0d54b775a121e01725;hp=adab842bddf85a0e92c6e4a4ade8aa5bac60eef7;hpb=a7e9b05b9505cd4d2d642ead617de0eb7074e23f;p=gitmo%2FMoose.git diff --git a/lib/oose.pm b/lib/oose.pm index adab842..cd87abc 100644 --- a/lib/oose.pm +++ b/lib/oose.pm @@ -3,59 +3,58 @@ package oose; use strict; use warnings; -use Class::MOP; - -our $VERSION = '0.55_04'; -$VERSION = eval $VERSION; -our $AUTHORITY = 'cpan:STEVAN'; +use Class::Load qw(load_class); BEGIN { my $package; - sub import { + sub import { $package = $_[1] || 'Class'; if ($package =~ /^\+/) { $package =~ s/^\+//; - Class::MOP::load_class($package); + load_class($package); } } - use Filter::Simple sub { s/^/package $package;\nuse Moose;\n/; } + use Filter::Simple sub { s/^/package $package;\nuse Moose;use Moose::Util::TypeConstraints;\n/; } } 1; +# ABSTRACT: syntactic sugar to make Moose one-liners easier + __END__ =pod -=head1 NAME - -oose - syntactic sugar to make Moose one-liners easier - =head1 SYNOPSIS # 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' + perl -Moose=+My::Class -e 'print join ", " => __PACKAGE__->meta->get_method_list' + + # also loads Moose::Util::TypeConstraints to allow subtypes etc + perl -Moose=Person -e'subtype q[ValidAge] => as q[Int] => where { $_ > 0 && $_ < 78 }; has => age ( isa => q[ValidAge], is => q[ro]); Person->new(age => 90)' =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 =item B -Pass a package name to import to be used by the source filter. +Pass a package name to import to be used by the source filter. The +package defaults to C if none is given. =back @@ -69,21 +68,6 @@ None reported. But it is a source filter and might have issues there. =head1 BUGS -All complex software has bugs lurking in it, and this module is no -exception. If you find a bug please either email me, or add the bug -to cpan-RT. - -=head1 AUTHOR - -Chris Prather C<< >> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2007-2008 by Infinity Interactive, Inc. - -L - -This library is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. +See L for details on reporting bugs. =cut