NAME
Data::Sah::Util::Role - Sah utility routines for roles
VERSION
version 0.23
RELEASE DATE
2014-04-25
DESCRIPTION
This module provides some utility routines to be used in roles, e.g. Data::Sah::Type::*
and Data::Sah::FuncSet::*
.
FUNCTIONS
has_clause($name, %opts)
Define a clause. Used in type roles (Data::Sah::Type::*
). Internally it adds a Moo requires
for clause_$name
.
Options:
arg => $schema
Define schema for clause value.
prio => $priority
Optional. Default is 50. The higher the priority, the earlier the clause will be processed.
aliases => \@aliases OR $alias
Define aliases. Optional.
code => $code
Optional. Define implementation for the clause. The code will be installed as 'clause_$name'.
into => $package
By default it is the caller package, but can be set to other package.
Example:
has_clause minimum => (arg => 'int*', aliases => 'min');
has_clause_alias TARGET => ALIAS | [ALIAS1, ...]
Specify that clause named ALIAS is an alias for TARGET.
You have to define TARGET clause first (see has_clause above).
Example:
has_clause max_length => ...;
has_clause_alias max_length => "max_len";
has_func($name, %opts)
Define a Sah function. Used in function set roles (Data::Sah::FuncSet::*
). Internally it adds a Moo requires
for func_$name
.
Options:
args => [$schema_arg0, $schema_arg1, ...]
Declare schema for arguments.
aliases => \@aliases OR $alias
Optional. Declare aliases.
code => $code
Supply implementation for the function. The code will be installed as 'func_$name'.
into => $package
By default it is the caller package, but can be set to other package.
Example:
has_func abs => (args => 'num');
has_func_alias TARGET => ALIAS | [ALIASES...]
Specify that function named ALIAS is an alias for TARGET.
You have to specify TARGET function first (see has_func above).
Example:
has_func_alias 'atan' => 'arctan';
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/Data-Sah.
SOURCE
Source repository is at https://github.com/sharyanto/perl-Data-Sah.
BUGS
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Data-Sah
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.
AUTHOR
Steven Haryanto <stevenharyanto@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Steven Haryanto.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.