One Hat Cyber Team
Your IP :
172.16.0.254
Server IP :
58.26.163.33
Server :
Windows NT DGPENSV2LPKMN 10.0 build 14393 (Windows Server 2016) AMD64
Server Software :
Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/7.3.25
PHP Version :
7.3.25
Buat File
|
Buat Folder
Eksekusi
Dir :
C:
/
xampp7
/
perl
/
vendor
/
lib
/
MooseX
/
Declare
/
Syntax
/
View File Name :
MethodDeclaration.pm
package MooseX::Declare::Syntax::MethodDeclaration; # ABSTRACT: Handles method declarations our $VERSION = '0.43'; use Moose::Role; use MooseX::Method::Signatures::Meta::Method; use MooseX::Method::Signatures 0.36 (); use MooseX::Method::Signatures::Types qw/PrototypeInjections/; use namespace::autoclean; #pod =head1 DESCRIPTION #pod #pod A role for keyword handlers that gives a framework to add or modify #pod methods or things that look like methods. #pod #pod =head1 CONSUMES #pod #pod =for :list #pod * L<MooseX::Declare::Syntax::KeywordHandling> #pod #pod =cut with qw( MooseX::Declare::Syntax::KeywordHandling ); #pod =head1 REQUIRED METHODS #pod #pod =head2 register_method_declaration #pod #pod Object->register_method_declaration (Object $metaclass, Str $name, Object $method) #pod #pod This method will be called with the target metaclass and the final built #pod L<method meta object|MooseX::Method::Signatures::Meta::Method> and its name. #pod The value it returns will be the value returned where the method was declared. #pod #pod =cut requires qw( register_method_declaration ); #pod =attr prototype_injections #pod #pod An optional structure describing additional things to be added to a methods #pod signature. A popular example is found in the C<around> #pod L<method modifier handler|MooseX::Declare::Syntax::Keyword::MethodModifier>: #pod #pod =cut has prototype_injections => ( is => 'ro', isa => PrototypeInjections, predicate => 'has_prototype_injections', ); #pod =method parse #pod #pod Object->parse (Object $ctx); #pod #pod Reads a name and a prototype and builds the method meta object then registers #pod it into the current class using MooseX::Method::Signatures and a #pod C<custom_method_application>, that calls L</register_method_declaration>. #pod #pod =cut sub parse { my ($self, $ctx) = @_; my %args = ( context => $ctx->_dd_context, initialized_context => 1, custom_method_application => sub { my ($meta, $name, $method) = @_; $self->register_method_declaration($meta, $name, $method); }, ); $args{prototype_injections} = $self->prototype_injections if $self->has_prototype_injections; my $mxms = MooseX::Method::Signatures->new(%args); $mxms->parser; } #pod =head1 SEE ALSO #pod #pod =for :list #pod * L<MooseX::Declare> #pod * L<MooseX::Declare::Syntax::NamespaceHandling> #pod * L<MooseX::Declare::Syntax::MooseSetup> #pod * L<MooseX::Method::Signatures> #pod #pod =cut 1; __END__ =pod =encoding UTF-8 =head1 NAME MooseX::Declare::Syntax::MethodDeclaration - Handles method declarations =head1 VERSION version 0.43 =head1 DESCRIPTION A role for keyword handlers that gives a framework to add or modify methods or things that look like methods. =head1 ATTRIBUTES =head2 prototype_injections An optional structure describing additional things to be added to a methods signature. A popular example is found in the C<around> L<method modifier handler|MooseX::Declare::Syntax::Keyword::MethodModifier>: =head1 METHODS =head2 parse Object->parse (Object $ctx); Reads a name and a prototype and builds the method meta object then registers it into the current class using MooseX::Method::Signatures and a C<custom_method_application>, that calls L</register_method_declaration>. =head1 CONSUMES =over 4 =item * L<MooseX::Declare::Syntax::KeywordHandling> =back =head1 REQUIRED METHODS =head2 register_method_declaration Object->register_method_declaration (Object $metaclass, Str $name, Object $method) This method will be called with the target metaclass and the final built L<method meta object|MooseX::Method::Signatures::Meta::Method> and its name. The value it returns will be the value returned where the method was declared. =head1 SEE ALSO =over 4 =item * L<MooseX::Declare> =item * L<MooseX::Declare::Syntax::NamespaceHandling> =item * L<MooseX::Declare::Syntax::MooseSetup> =item * L<MooseX::Method::Signatures> =back =head1 AUTHOR Florian Ragwitz <rafl@debian.org> =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2008 by Florian Ragwitz. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut