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

Mo::utils - Mo utilities.

SYNOPSIS

 use Mo::utils qw(check_array_object check_isa check_number check_number_of_items check_required);

 check_array_object($self, $key, $class, $class_name);
 check_isa($self, $key, $class);
 check_number($self, $key);
 check_number_of_items($self, $list_method, $item_method, $object_name, $item_name);
 check_required($self, $key);

DESCRIPTION

Mo utilities for checking of data objects.

SUBROUTINES

check_array_object

 check_array_object($self, $key, $class, $class_name);

Check parameter defined by $key which is reference to array with instances of some object type ($class). $class_name is used to error message.

Put error if check isn't ok.

Returns undef.

check_isa

 check_isa($self, $key, $class);

Check parameter defined by $key which is instance of $class or no.

Put error if check isn't ok.

Returns undef.

check_number

 check_number($self, $key);

Check parameter defined by $key which is number (positive or negative) or no.

Put error if check isn't ok.

Returns undef.

check_number_of_items

 check_number_of_items($self, $list_method, $item_method, $object_name, $item_name);

Check number of items. Must be 0 or 1. List items via $list_method and get value via $item_method method. $object_name and $item_name are variables for error output.

Put error if check isn't ok.

Returns undef.

check_required

 check_required($self, $key);

Check required parameter defined by $key.

Put error if check isn't ok.

Returns undef.

ERRORS

 check_array_object():
         Parameter '%s' must be a array.
         %s isn't '%s' object.

 check_isa():
         Parameter '%s' must be a '%s' object.

 check_number():
         Parameter '%s' must a number.

 check_number_of_items():
         %s for %s '%s' has multiple values.

 check_required():
         Parameter '%s' is required.

EXAMPLE1

 use strict;
 use warnings;

 use Mo::utils qw(check_array_object);
 use Test::MockObject;

 my $self = {
         'key' => [
                 Test::MockObject->new,
         ],
 };
 check_array_object($self, 'key', 'Test::MockObject', 'Value');

 # Print out.
 print "ok\n";

 # Output:
 # ok

EXAMPLE2

 use strict;
 use warnings;

 use Error::Pure;
 use Mo::utils qw(check_array_object);

 $Error::Pure::TYPE = 'Error';

 my $self = {
         'key' => [
                 'foo',
         ],
 };
 check_array_object($self, 'key', 'Test::MockObject', 'Value');

 # Print out.
 print "ok\n";

 # Output like:
 # #Error [..utils.pm:?] Value isn't 'Test::MockObject' object.

EXAMPLE3

 use strict;
 use warnings;

 use Mo::utils qw(check_isa);
 use Test::MockObject;

 my $self = {
         'key' => Test::MockObject->new,
 };
 check_isa($self, 'key', 'Test::MockObject');

 # Print out.
 print "ok\n";

 # Output:
 # ok

EXAMPLE4

 use strict;
 use warnings;

 $Error::Pure::TYPE = 'Error';

 use Mo::utils qw(check_isa);

 my $self = {
         'key' => 'foo',
 };
 check_isa($self, 'key', 'Test::MockObject');

 # Print out.
 print "ok\n";

 # Output like:
 # #Error [...utils.pm:?] Parameter 'key' must be a 'Test::MockObject' object.

EXAMPLE5

 use strict;
 use warnings;

 use Mo::utils qw(check_number);

 my $self = {
         'key' => '10',
 };
 check_number($self, 'key');

 # Print out.
 print "ok\n";

 # Output:
 # ok

EXAMPLE6

 use strict;
 use warnings;

 $Error::Pure::TYPE = 'Error';

 use Mo::utils qw(check_number);

 my $self = {
         'key' => 'foo',
 };
 check_number($self, 'key');

 # Print out.
 print "ok\n";

 # Output like:
 # #Error [...utils.pm:?] Parameter 'key' must be a number.

EXAMPLE7

 use strict;
 use warnings;

 use Mo::utils qw(check_required);

 my $self = {
         'key' => 'value',
 };
 check_required($self, 'key');

 # Print out.
 print "ok\n";

 # Output:
 # ok

EXAMPLE8

 use strict;
 use warnings;

 use Error::Pure;
 use Mo::utils qw(check_required);

 $Error::Pure::TYPE = 'Error';

 my $self = {
         'key' => undef,
 };
 check_required($self, 'key');

 # Print out.
 print "ok\n";

 # Output like:
 # #Error [...utils.pm:?] Parameter 'key' is required.

DEPENDENCIES

Exporter, Error::Pure, Readonly.

SEE ALSO

Mo

Micro Objects. Mo is less.

REPOSITORY

https://github.com/michal-josef-spacek/Mo-utils

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© Michal Josef Špaček 2020

BSD 2-Clause License

VERSION

0.03