The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Dist::Zilla::Plugin::Rinci::GenSchemaV - Generate Sah::SchemaV::* modules for all modules that contain Rinci function metadata

VERSION

This document describes version 0.000 of Dist::Zilla::Plugin::Rinci::GenSchemaV (from Perl distribution Dist-Zilla-Plugin-Rinci-GenSchemaV), released on 2019-07-04.

SYNOPSIS

In dist.ini:

 [Rinci::GenSchemaV]

DESCRIPTION

This plugin will generate a corresponding Sah::SchemaV::* modules for all modules that contain Rinci function metadata. For example, if lib/My/Lib.pm contains:

 package My::Lib;

 our %SPEC;

 $SPEC{func1} = {
     v => 1.1,
     summary => 'Blah blah',
     args => {
         arg1 => {
             summary => 'Blah blah',
             schema => ['str*', len_between=>[1, 10]],
         },
         arg2 => {
             summary => 'Blah blah',
             schema => ['str*', len_between=>[1, 10]],
         },
         arg3 => {
             summary => 'Blah blah',
             schema => 'uint*',
         },
     },
 };
 sub func1 {
    ...
 }

 1;

then this plugin will generate lib/Sah/SchemaV/My/Lib.pm with the contents like the following:

 package Sah::SchemaV::My::Lib;

 our %Validators;
 our %Args_Validators;

 # for ["str*","len_between",[1,10]]
 $Validators{'12bb9471cf257c92a9028dcd9bfa2078c186fd32'} = sub {
     ... validator code ...
 };
 # for "uint*"
 $Validators{'3668dd65767787facd64512dd40026ab6f7090d9'} = sub {
     ... validator code ...
 };

 $Args_Validators{func1} = {
    arg1 => $Validators{'12bb9471cf257c92a9028dcd9bfa2078c186fd32'},
    arg2 => $Validators{'12bb9471cf257c92a9028dcd9bfa2078c186fd32'},
 };

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/Dist-Zilla-Plugin-Rinci-GenSchemaV.

SOURCE

Source repository is at https://github.com/perlancar/perl-Dist-Zilla-Plugin-Rinci-GenSchemaV.

BUGS

Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Dist-Zilla-Plugin-Rinci-GenSchemaV

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

SEE ALSO

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2019 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.