The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Salvation::Method::Signatures - Реализация сигнатур для методов

SYNOPSIS

    package Some::Package;

    use Salvation::Method::Signatures;
    # use Test::More tests => 3;

    method process( ArrayRef[ArrayRef[Str]] :flags!, ArrayRef[HashRef(Int :id!)] :data! ) {

        # isa_ok( $self, 'Some::Package' );
        # is_deeply( $flags, [ [ 'something' ] ] );
        # is_deeply( $data, [ { id => 1 } ] );

        ...
    }

    package main;

    Some::Package -> process(
        flags => [ [ 'something' ] ],
        data => [ { id => 1 } ],
    );

DESCRIPTION

Делает то же, что делают другие реализации сигнатур: проверяет тип аргументов метода, само разбирает @_ и инжектит переменные в блок.

SEE ALSO

http://perlcabal.org/syn/S06.html#Signatures MooseX::Method::Signatures Method::Signatures

METHODS

type_system_class()

token_str()

self_var_name()

import()

Экспортирует магическое ключевое слово.

Подробнее: Devel::Declare.

strip_name()

Обёртка вокруг Devel::Declare#strip_name.

Делает всё то же самое, но дополнительно запоминает, в каком модуле какие методы были объявлены с использованием DirectMod::Method::Signatures.

Внутренний метод.

mark_methods_as_not_imported( Str class )

Маркирует все методы класса class, объявленные с использованием DirectMod::Method::Signatures, как "не импортированные".

Внутренний метод.

parse_proto( Str $str )

Разбирает прототип метода, генерирует код и инжектит этот код в метод.

Подробнее: Devel::Declare.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 5:

Non-ASCII character seen before =encoding in 'Реализация'. Assuming UTF-8