NAME
Mo::utils - Mo utilities.
SYNOPSIS
use Mo::utils qw(check_array_object check_isa check_number 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
LICENSE AND COPYRIGHT
© Michal Josef Špaček 2020
BSD 2-Clause License
VERSION
0.01