NAME
Mo::utils - Mo utilities.
SYNOPSIS
use Mo::utils qw(check_array check_array_object check_bool check_isa check_length check_number check_number_of_items check_required);
check_array($self, $key);
check_array_object($self, $key, $class, $class_name);
check_bool($self, $key);
check_isa($self, $key, $class);
check_length($self, $key, $max_length);
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
check_array($self, $key);
Check parameter defined by $key
which is reference to array.
Put error if check isn't ok.
Returns undef.
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_bool
check_bool($self, $key);
Check parameter defined by $key
if value is bool or not.
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_length
check_length($self, $key, $max_length);
Check length of value for parameter defined by $key
. Maximum length is defined by $max_length
.
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 amount of unique items defined by $item_method
method value. 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():
Parameter '%s' must be a array.
Value: %s
Reference: %s
check_array_object():
Parameter '%s' must be a array.
%s isn't '%s' object.
check_bool():
Parameter '%s' must be a bool (0/1).
Value: %s
check_isa():
Parameter '%s' must be a '%s' object.
Value: %s
Reference: %s
check_length():
Parameter '%s' has length greater than '%s'.
'Value', $self->{$key},
check_number():
Parameter '%s' must a number.
Value: %s
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);
my $self = {
'key' => ['foo'],
};
check_array($self, 'key');
# Print out.
print "ok\n";
# Output:
# ok
EXAMPLE2
use strict;
use warnings;
use Error::Pure;
use Mo::utils qw(check_array);
$Error::Pure::TYPE = 'Error';
my $self = {
'key' => 'foo',
};
check_array($self, 'key');
# Print out.
print "ok\n";
# Output like:
# #Error [..utils.pm:?] Parameter 'key' must be a array.
EXAMPLE3
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
EXAMPLE4
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.
EXAMPLE5
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
EXAMPLE6
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.
EXAMPLE7
use strict;
use warnings;
$Error::Pure::TYPE = 'Error';
use Mo::utils qw(check_length);
my $self = {
'key' => 'foo',
};
check_length($self, 'key', 3);
# Print out.
print "ok\n";
# Output like:
# ok
EXAMPLE8
use strict;
use warnings;
$Error::Pure::TYPE = 'Error';
use Mo::utils qw(check_length);
my $self = {
'key' => 'foo',
};
check_length($self, 'key', 2);
# Print out.
print "ok\n";
# Output like:
# #Error [...utils.pm:?] Parameter 'key' has length greater than '2'.
EXAMPLE9
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
EXAMPLE10
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.
EXAMPLE11
use strict;
use warnings;
use Test::MockObject;
$Error::Pure::TYPE = 'Error';
use Mo::utils qw(check_number_of_items);
# Item object #1.
my $item1 = Test::MockObject->new;
$item1->mock('value', sub {
return 'value1',
});
# Item object #1.
my $item2 = Test::MockObject->new;
$item2->mock('value', sub {
return 'value2',
});
# Tested object.
my $self = Test::MockObject->new({
'key' => [],
});
$self->mock('list', sub {
return [
$item1,
$item2,
];
});
# Check number of items.
check_number_of_items($self, 'list', 'value', 'Test', 'Item');
# Print out.
print "ok\n";
# Output like:
# ok
EXAMPLE12
use strict;
use warnings;
use Test::MockObject;
$Error::Pure::TYPE = 'Error';
use Mo::utils qw(check_number_of_items);
# Item object #1.
my $item1 = Test::MockObject->new;
$item1->mock('value', sub {
return 'value1',
});
# Item object #2.
my $item2 = Test::MockObject->new;
$item2->mock('value', sub {
return 'value1',
});
# Tested object.
my $self = Test::MockObject->new({
'key' => [],
});
$self->mock('list', sub {
return [
$item1,
$item2,
];
});
# Check number of items.
check_number_of_items($self, 'list', 'value', 'Test', 'Item');
# Print out.
print "ok\n";
# Output like:
# #Error [...utils.pm:?] Test for Item 'value1' has multiple values.
EXAMPLE13
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
EXAMPLE14
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-2022
BSD 2-Clause License
VERSION
0.09