Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / MooseX / MethodAttributes / Role / Meta / Map.pm
diff --git a/local-lib5/lib/perl5/MooseX/MethodAttributes/Role/Meta/Map.pm b/local-lib5/lib/perl5/MooseX/MethodAttributes/Role/Meta/Map.pm
new file mode 100644 (file)
index 0000000..3ac2c21
--- /dev/null
@@ -0,0 +1,82 @@
+package MooseX::MethodAttributes::Role::Meta::Map;
+our $VERSION = '0.18';
+
+# ABSTRACT: generic role for storing code attributes used by classes and roles with attributes
+
+use Moose::Role;
+use MooseX::Types::Moose qw/HashRef ArrayRef Str Int/;
+
+use namespace::clean -except => 'meta';
+
+has _method_attribute_map => (
+    is        => 'ro',
+    isa       => HashRef[ArrayRef[Str]],
+    lazy      => 1,
+    default   => sub { +{} },
+);
+
+has _method_attribute_list => (
+    is      => 'ro',
+    isa     => ArrayRef[Int],
+    lazy    => 1,
+    default => sub { [] },
+);
+
+
+sub register_method_attributes {
+    my ($self, $code, $attrs) = @_;
+    push @{ $self->_method_attribute_list }, 0 + $code;
+    $self->_method_attribute_map->{ 0 + $code } = $attrs;
+    return;
+}
+
+
+sub get_method_attributes {
+    my ($self, $code) = @_;
+    return $self->_method_attribute_map->{ 0 + $code } || [];
+}
+
+1;
+
+
+__END__
+
+=pod
+
+=head1 NAME
+
+MooseX::MethodAttributes::Role::Meta::Map - generic role for storing code attributes used by classes and roles with attributes
+
+=head1 VERSION
+
+version 0.18
+
+=head1 METHODS
+
+=head2 register_method_attributes ($code, $attrs)
+
+Register a list of attributes for a code reference.
+
+
+
+=head2 get_method_attributes ($code)
+
+Get a list of attributes associated with a coderef.
+
+
+
+=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 
+
+