DBD-PO
view release on metacpan or search on metacpan
lib/DBD/PO/Locale/PO.pm view on Meta::CPAN
sub _dump_multi_comment {
my $self = shift;
my $comment = shift;
my $leader = shift;
my $eol = $self->eol();
return join q{}, map {
"$leader$_$eol";
} split m{\Q$eol\E}xms, $comment;
}
# Quote a string properly
sub quote {
my $self = shift;
my $string = shift;
if (! defined $string) {
return q{""};
}
lib/DBD/PO/Locale/PO.pm view on Meta::CPAN
$current_buffer = \$buffer{msgstr_n}->{$key};
if ($obsolete) {
$po->obsolete(1);
}
}
# reference
elsif ( ($value) = $line =~ m{\A \# : \s+ (.*)}xms ) {
last LINE if $is_new_entry->('comment');
$po ||= $class->new(eol => $eol, -loaded_line_number => $line_number);
# maybe more in 1 line
$value = join $eol, split m{\s+}xms, $value;
$po->reference(
defined $po->reference()
? $po->reference() . "$eol$value"
: $value
);
}
# flags
elsif ( ($value) = $line =~ m{\A \# , \s+ (.*)}xms) {
last LINE if $is_new_entry->('comment');
$po ||= $class->new(eol => $eol, -loaded_line_number => $line_number);
for my $flag ( split m{\s* , \s*}xms, $value ) {
$po->add_flag($flag);
}
}
# Translator comments
elsif (
$line =~ m{\A \# \s+ (.*)}xms
|| $line =~ m{\A \# ()\z}xms
) {
$value = $1;
last LINE if $is_new_entry->('comment');
lib/DBD/PO/Text/PO.pm view on Meta::CPAN
}
return $string;
};
my $array_from_anything = sub {
my ($self, $anything) = @_;
my @array = map { ## no critic (ComplexMappings)
my $dequoted = $dequote->($_);
split m{\Q$self->{separator}\E}xms, $dequoted;
} ref $anything eq 'ARRAY'
? @{$anything}
: defined $anything
? $anything
: ();
return \@array;
};
sub new { ## no critic (RequireArgUnpacking)
lib/DBD/PO/Text/PO.pm view on Meta::CPAN
if ( ## no critic (CascadingIfElse)
$method eq 'comment'
|| $method eq 'automatic'
|| $method eq 'reference'
) {
my $comment = $po->$method();
$cols[$index]
= defined $comment
? (
join $self->{separator},
split m{\Q$self->{eol}\E}xms,
$comment
)
: q{};
}
elsif (
$method eq 'obsolete'
|| $method eq 'fuzzy'
) {
$cols[$index] = $po->$method() ? 1 : 0;
}
lib/DBD/PO/Text/PO.pm view on Meta::CPAN
| (?: msg | previous_msg ) (?: ctxt | id | id_plural )
) \z
}xms
) {
my $data = $po->$method();
if (! defined $data) {
$data = q{};
}
$cols[$index]
= join $self->{separator},
split m{\\n}xms,
$data;
}
elsif ( my ($n) = $method =~ m{\A msgstr_ ( \d ) \z}xms ) {
my $data = $po->msgstr_n();
if ($data) {
$data = $data->{$n};
}
if (! defined $data) {
$data = q{};
}
$cols[$index]
= join $self->{separator},
split m{\\n}xms,
$data;
}
else {
croak "Strange extract method $method";
}
++$index;
}
return \@cols;
}
lib/DBD/PO/db.pm view on Meta::CPAN
my $po = DBD::PO::Locale::PO->new(
eol => defined $dbh->FETCH('eol')
? $dbh->FETCH('eol')
: $EOL_DEFAULT,
);
my $separator = defined $dbh->FETCH('separator')
? $dbh->FETCH('separator')
: $SEPARATOR_DEFAULT;
my @cols;
my @lines = split m{\Q$separator\E}xms, $msgstr;
LINE:
while (1) {
my $line = shift @lines;
defined $line
or last LINE;
# run the regex for the selected column
my $index = 0;
HEADER_REGEX:
for my $header_regex (@HEADER_REGEX) {
if (! $header_regex) {
for my $file_name (sort @list) {
my @lines;
{
open my $file, '< :raw', $file_name
or die "Cannnot open file $file_name";
local $/ = ();
my $text = <$file>;
# repair last line without \n
$text =~ s{([^\x0D\x0A]) \z}{$1\x0D\x0A}xms;
@lines = split m{\x0A}, $text;
}
my $find_line_numbers = sub {
my ($test_description, $test_reason, $regex, $regex_negation) = @_;
my $line_number = 0;
my @line_numbers = map {
++$line_number;
($regex_negation xor $_ =~ $regex)
? $line_number
: ();
( run in 1.225 second using v1.01-cache-2.11-cpan-71847e10f99 )