X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FGitalist.git;a=blobdiff_plain;f=local-lib5%2Flib%2Fperl5%2FMooseX%2FMethodAttributes%2FRole%2FMeta%2FMap.pm;fp=local-lib5%2Flib%2Fperl5%2FMooseX%2FMethodAttributes%2FRole%2FMeta%2FMap.pm;h=3ac2c21317ad72a7c0ece9da443d82185b3c66a7;hp=0000000000000000000000000000000000000000;hb=3fea05b9fbf95091f4522528b9980a33e0235603;hpb=af746827daa7a8feccee889e1d12ebc74cc9201e 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 index 0000000..3ac2c21 --- /dev/null +++ b/local-lib5/lib/perl5/MooseX/MethodAttributes/Role/Meta/Map.pm @@ -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 + Tomas Doran + +=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 + +