Commit | Line | Data |
3fea05b9 |
1 | package oose; |
2 | |
3 | use strict; |
4 | use warnings; |
5 | |
6 | use Class::MOP; |
7 | |
8 | our $VERSION = '0.93'; |
9 | $VERSION = eval $VERSION; |
10 | our $AUTHORITY = 'cpan:STEVAN'; |
11 | |
12 | BEGIN { |
13 | my $package; |
14 | sub import { |
15 | $package = $_[1] || 'Class'; |
16 | if ($package =~ /^\+/) { |
17 | $package =~ s/^\+//; |
18 | Class::MOP::load_class($package); |
19 | } |
20 | } |
21 | use Filter::Simple sub { s/^/package $package;\nuse Moose;\n/; } |
22 | } |
23 | |
24 | 1; |
25 | |
26 | __END__ |
27 | |
28 | =pod |
29 | |
30 | =head1 NAME |
31 | |
32 | oose - syntactic sugar to make Moose one-liners easier |
33 | |
34 | =head1 SYNOPSIS |
35 | |
36 | # create a Moose class on the fly ... |
37 | perl -Moose=Foo -e 'has bar => ( is=>q[ro], default => q[baz] ); print Foo->new->bar' # prints baz |
38 | |
39 | # loads an existing class (Moose or non-Moose) |
40 | # and re-"opens" the package definition to make |
41 | # debugging/introspection easier |
42 | perl -Moose=+My::Class -e 'print join ", " => __PACKAGE__->meta->get_method_list' |
43 | |
44 | =head1 DESCRIPTION |
45 | |
46 | oose.pm is a simple source filter that adds C<package $name; use Moose;> |
47 | to the beginning of your script and was entirely created because typing |
48 | C<perl -e'package Foo; use Moose; ...'> was annoying me. |
49 | |
50 | =head1 INTERFACE |
51 | |
52 | oose provides exactly one method and it's automatically called by perl: |
53 | |
54 | =over 4 |
55 | |
56 | =item B<import($package)> |
57 | |
58 | Pass a package name to import to be used by the source filter. |
59 | |
60 | =back |
61 | |
62 | =head1 DEPENDENCIES |
63 | |
64 | You will need L<Filter::Simple> and eventually L<Moose> |
65 | |
66 | =head1 INCOMPATIBILITIES |
67 | |
68 | None reported. But it is a source filter and might have issues there. |
69 | |
70 | =head1 BUGS |
71 | |
72 | All complex software has bugs lurking in it, and this module is no |
73 | exception. If you find a bug please either email me, or add the bug |
74 | to cpan-RT. |
75 | |
76 | =head1 AUTHOR |
77 | |
78 | Chris Prather C<< <perigrin@cpan.org> >> |
79 | |
80 | =head1 COPYRIGHT AND LICENSE |
81 | |
82 | Copyright 2007-2009 by Infinity Interactive, Inc. |
83 | |
84 | L<http://www.iinteractive.com> |
85 | |
86 | This library is free software; you can redistribute it and/or modify |
87 | it under the same terms as Perl itself. |
88 | |
89 | =cut |