bump version to 0.63
[gitmo/Moose.git] / lib / oose.pm
index 0d6d850..836eb4f 100644 (file)
 package oose;
+
 use strict;
-our $VERSION = '0.0.1';
+use warnings;
+
+use Class::MOP;
+
+our $VERSION   = '0.63';
+$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<package $name; use Moose;> 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<package $name; use Moose;> 
+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<import($package)>
 
-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<Filter::Simple> and eventually L<Moose>
 
-
 =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<bug-oose@rt.cpan.org>, or through the web interface at
-L<http://rt.cpan.org>.
+=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<< <perigrin@cpan.org> >>
 
+=head1 COPYRIGHT AND LICENSE
 
-=head1 LICENCE AND COPYRIGHT
-
-Copyright (c) 2007, Chris Prather C<< <perigrin@cpan.org> >>. 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<perlartistic>.
-
+Copyright 2007-2008 by Infinity Interactive, Inc.
 
-=head1 DISCLAIMER OF WARRANTY
+L<http://www.iinteractive.com>
 
-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