Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / MooseX / MethodAttributes / Role.pm
diff --git a/local-lib5/lib/perl5/MooseX/MethodAttributes/Role.pm b/local-lib5/lib/perl5/MooseX/MethodAttributes/Role.pm
new file mode 100644 (file)
index 0000000..1c079f8
--- /dev/null
@@ -0,0 +1,93 @@
+use strict;
+use warnings;
+
+package MooseX::MethodAttributes::Role;
+our $VERSION = '0.18';
+
+# ABSTRACT: code attribute introspection
+
+use Moose ();
+use Moose::Exporter;
+use Moose::Util::MetaRole;
+use Moose::Util qw/find_meta does_role ensure_all_roles/;
+# Ensure trait is registered
+use MooseX::MethodAttributes::Role::Meta::Role ();
+
+
+Moose::Exporter->setup_import_methods( also => 'Moose::Role' );
+
+sub init_meta {
+    my ($class, %options) = @_;
+
+       my $for_class = $options{for_class};
+    my $meta = find_meta($for_class);
+
+    return $meta if $meta
+        && does_role($meta, 'MooseX::MethodAttributes::Role::Meta::Role');
+
+    $meta = Moose::Meta::Role->initialize( $for_class )
+        unless $meta;
+
+    $meta = Moose::Util::MetaRole::apply_metaclass_roles(
+            for_class       => $meta->name,
+            metaclass_roles => [ 'MooseX::MethodAttributes::Role::Meta::Role' ],
+    );
+
+    ensure_all_roles($meta->name,
+        'MooseX::MethodAttributes::Role::AttrContainer',
+    );
+
+    return $meta;
+}
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+MooseX::MethodAttributes::Role - code attribute introspection
+
+=head1 VERSION
+
+version 0.18
+
+=head1 SYNOPSIS
+
+    package MyRole;
+    use MooseX::MethodAttributes::Role;
+
+    sub foo : Bar Baz('corge') { ... }
+
+    my $attrs = MyRole->meta->get_method('foo')->attributes; # ["Bar", "Baz('corge')"]
+
+=head1 DESCRIPTION
+
+This module allows you to write a Moose Role with code attributes of methods to
+be introspected using Moose meta method objects.
+
+=begin Pod::Coverage
+
+init_meta
+
+=end Pod::Coverage
+
+
+
+=head1 AUTHORS
+
+  Florian Ragwitz <rafl@debian.org>
+  Tomas Doran <bobtfish@bobtfish.net>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2009 by Florian Ragwitz.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as perl itself.
+
+=cut 
+
+