X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Foose.pm;h=7a5fd2abab918d4722dc4f8f436922b71abe7c58;hb=aead17e74252e3884f9f8e39912ca98fdf4b4dd5;hp=0d6d8502812f9c985c691b97426d2be841e08068;hpb=1aa48307ed5922d2cf2f3ddf75ac21a02624a35e;p=gitmo%2FMoose.git diff --git a/lib/oose.pm b/lib/oose.pm index 0d6d850..7a5fd2a 100644 --- a/lib/oose.pm +++ b/lib/oose.pm @@ -1,129 +1,89 @@ package oose; + use strict; -our $VERSION = '0.0.1'; +use warnings; + +use Class::MOP; + +our $VERSION = '0.62'; +$VERSION = eval $VERSION; +our $AUTHORITY = 'cpan:STEVAN'; BEGIN { my $package; - sub import { $package = $_[1] } + sub import { + $package = $_[1] || 'Class'; + if ($package =~ /^\+/) { + $package =~ s/^\+//; + Class::MOP::load_class($package); + } + } use Filter::Simple sub { s/^/package $package;\nuse Moose;\n/; } } -1; # Magic true value required at end of module -__END__ - -=head1 NAME -oose - syntactic sugar to make Moose Onliners easier +1; +__END__ -=head1 VERSION +=pod -This document describes oose version 0.0.1 +=head1 NAME +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 Source filter that simply 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 +perl -e'package Foo; use Moose; ...' was annoying me. =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 +=over 4 -=item import(str) +=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. =back -=head1 CONFIGURATION AND ENVIRONMENT - -=for author to fill in: - A full explanation of any configuration system(s) used by the - module, including the names and locations of any configuration - files, and the meaning of any environment variables or properties - that can be set. These descriptions must also include details of any - configuration language used. - -oose requires no configuration files or environment variables. - =head1 DEPENDENCIES -=for author to fill in: - A list of all the other modules that this module relies upon, - including any restrictions on versions, and an indication whether - the module is part of the standard Perl distribution, part of the - module's distribution, or must be installed separately. ] - You will need L and eventually L - =head1 INCOMPATIBILITIES -=for author to fill in: - A list of any modules that this module cannot be used in conjunction - with. This may be due to name conflicts in the interface, or - competition for system or program resources, or due to internal - limitations of Perl (for example, many modules that use source code - filters are mutually incompatible). - None reported. But it is a source filter and might have issues there. -=head1 BUGS AND LIMITATIONS - -=for author to fill in: - A list of known problems with the module, together with some - indication Whether they are likely to be fixed in an upcoming - release. Also a list of restrictions on the features the module - does provide: data types that cannot be handled, performance issues - and the circumstances in which they may arise, practical - limitations on the size of data sets, special cases that are not - (yet) handled, etc. - -No bugs have been reported. - -Please report any bugs or feature requests to -C, or through the web interface at -L. +=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 -=head1 LICENCE AND COPYRIGHT - -Copyright (c) 2007, Chris Prather C<< >>. All rights reserved. - -This module is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. See L. - +Copyright 2007-2008 by Infinity Interactive, Inc. -=head1 DISCLAIMER OF WARRANTY +L -BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER -EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE -ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH -YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL -NECESSARY SERVICING, REPAIR, OR CORRECTION. +This library is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. -IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE -LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, -OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE -THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. +=cut