NAME

Poz::Types::string - A module for validating and transforming strings.

SYNOPSIS

use Poz qw/z/;

my $string = z->string;

# Validate a string
$string->rule($value);

# Coerce a value to a string
my $coerced_value = $string->coerce($value);

# Add validation rules
$string->max($max_length, \%opts);
$string->min($min_length, \%opts);
$string->email(\%opts);
$string->url(\%opts);
$string->emoji(\%opts);
$string->uuid(\%opts);
$string->nanoid(\%opts);
$string->cuid(\%opts);
$string->cuid2(\%opts);
$string->ulid(\%opts);
$string->regex($regex, \%opts);
$string->includes($substring, \%opts);
$string->startsWith($prefix, \%opts);
$string->endsWith($suffix, \%opts);
$string->ip(\%opts);
$string->date(\%opts);
$string->time(\%opts);
$string->datetime(\%opts);
$string->duration(\%opts);
$string->base64(\%opts);

# Add transformations
$string->trim;
$string->toLowerCase;
$string->toUpperCase;

DESCRIPTION

This module provides a set of methods for validating and transforming strings. It includes rules for checking string length, format, and content, as well as transformations for modifying the string.

METHODS

rule
$string->rule($value);
Validates that the value is a defined, non-reference string.
coerce
my $coerced_value = $string->coerce($value);
Coerces the value to a string.
max
$string->max($max_length, \%opts);
Adds a rule to ensure the string does not exceed the specified maximum length.
min
$string->min($min_length, \%opts);
Adds a rule to ensure the string is at least the specified minimum length.
email
$string->email(\%opts);
Adds a rule to validate that the string is a valid email address.
url
$string->url(\%opts);
Adds a rule to validate that the string is a valid URL.
emoji
$string->emoji(\%opts);
Adds a rule to validate that the string contains an emoji.
uuid
$string->uuid(\%opts);
Adds a rule to validate that the string is a valid UUID.
nanoid
$string->nanoid(\%opts);
Adds a rule to validate that the string is a valid NanoID.
cuid
$string->cuid(\%opts);
Adds a rule to validate that the string is a valid CUID.
cuid2
$string->cuid2(\%opts);
Adds a rule to validate that the string is a valid CUID2.
ulid
$string->ulid(\%opts);
Adds a rule to validate that the string is a valid ULID.
regex
$string->regex($regex, \%opts);
Adds a rule to validate that the string matches the specified regular expression.
includes
$string->includes($substring, \%opts);
Adds a rule to validate that the string includes the specified substring.
startsWith
$string->startsWith($prefix, \%opts);
Adds a rule to validate that the string starts with the specified prefix.
endsWith
$string->endsWith($suffix, \%opts);
Adds a rule to validate that the string ends with the specified suffix.
ip
$string->ip(\%opts);
Adds a rule to validate that the string is a valid IP address (IPv4 or IPv6).
trim
$string->trim;
Adds a transformation to trim whitespace from the string.
toLowerCase
$string->toLowerCase;
Adds a transformation to convert the string to lowercase.
toUpperCase
$string->toUpperCase;
Adds a transformation to convert the string to uppercase.
date
$string->date(\%opts);
Adds a rule to validate that the string is a valid date (YYYY-MM-DD).
time
$string->time(\%opts);
Adds a rule to validate that the string is a valid time (HH:MM:SS).
datetime
$string->datetime(\%opts);
Adds a rule to validate that the string is a valid ISO8601 datetime.
duration
$string->duration(\%opts);
Adds a rule to validate that the string is a valid ISO8601 duration.
base64
$string->base64(\%opts);
Adds a rule to validate that the string is a valid base64 encoded string.

LICENSE

Copyright (C) ytnobody.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

ytnobody <ytnobody@gmail.com>