BoutrosLab-TSVStream
view release on metacpan or search on metacpan
lib/BoutrosLab/TSVStream/IO/Role/Reader/Fixed.pm view on Meta::CPAN
package BoutrosLab::TSVStream::IO::Role::Reader::Fixed;
# safe Perl
use warnings;
use strict;
use Carp;
=head1 NAME
BoutrosLab::TSVStream::IO::Role::Reader::Fixed
=cut
use Moose::Role;
use Moose::Util::TypeConstraints;
use namespace::autoclean;
use List::MoreUtils qw(all);
enum 'ReadHeaderType', [qw(auto none check)];
has header => (
is => 'ro',
lazy => 1,
isa => 'ReadHeaderType',
default => 'auto'
);
has extra_class_params => (
is => 'ro',
isa => 'ArrayRef[Str]',
default => sub { [] }
);
has pre_header_pattern => (
is => 'ro',
isa => 'Maybe[RegexpRef]',
default => undef
);
has _is_pre_header => (
is => 'ro',
isa => 'CodeRef',
lazy => 1,
builder => '_init_is_pre_header'
);
sub _init_is_pre_header {
my $self = shift;
if (my $pat = $self->pre_header_pattern) {
sub { $_[0] =~ /$pat/ }
}
else {
$self->_is_comment
}
}
has pre_headers => (
is => 'ro',
isa => 'ArrayRef[Str]',
init_arg => undef,
default => sub { [] }
);
has _comments => (
is => 'ro',
isa => 'ArrayRef[Str]',
init_arg => undef,
writer => '_set_comments',
default => sub { [] }
);
around BUILDARGS => sub {
my $orig = shift;
my $class = shift;
my $arg = ref($_[0]) ? $_[0] : { @_ };
( run in 0.838 second using v1.01-cache-2.11-cpan-39bf76dae61 )