NAME
    Mo::utils::URI - Mo utilities for URI.

SYNOPSIS
     use Mo::utils::URI qw(check_location check_uri check_url);

     check_location($self, $key);
     check_uri($self, $key);
     check_url($self, $key);
     check_urn($self, $key);

DESCRIPTION
    Mo utilities for URI checking of data objects.

SUBROUTINES
  "check_location"
     check_location($self, $key);

    *Since version 0.01. Described functionality since version 0.03.*

    Check parameter defined by $key which is valid location. Could be URL or
    absolute or relative path. Value is valid if it is undefined or key
    doesn't exist.

    Put error if check isn't ok.

    Returns undef.

  "check_uri"
     check_uri($self, $key);

    *Since version 0.01. Described functionality since version 0.03.*

    Check parameter defined by $key which is valid URI. Value is valid if it
    is undefined or key doesn't exist.

    Put error if check isn't ok.

    Returns undef.

  "check_url"
     check_url($self, $key);

    *Since version 0.01. Described functionality since version 0.03.*

    Check parameter defined by $key which is valid URL. Value is valid if it
    is undefined or key doesn't exist.

    Put error if check isn't ok.

    Returns undef.

  "check_urn"
     check_urn($self, $key);

    *Since version 0.01. Described functionality since version 0.03.*

    Check parameter defined by $key which is valid URN. Value is valid if it
    is undefined or key doesn't exist.

    Put error if check isn't ok.

    Returns undef.

ERRORS
     check_location():
             Parameter '%s' doesn't contain valid location.
                     Value: %s

     check_uri():
             Parameter '%s' doesn't contain valid URI.
                     Value: %s

     check_url():
             Parameter '%s' doesn't contain valid URL.
                     Value: %s

     check_urn():
             Parameter '%s' doesn't contain valid URN.
                     Value: %s

EXAMPLE1
     use strict;
     use warnings;

     use Mo::utils::URI qw(check_location);

     my $self = {
             'key' => 'https://skim.cz',
     };
     check_location($self, 'key');

     # Print out.
     print "ok\n";

     # Output:
     # ok

EXAMPLE2
     use strict;
     use warnings;

     use Error::Pure;
     use Mo::utils::URI qw(check_location);

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

     my $self = {
             'key' => 'urn:isbn:9788072044948',
     };
     check_location($self, 'key');

     # Print out.
     print "ok\n";

     # Output like:
     # #Error [..utils.pm:?] Parameter 'key' doesn't contain valid location.

EXAMPLE3
     use strict;
     use warnings;

     use Mo::utils::URI qw(check_uri);

     my $self = {
             'key' => 'https://skim.cz',
     };
     check_uri($self, 'key');

     # Print out.
     print "ok\n";

     # Output:
     # ok

EXAMPLE4
     use strict;
     use warnings;

     use Error::Pure;
     use Mo::utils::URI qw(check_uri);

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

     my $self = {
             'key' => 'bad_uri',
     };
     check_uri($self, 'key');

     # Print out.
     print "ok\n";

     # Output like:
     # #Error [..utils.pm:?] Parameter 'key' doesn't contain valid URI.

EXAMPLE5
     use strict;
     use warnings;

     use Mo::utils::URI qw(check_url);

     my $self = {
             'key' => 'https://skim.cz',
     };
     check_url($self, 'key');

     # Print out.
     print "ok\n";

     # Output:
     # ok

EXAMPLE6
     use strict;
     use warnings;

     use Error::Pure;
     use Mo::utils::URI qw(check_url);

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

     my $self = {
             'key' => 'bad_uri',
     };
     check_uri($self, 'key');

     # Print out.
     print "ok\n";

     # Output like:
     # #Error [..utils.pm:?] Parameter 'key' doesn't contain valid URL.

EXAMPLE7
     use strict;
     use warnings;

     use Mo::utils::URI qw(check_urn);

     my $self = {
             'key' => 'urn:isbn:0451450523',
     };
     check_urn($self, 'key');

     # Print out.
     print "ok\n";

     # Output:
     # ok

EXAMPLE8
     use strict;
     use warnings;

     use Error::Pure;
     use Mo::utils::URI qw(check_urn);

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

     my $self = {
             'key' => 'bad_urn',
     };
     check_urn($self, 'key');

     # Print out.
     print "ok\n";

     # Output like:
     # #Error [..utils.pm:?] Parameter 'key' doesn't contain valid URN.

DEPENDENCIES
    Data::Validate::URI, Error::Pure, Exporter, Readonly, URI.

SEE ALSO
    Mo  Micro Objects. Mo is less.

    Mo::utils::CSS
        Mo CSS utilities.

    Mo::utils::Date
        Mo date utilities.

    Mo::utils::Language
        Mo language utilities.

    Mo::utils::Email
        Mo utilities for email.

    Wikibase::Datatype::Utils
        Wikibase datatype utilities.

REPOSITORY
    <https://github.com/michal-josef-spacek/Mo-utils-URI>

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

    <http://skim.cz>

LICENSE AND COPYRIGHT
    © 2024-2025 Michal Josef Špaček

    BSD 2-Clause License

VERSION
    0.04

