NAME

Mojo::Path - Path

SYNOPSIS

use Mojo::Path;

my $path = Mojo::Path->new('/foo/bar%3B/baz.html');
shift @{$path->parts};
say $path;

DESCRIPTION

Mojo::Path is a container for URL paths.

ATTRIBUTES

Mojo::Path implements the following attributes.

leading_slash

my $leading_slash = $path->leading_slash;
$path             = $path->leading_slash(1);

Path has a leading slash.

parts

my $parts = $path->parts;
$path     = $path->parts([qw/foo bar baz/]);

The path parts.

trailing_slash

my $trailing_slash = $path->trailing_slash;
$path              = $path->trailing_slash(1);

Path has a trailing slash.

METHODS

Mojo::Path inherits all methods from Mojo::Base and implements the following new ones.

new

my $path = Mojo::Path->new;
my $path = Mojo::Path->new('/foo/bar%3B/baz.html');

Construct a new Mojo::Path object.

canonicalize

$path = $path->canonicalize;

Canonicalize path.

# "/foo/baz"
say Mojo::Path->new('/foo/bar/../baz')->canonicalize;

clone

my $clone = $path->clone;

Clone path.

contains

my $success = $path->contains('/foo');

Check if path contains given prefix. Note that this method is EXPERIMENTAL and might change without warning!

# True
Mojo::Path->new('/foo/bar')->contains('/');
Mojo::Path->new('/foo/bar')->contains('/foo');
Mojo::Path->new('/foo/bar')->contains('/foo/bar');

# False
Mojo::Path->new('/foo/bar')->contains('/f');
Mojo::Path->new('/foo/bar')->contains('/bar');
Mojo::Path->new('/foo/bar')->contains('/whatever');

parse

$path = $path->parse('/foo/bar%3B/baz.html');

Parse path.

to_abs_string

my $string = $path->to_abs_string;

Turn path into an absolute string. Note that this method is EXPERIMENTAL and might change without warning!

to_string

my $string = $path->to_string;

Turn path into a string.

SEE ALSO

Mojolicious, Mojolicious::Guides, http://mojolicio.us.