Aion-Fs

 view release on metacpan or  search on metacpan

t/aion/fs/cat.t  view on Meta::CPAN

use common::sense; use open qw/:std :utf8/;  use Carp qw//; use Cwd qw//; use File::Basename qw//; use File::Find qw//; use File::Slurper qw//; use File::Spec qw//; use File::Path qw//; use Scalar::Util qw//;  use Test::More 0.98;  use String::Diff q...
# 
# Aion::Fs::Cat - файловый дескриптор с автозакрытием
# 
# # SYNOPSIS
# 
subtest 'SYNOPSIS' => sub { 
use Aion::Fs qw/lay/;
use Aion::Fs::Cat;
use Symbol;

my $file = "lay.test.txt";

lay $file, "xyz";

my $f = Symbol::gensym;
open $f, "<", $file;

$f = Aion::Fs::Cat->new(f => $f, path => $file);

local ($::_g0 = do {-d $f}, $::_e0 = do {""}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '-d $f # -> ""' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {-f $f}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '-f $f # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;

read $f, my $buf, 1;
local ($::_g0 = do {$buf}, $::_e0 = "x"); ::ok $::_g0 eq $::_e0, '$buf # => x' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;

local ($::_g0 = do {<$f>}, $::_e0 = "yz"); ::ok $::_g0 eq $::_e0, '<$f> # => yz' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;

local ($::_g0 = do {$f->path;}, $::_e0 = "lay.test.txt"); ::ok $::_g0 eq $::_e0, '$f->path; # => lay.test.txt' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;

undef $f;

# 
# # DESCRIPTION
# 
# Содержит файловый дескриптор, который закрывается в деструкторе. А благодаря перегрузке операторов `*{}`, `-X` и `<>` работает со всеми файло...
# 
# Используется в [Aion::Fs::ilay](https://metacpan.org/pod/Aion::Fs#icat-\(%3B%24path\)).
# 
# # SUBROUTINES
# 
# ## new (%args)
# 
# Конструктор.
# 
# ## path ()
# 
# Путь к файлу.
# 
# ## next ()
# 
# Следующая строка.
# 
# ## DESTROY ()
# 
# Деструктор. Закрывает файловый дескриптор.
# 
# # AUTHOR
# 
# Yaroslav O. Kosmina <dart@cpan.org>
# 



( run in 0.558 second using v1.01-cache-2.11-cpan-5a3173703d6 )