sigh
Stevan Little [Tue, 11 Mar 2008 17:31:14 +0000 (17:31 +0000)]
Changes
lib/oose.pm

diff --git a/Changes b/Changes
index ff7482c..e9c8ed9 100644 (file)
--- a/Changes
+++ b/Changes
@@ -8,7 +8,11 @@ Revision history for Perl extension Moose
         officially support it.
       - fixing the 'extends' keyword so that it will not 
         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
-        
+       
+    * oose
+      - added the perl -Moose=+Class::Name feature to allow 
+        monkeypatching of classes in one liners
+      
     * Moose::Util
       - fixing the 'apply_all_roles' keyword so that it will not 
         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)    
index be54c5f..b54e591 100644 (file)
@@ -2,12 +2,20 @@ package oose;
 use strict;
 use warnings;
 
-our $VERSION   = '0.02';
+use Class::MOP;
+
+our $VERSION   = '0.03';
 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,7 +31,13 @@ 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