Perinci::Object::Function - Represent function metadata
This document describes version 0.30 of Perinci::Object::Function (from Perl distribution Perinci-Object), released on 2017-02-03.
use Perinci::Object; $SPEC{foo} = { v => 1.1, args => { b => {schema=>'int', req=>0} }, features => {idempotent=>1}, }; my $risub = risub $SPEC{foo}; print $risub->feature('idempotent'), # 1 $risub->arg('b')->{req}, # 0 $risub->arg('a'); # undef
This class provides an object-oriented interface for function metadata.
Create a new object from $meta. If $meta is undef, creates an empty metadata.
Will return function.
function
Return the features property.
features
Get or set named feature (features property in metadata). If a feature doesn't exist, undef will be returned.
Check whether function can do dry run, either from the dry_run feature, or from the tx feature. (Transaction can be used to emulate dry run, by calling the function with -tx_action => 'check_state' only.)
dry_run
tx
-tx_action => 'check_state'
Starting from Rinci 1.1.83, the dry_run feature property can be a hash instead of a bool, and can contain this pair default=>1 to specify that dry-run mode should be the default operation (e.g. for safety).
default=>1
Get or set argument (args property in metadata). If an argument doesn't exist, undef will be returned.
Please visit the project's homepage at https://metacpan.org/release/Perinci-Object.
Source repository is at https://github.com/perlancar/perl-Perinci-Object.
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Perinci-Object
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.
Perinci::Object
perlancar <perlancar@cpan.org>
This software is copyright (c) 2017 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.
To install Perinci::Object, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Perinci::Object
CPAN shell
perl -MCPAN -e shell install Perinci::Object
For more information on module installation, please visit the detailed CPAN module installation guide.