Venus
view release on metacpan or search on metacpan
t/Venus_Path.t view on Meta::CPAN
package main;
use 5.018;
use strict;
use warnings;
use Test::More;
use Venus::Test;
use Venus;
my $test = test(__FILE__);
my $fsds = qr/[:\\\/\.]+/;
=name
Venus::Path
=cut
$test->for('name');
=tagline
Path Class
=cut
$test->for('tagline');
=abstract
Path Class for Perl 5
=cut
$test->for('abstract');
=includes
method: absolute
method: basename
method: child
method: chmod
method: chown
method: children
method: copy
method: default
method: directories
method: exists
method: explain
method: extension
method: find
method: files
method: glob
method: is_absolute
method: is_directory
method: is_file
method: is_relative
method: lines
method: lineage
method: open
method: mkcall
method: mkdir
method: mkdirs
method: mkfile
method: mktemp_dir
method: mktemp_file
method: move
method: name
method: new
method: parent
method: parents
method: parts
method: read
method: relative
method: rename
method: rmdir
method: rmdirs
method: rmfiles
method: root
method: seek
method: sibling
method: siblings
method: test
method: unlink
method: write
=cut
$test->for('includes');
=synopsis
package main;
use Venus::Path;
my $path = Venus::Path->new('t/data/planets');
# my $planets = $path->files;
# my $mercury = $path->child('mercury');
# my $content = $mercury->read;
=cut
t/Venus_Path.t view on Meta::CPAN
=signature child
child(string $path) (Venus::Path)
=metadata child
{
since => '0.01',
}
=example-1 child
# given: synopsis;
$path = $path->child('earth');
# bless({ value => "t/data/planets/earth" }, "Venus::Path")
=cut
$test->for('example', 1, 'child', sub {
my ($tryable) = @_;
ok my $result = $tryable->result;
ok $result =~ m{t${fsds}data${fsds}planets${fsds}earth};
$result
});
=method chmod
The chmod method changes the file permissions of the file or directory.
=signature chmod
chmod(string $mode) (Venus::Path)
=metadata chmod
{
since => '0.01',
}
=example-1 chmod
# given: synopsis;
$path = $path->chmod(0755);
# bless({ value => "t/data/planets" }, "Venus::Path")
=cut
$test->for('example', 1, 'chmod', sub {
my ($tryable) = @_;
ok my $result = $tryable->result;
ok $result =~ m{t${fsds}data${fsds}planets};
$result
});
=method chown
The chown method changes the group and/or owner or the file or directory.
=signature chown
chown(string @args) (Venus::Path)
=metadata chown
{
since => '0.01',
}
=example-1 chown
# given: synopsis;
$path = $path->chown(-1, -1);
# bless({ value => "t/data/planets" }, "Venus::Path")
=cut
$test->for('example', 1, 'chown', sub {
my ($tryable) = @_;
ok my $result = $tryable->result;
ok $result =~ m{t${fsds}data${fsds}planets};
$result
});
=method children
The children method returns the files and directories under the path. This
method can return a list of values in list-context.
=signature children
children() (within[arrayref, Venus::Path])
=metadata children
{
since => '0.01',
}
=example-1 children
# given: synopsis;
my $children = $path->children;
# [
# bless({ value => "t/data/planets/ceres" }, "Venus::Path"),
# bless({ value => "t/data/planets/earth" }, "Venus::Path"),
# bless({ value => "t/data/planets/eris" }, "Venus::Path"),
# bless({ value => "t/data/planets/haumea" }, "Venus::Path"),
# bless({ value => "t/data/planets/jupiter" }, "Venus::Path"),
# bless({ value => "t/data/planets/makemake" }, "Venus::Path"),
# bless({ value => "t/data/planets/mars" }, "Venus::Path"),
# bless({ value => "t/data/planets/mercury" }, "Venus::Path"),
# bless({ value => "t/data/planets/neptune" }, "Venus::Path"),
# bless({ value => "t/data/planets/planet9" }, "Venus::Path"),
# bless({ value => "t/data/planets/pluto" }, "Venus::Path"),
# bless({ value => "t/data/planets/saturn" }, "Venus::Path"),
# bless({ value => "t/data/planets/uranus" }, "Venus::Path"),
# bless({ value => "t/data/planets/venus" }, "Venus::Path"),
# ]
=cut
$test->for('example', 1, 'children', sub {
my ($tryable) = @_;
ok my $result = $tryable->result;
ok @$result;
ok @$result == 14;
ok $result->[0]->isa('Venus::Path');
like $result->[0], qr/t${fsds}data${fsds}planets${fsds}ceres/;
ok $result->[1]->isa('Venus::Path');
like $result->[1], qr/t${fsds}data${fsds}planets${fsds}earth/;
ok $result->[2]->isa('Venus::Path');
( run in 0.605 second using v1.01-cache-2.11-cpan-5511b514fd6 )